web

package
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 15, 2023 License: MPL-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultHost = "web-efaktur.pajak.go.id"
	BaseURL     = "https://" + DefaultHost

	EndpointLogin  string
	EndpointLogout string

	// REST
	EndpointSptHeaderList        string
	EndpointSptHeaderCreate      string
	EndpointSptHeaderDelete      string
	EndpointSptHeaderCetak       string
	EndpointSptDetailFind        string
	EndpointSptDetailHeaderFind  string
	EndpointPrepopulatedDownload string
	EndpointProfilePkpGet        string
	EndpointProfileSaveOrUpdate  string
	EndpointSptIndukFind         string
	EndpointSptInfoCekSkpKp      string
	EndpointSptLampiranAbFind    string

	EndpointSigningAgentWpPilotingStatusGet string
)
View Source
var (
	ErrUnsuccessfulAction = errors.New("unsuccessful action")
	ErrLoginRequired      = errors.New("login required")
)

Functions

func BuildEndpoints

func BuildEndpoints()

BuildEndpoints build endpoint urls based on current [`BaseURL`].

func KodeFormSptStrings

func KodeFormSptStrings() []string

KodeFormSptStrings returns a slice of all String values of the enum

func PKCS12ToTLSCertificateFromFile

func PKCS12ToTLSCertificateFromFile(path string, password string) (cert *tls.Certificate, clientCAs []*x509.Certificate, err error)

func PKCS12ToTLSCertificateFromMemory

func PKCS12ToTLSCertificateFromMemory(pfxData []byte, password string) (tlsCert *tls.Certificate, clientCAs []*x509.Certificate, err error)

func PrepopulatedJenisDokumenStrings

func PrepopulatedJenisDokumenStrings() []string

PrepopulatedJenisDokumenStrings returns a slice of all String values of the enum

func PrepopulatedMasaPajakStrings

func PrepopulatedMasaPajakStrings() []string

PrepopulatedMasaPajakStrings returns a slice of all String values of the enum

Types

type Client

type Client struct {
	SptHeader       *sptHeaderClient
	SptDetail       *sptDetailClient
	SptDetailHeader *sptDetailHeaderClient
	Prepopulated    *prepopulatedClient
	Profile         *profileClient
	SptInduk        *sptIndukClient
	SptLampiranAB   *sptLampiranAbClient
	SigningAgent    *signingAgentClient
	SptInfo         *sptInfoClient
	// contains filtered or unexported fields
}

func NewClient

func NewClient(opts ClientOptions) (*Client, error)

func (*Client) Login

func (c *Client) Login(ctx context.Context, password string) (err error)

func (*Client) Logout

func (c *Client) Logout(ctx context.Context) (err error)

type ClientOptions

type ClientOptions struct {
	UserAgent             string
	TLSCertificate        *tls.Certificate
	TLSClientCAs          []*x509.Certificate
	TLSInsecureSkipVerify bool

	// Transport overrides http Transport TLS configuraton
	// specified for given [`TLSCertificate`] in the option.
	// If you set this, then you'll need to add your TLS certificate
	// and private key yourself.
	Transport http.RoundTripper
}

type ErrInvalidResponse

type ErrInvalidResponse struct {
	// contains filtered or unexported fields
}

Size amd64: 8+(8*2)+(8*2) = 45 bytes

func (ErrInvalidResponse) Error

func (e ErrInvalidResponse) Error() string

func (ErrInvalidResponse) Response

func (e ErrInvalidResponse) Response() *http.Response

Response return http.Response with [`Body`] closed.

func (ErrInvalidResponse) Unwrap

func (e ErrInvalidResponse) Unwrap() error

type KodeFormSpt

type KodeFormSpt int

Source: https://web-efaktur.pajak.go.id/app/views/spt/lampiran_detail.html?20201026

