// dokumentasi API · v0.1 · 29 endpoint

Hubungkan sistem kamu ke DJP lewat satu API.

e-Faktur, e-Bupot, e-Billing, SPT, dan validasi status wajib pajak (VSWP).

Memulai

Kredensial diberikan tim TAXLINK setelah permintaan akses disetujui di konsol admin. Setiap request memakai HTTP Basic Auth dan header npwp berisi NPWP organisasi yang sedang bertindak. NPWP harus terdaftar pada kredensial; jika tidak, API membalas 403.

Staging lokalhttp://localhost:4000
AutentikasiAuthorization: Basic base64(username:password)
Header wajibnpwp: 0123456789012000
curl -X POST http://localhost:4000/v2/vswp \
  -u demo:taxlink-demo \
  -H "npwp: 0123456789012000" \
  -H "Content-Type: application/json" \
  -d '{"npwp":"3201234567890000","tujuan":"Validasi NPWP"}'

Konvensi API

Setiap response JSON memakai envelope yang sama:

{
  "status_code": 200,
  "message": "OK",
  "data": {
    "status": "1",            // "1" sukses, "0" gagal bisnis di DJP
    "statusMessage": "Success",
    "result": { ... },        // hanya ada bila status "1"
    "uuid": "9fc2be05-..."    // ID korelasi, cari di /v1/histories
  }
}
  • Soft-error: penolakan DJP (WP tidak ditemukan, periode salah, dst.) tetap HTTP 200 dengan data.status = "0". Kode 4xx/5xx hanya untuk galat transport.
  • Kode HTTP: 400 validasi, 401 kredensial, 402 kuota habis, 403 NPWP tidak terdaftar, 5xx boleh di-retry dengan backoff.
  • Format: tanggal dokumen DDMMYYYY; masa pajak MM; masa SPT MMMM; periode billing MMMMYYYY; tarif PPN pecahan (0.12), tarif PPh persen (7.5).
  • Field sensitif: passphrasePenandatangan, passphrase, dan password tidak pernah disimpan; di riwayat ditampilkan sebagai [REDACTED].
  • Biaya: endpoint bertanda ● dihitung Rp1.000 per sukses bisnis dan mengurangi kuota prabayar.

Organization

Profil klien, pemakaian kuota, riwayat panggilan, dan pendaftaran NPWP tambahan.

MethodPathFungsiBiaya
GET/v1/profileProfil organisasi untuk NPWP aktif
POST/v1/profileUbah sebagian field profil
GET/v1/usageRingkasan pemakaian dan biaya per periode
GET/v1/historiesRiwayat panggilan API (field sensitif disamarkan)
POST/v1/organizationDaftarkan NPWP tambahan ke kredensial

VSWP — Validasi Status Wajib Pajak

Cek NPWP/NIK tunggal secara real-time (cache 90 hari) atau massal lewat job CSV.

MethodPathFungsiBiaya
POST/v2/vswpValidasi satu NPWP/NIK●
POST/v1/vswp/bulkingKirim CSV untuk validasi massal
GET/v1/vswp/{id}Status job massal
GET/v1/vswp/{id}/exportUnduh hasil job (CSV)

e-Faktur

Terbitkan, ganti, dan batalkan faktur pajak keluaran. PPN dihitung ulang di server.

MethodPathFungsiBiaya
GET/v1/ref/{catalogue}Katalog referensi (negara, satuan, kode transaksi, ...)
GET/v1/efakturDaftar faktur milik NPWP aktif
POST/v2/efaktur/create-faktur-pkTerbitkan faktur keluaran●
POST/v2/efaktur/create-faktur-pk-amendedTerbitkan faktur pengganti●
POST/v2/efaktur/cancel-faktur-pkBatalkan faktur

e-Bupot

Bukti potong PPh Unifikasi (BPPU) dan PPh 21 bukan pegawai (BPMP), plus kalkulator lokal.

MethodPathFungsiBiaya
GET/v1/ebupotDaftar bukti potong
POST/v2/ebupot/validate-bpu-a0-21Validasi dan hitung tanpa menerbitkan
POST/v2/ebupot/create-bpu-a0-21Terbitkan bukti potong●
POST/v2/ebupot/cancel-bpu-a0-21Batalkan bukti potong
POST/calculationKalkulator PPh (tanpa autentikasi)

SPT

Lapor SPT bertahap: cek periode, buat, unggah isi, kirim, lalu verifikasi sampai BPE terbit.

MethodPathFungsiBiaya
GET/v1/sptDaftar SPT
POST/v2/spt/inquiry-max-rev-noCek revisi terakhir untuk periode
POST/v2/spt/create-sptBuat SPT (normal atau pembetulan)●
POST/v2/spt/inquiry-sptStatus SPT
POST/v2/spt/uploadUnggah isi SPT
POST/v2/spt/submit-sptKirim SPT ke DJP, terima NTTE
POST/v2/spt/verify-sptVerifikasi dan ambil nomor BPE

e-Billing

Inquiry KAP/KJS lalu terbitkan ID Billing 15 digit yang berlaku 14 hari.

MethodPathFungsiBiaya
GET/v1/ebillingDaftar ID Billing
POST/v2/ebilling/inquiryCek NPWP + KAP/KJS
POST/v2/ebilling/createTerbitkan ID Billing●