const (

	// A1 - Daftar Ekspor
	KodeFormSpt_A1 KodeFormSpt = 1 // "A1"

	// A2 - PK atas Penyerahan Dalam Negeri
	KodeFormSpt_A2 KodeFormSpt = 2 // "A2"

	// B1 - PM Dapat Dikreditkan atas Impor
	KodeFormSpt_B1 KodeFormSpt = 3 // "B1"

	// B2 - PM Dapat Dikreditkan atas Perolehan Dalam Negeri
	KodeFormSpt_B2 KodeFormSpt = 4 // "B2"

	// B3 - PM Tidak Dapat Dikreditkan atau Mendapat Fasilitas
	KodeFormSpt_B3 KodeFormSpt = 5 // "B3"
)

func KodeFormSptString

func KodeFormSptString(s string) (KodeFormSpt, error)

KodeFormSptString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.

func KodeFormSptValues

func KodeFormSptValues() []KodeFormSpt

KodeFormSptValues returns all values of the enum

func (KodeFormSpt) IsAKodeFormSpt

func (i KodeFormSpt) IsAKodeFormSpt() bool

IsAKodeFormSpt returns "true" if the value is listed in the enum definition. "false" otherwise

func (KodeFormSpt) MarshalJSON

func (i KodeFormSpt) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface for KodeFormSpt

func (KodeFormSpt) MarshalText

func (i KodeFormSpt) MarshalText() ([]byte, error)

MarshalText implements the encoding.TextMarshaler interface for KodeFormSpt

func (KodeFormSpt) MarshalYAML

func (i KodeFormSpt) MarshalYAML() (interface{}, error)

MarshalYAML implements a YAML Marshaler for KodeFormSpt

func (*KodeFormSpt) Scan

func (i *KodeFormSpt) Scan(value interface{}) error

func (KodeFormSpt) String

func (i KodeFormSpt) String() string

func (*KodeFormSpt) UnmarshalJSON

func (i *KodeFormSpt) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface for KodeFormSpt

func (*KodeFormSpt) UnmarshalText

func (i *KodeFormSpt) UnmarshalText(text []byte) error

UnmarshalText implements the encoding.TextUnmarshaler interface for KodeFormSpt

func (*KodeFormSpt) UnmarshalYAML

func (i *KodeFormSpt) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements a YAML Unmarshaler for KodeFormSpt

func (KodeFormSpt) Value

func (i KodeFormSpt) Value() (driver.Value, error)

type PrepopulatedDownloadRequest

type PrepopulatedDownloadRequest struct {
	// MasaPajak int enum encoded as string
	MasaPajak PrepopulatedMasaPajak `json:"masaPajak,string"`
	// TahunPajak int
	TahunPajak int `json:"tahunPajak"`
	// JenisDokumen int enum encoded as string
	JenisDokumen PrepopulatedJenisDokumen `json:"jenisDokumen,string"`
}

type PrepopulatedJenisDokumen

type PrepopulatedJenisDokumen int

Source: https://web-efaktur.pajak.go.id/app/views/prepopulated/download_csv.html?20200528

const (
	// UNSELECTED
	PrepopulatedJenisDokumen_UNSELECTED PrepopulatedJenisDokumen = 0 // exist

	// FPM - Faktur Pajak Masukan
	PrepopulatedJenisDokumen_FPM PrepopulatedJenisDokumen = 1

	// PIB - Pemberitahuan Impor Barang
	PrepopulatedJenisDokumen_PIB PrepopulatedJenisDokumen = 2

	// PEB - Pemberitahuan Ekspor Barang
	PrepopulatedJenisDokumen_PEB PrepopulatedJenisDokumen = 3

	// CUKAI - Cukai
	PrepopulatedJenisDokumen_CUKAI PrepopulatedJenisDokumen = 4

	// BC40 - Pemberitahuan pemasukan barang asal Tempat Lain Dalam Daerah Pabean ke TPB
	// yang selanjutnya disebut BC 4.0 adalah pemberitahuan pabean untuk
	// pemasukan barang asal Tempat Lain Dalam Daerah Pabean ke TPB.
	PrepopulatedJenisDokumen_BC40 PrepopulatedJenisDokumen = 5

	// BC25 - Pemberitahuan Impor Barang dari TPB yang selanjutnya disebut dengan BC 2.5
	// adalah pemberitahuan pabean untuk pengeluaran barang impor dari TPB untuk impor untuk dipakai.
	PrepopulatedJenisDokumen_BC25 PrepopulatedJenisDokumen = 6

	// BC27 - Pemberitahuan pengeluaran barang dari TPB ke TPB lainnya yang selanjutnya disebut BC 2.7
	// adalah pemberitahuan pengeluaran barang untuk diangkut dari TPB ke TPB lainnya.
	PrepopulatedJenisDokumen_BC27 PrepopulatedJenisDokumen = 7

	// BC41 - Pemberitahuan pengeluaran barang asal Tempat Lain Dalam Daerah Pabean dari TPB
	// yang selanjutnya disebut BC 4.1 adalah pemberitahuan pabean
	// untuk pengeluaran barang asal Tempat Lain Dalam Daerah Pabean dari TPB.
	PrepopulatedJenisDokumen_BC41 PrepopulatedJenisDokumen = 8
)

func PrepopulatedJenisDokumenString

func PrepopulatedJenisDokumenString(s string) (PrepopulatedJenisDokumen, error)

PrepopulatedJenisDokumenString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.

func PrepopulatedJenisDokumenValues

func PrepopulatedJenisDokumenValues() []PrepopulatedJenisDokumen

PrepopulatedJenisDokumenValues returns all values of the enum

func (PrepopulatedJenisDokumen) IsAPrepopulatedJenisDokumen

func (i PrepopulatedJenisDokumen) IsAPrepopulatedJenisDokumen() bool

IsAPrepopulatedJenisDokumen returns "true" if the value is listed in the enum definition. "false" otherwise

func (*PrepopulatedJenisDokumen) Scan

func (i *PrepopulatedJenisDokumen) Scan(value interface{}) error

func (PrepopulatedJenisDokumen) String

func (i PrepopulatedJenisDokumen) String() string

func (PrepopulatedJenisDokumen) Value

type PrepopulatedMasaPajak

type PrepopulatedMasaPajak int

Source: https://web-efaktur.pajak.go.id/app/views/prepopulated/download_csv.html?20200528

const (
	PrepopulatedMasaPajak_UNSELECTED PrepopulatedMasaPajak = 0 // exist
	PrepopulatedMasaPajak_January    PrepopulatedMasaPajak = 1
	PrepopulatedMasaPajak_February   PrepopulatedMasaPajak = 2
	PrepopulatedMasaPajak_March      PrepopulatedMasaPajak = 3
	PrepopulatedMasaPajak_April      PrepopulatedMasaPajak = 4
	PrepopulatedMasaPajak_May        PrepopulatedMasaPajak = 5
	PrepopulatedMasaPajak_June       PrepopulatedMasaPajak = 6
	PrepopulatedMasaPajak_July       PrepopulatedMasaPajak = 7
	PrepopulatedMasaPajak_August     PrepopulatedMasaPajak = 8
	PrepopulatedMasaPajak_September  PrepopulatedMasaPajak = 9
	PrepopulatedMasaPajak_October    PrepopulatedMasaPajak = 10
	PrepopulatedMasaPajak_November   PrepopulatedMasaPajak = 11
	PrepopulatedMasaPajak_December   PrepopulatedMasaPajak = 12
)

func PrepopulatedMasaPajakString

func PrepopulatedMasaPajakString(s string) (PrepopulatedMasaPajak, error)

PrepopulatedMasaPajakString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.

func PrepopulatedMasaPajakValues

func PrepopulatedMasaPajakValues() []PrepopulatedMasaPajak

PrepopulatedMasaPajakValues returns all values of the enum

func (PrepopulatedMasaPajak) IsAPrepopulatedMasaPajak

func (i PrepopulatedMasaPajak) IsAPrepopulatedMasaPajak() bool

IsAPrepopulatedMasaPajak returns "true" if the value is listed in the enum definition. "false" otherwise

func (*PrepopulatedMasaPajak) Scan

func (i *PrepopulatedMasaPajak) Scan(value interface{}) error

func (PrepopulatedMasaPajak) String

func (i PrepopulatedMasaPajak) String() string

func (PrepopulatedMasaPajak) Value

func (i PrepopulatedMasaPajak) Value() (driver.Value, error)

type Profile

type Profile struct {
	Npwp      string `json:"npwp"`
	Nama      string `json:"nama"`
	NoFax     string `json:"noFax"`
	NoHP      string `json:"noHp"`
	NoTelepon string `json:"noTelepon"`
	Alamat    string `json:"alamat"`

	KLU    string `json:"klu"`
	KppAdm string `json:"kppAdm"`

	MasaBuku1 string `json:"masaBuku1"`
	MasaBuku2 string `json:"masaBuku2"`

	JabatanSpt          string `json:"jabatanSpt"`
	PenandatanganFaktur string `json:"penandatanganFaktur"`
	PenandatanganSpt    string `json:"penandatanganSpt"`
	TempatPenandatangan string `json:"tempatPenandatangan"`
}

type ProfileGetResponse

type ProfileGetResponse struct {
	// Status  int        `json:"status"`
	// Message string     `json:"message"`
	Data []*Profile `json:"data"`
}

func (*ProfileGetResponse) GetOne

func (p *ProfileGetResponse) GetOne() *Profile

type ProfileSaveOrUpdateRequest

type ProfileSaveOrUpdateRequest struct {
	PenandatanganFaktur string `json:"penandatanganFaktur"`
	PenandatanganSpt    string `json:"penandatanganSpt"`
	JabatanSpt          string `json:"jabatanSpt"`
}

type ProfileSaveOrUpdateResponse

type ProfileSaveOrUpdateResponse struct {
	Data []*ProfileUpdated
}

type ProfileUpdated

type ProfileUpdated struct {
	JabatanSpt          string `json:"jabatanSpt"`
	Npwp                string `json:"npwp"`
	PenandatanganFaktur string `json:"penandatanganFaktur"`
	PenandatanganSpt    string `json:"penandatanganSpt"`
}

type SigningAgentGetWpPilotingStatusRequest

type SigningAgentGetWpPilotingStatusRequest struct {
	Masa  int
	Tahun int
}

type SigningAgentGetWpPilotingStatusResponse

type SigningAgentGetWpPilotingStatusResponse struct {
	Status  int    `json:"status"`
	Message string `json:"message"`

	// Data type is still unknown as the server constantly sending:
	// "Belum implementasi signing agent" during implementation.
	Data any `json:"data"`
}

type SptDetail

type SptDetail struct {
	NamaLt       string `json:"namaLt"`
	NpwpPasporLt string `json:"npwpPasporLt"`
	Nomor        string `json:"nomor"`
	Tanggal      string `json:"tanggal"`
	JumlahDpp    int    `json:"jmlDpp"`
	JumlahPpn    int    `json:"jmlPpn"`
	JumlahPpnbm  int    `json:"jmlPpnbm"`
	NoRef        any    `json:"noRef"`
	Keterangan   any    `json:"ket"`
}

type SptDetailFindRequest

type SptDetailFindRequest struct {
	MasaPajak   int         `json:"masaPajak"`
	TahunPajak  int         `json:"tahunPajak"`
	RevisionNo  int         `json:"revNo"`
	KodeFormSpt KodeFormSpt `json:"kdFormSpt"`
	PageNum     int         `json:"pageNum"`
	PageSize    int         `json:"pageSize"`
}

type SptDetailFindResponse

type SptDetailFindResponse struct {
	Status  int          `json:"status"`
	Message string       `json:"message"`
	Data    []*SptDetail `json:"data"`
}

type SptDetailHeader

type SptDetailHeader struct {
	JumlahRecord int         `json:"jmlRecord"`
	JumlahDpp    int         `json:"jmlDpp"`
	JumlahPpn    int         `json:"jmlPpn"`
	JumlahPpnbm  int         `json:"jmlPPnbm"`
	KodeForm     KodeFormSpt `json:"kdForm"`
}

type SptDetailHeaderFindRequest

type SptDetailHeaderFindRequest struct {
	MasaPajak   int         `json:"masaPajak"`
	TahunPajak  int         `json:"tahunPajak"`
	RevisionNo  int         `json:"revNo"`
	KodeFormSpt KodeFormSpt `json:"kdFormSpt"`
}

type SptDetailHeaderFindResponse

type SptDetailHeaderFindResponse struct {
	Status  int              `json:"status"`
	Message string           `json:"message"`
	Data    *SptDetailHeader `json:"data"`
}

type SptHeader

type SptHeader struct {
	Npwp string `json:"npwp"`

	FgStatusRekam    int `json:"fgStatusRekam"`
	FgStatusTransfer int `json:"fgStatusTransfer"`

	Masa1      int `json:"masa1"`
	Masa2      int `json:"masa2"`
	Tahun      int `json:"tahun"`
	RevisionNo int `json:"revNo"`

	// Known value:
	// - "SUKSES POSTING"
	// - "SUKSES LAPOR"
	Keterangan string `json:"keterangan"`

	IDNpwpTandaTanganElektronik *string `json:"idNtte"`
	TglTerima                   *string `json:"tglTerima"`
	FgLbkbn                     *string `json:"fgLbkbn"`
	NilaiLbkbn                  *int    `json:"nilaiLbkbn"`
}

type SptHeaderCetakRequest

type SptHeaderCetakRequest struct {
	MasaPajak  int `json:"masaPajak"`
	TahunPajak int `json:"tahunPajak"`
	RevisionNo int `json:"revNo"`
}

type SptHeaderCreateRequest

type SptHeaderCreateRequest struct {
	Masa1      int `json:"masa1"`
	RevisionNo int `json:"revNo"`
	Tahun      int `json:"tahun"`
}

type SptHeaderCreateResponse

type SptHeaderCreateResponse struct {
	Status  int    `json:"status"`
	Message string `json:"message"`
}

type SptHeaderDeleteRequest

type SptHeaderDeleteRequest struct {
	SptHeader
}

type SptHeaderDeleteResponse

type SptHeaderDeleteResponse struct {
	Status  int    `json:"status"`
	Message string `json:"message"`
}

type SptHeaderList

type SptHeaderList []*SptHeader

type SptHeaderListRequest

type SptHeaderListRequest struct {
	TahunPajak int `json:"tahunPajak"`
}

type SptHeaderListResponse

type SptHeaderListResponse struct {
	Status  int           `json:"status"`
	Message string        `json:"message"`
	Data    SptHeaderList `json:"data"`
}

type SptInduk

type SptInduk map[string]any

Data types NOT yet known, use `map[string]any` for now.

type SptIndukFindRequest

type SptIndukFindRequest struct {
	MasaPajak  int `json:"masaPajak"`
	TahunPajak int `json:"tahunPajak"`
	RevisionNo int `json:"revNo"`
}

type SptIndukFindResponse

type SptIndukFindResponse struct {
	Status  int        `json:"status"`
	Message string     `json:"message"`
	Data    []SptInduk `json:"data"`
}

type SptInfoSkpKpCekRequest

type SptInfoSkpKpCekRequest struct {
	Masa       int `json:"masa"`
	Tahun      int `json:"tahun"`
	RevisionNo int `json:"revNo"`
}

type SptInfoSkpKpCekResponse

type SptInfoSkpKpCekResponse struct {
	Status  int    `json:"status"`
	Message string `json:"message"`
	Data    any    `json:"data"`
}

type SptLampiranAb

type SptLampiranAb map[string]any

Data types NOT yet known, use `map[string]any` for now.

type SptLampiranAbFindRequest

type SptLampiranAbFindRequest struct {
	MasaPajak  int `json:"masaPajak"`
	TahunPajak int `json:"tahunPajak"`
	RevisionNo int `json:"revNo"`
}

type SptLampiranAbFindResponse

type SptLampiranAbFindResponse struct {
	Data []SptLampiranAb
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL