Build e-Faktur (Faktur Pajak elektronik) XML
Skill: Convert a taxable sale into the e-Faktur Pajak record submitted via DJP e-Faktur / Coretax
Region: Indonesia (Indonesia) Category: E-Invoicing — Faktur Pajak elektronik Does: Takes ordinary sales data from a Pengusaha Kena Pajak (PKP) and produces the Faktur Pajak elektronik (e-Faktur) record — seller/buyer NPWP and NITKU, kode dan nomor seri faktur pajak, DPP and PPN — uploaded to the DJP e-Faktur application (now migrating into Coretax DJP) where it receives an approval code and QR. System: e-Faktur (Direktorat Jenderal Pajak) / Coretax DJP
A Faktur Pajak is only valid once the DJP system returns an approval/persetujuan code — a locally built XML/CSV is a draft until then. With the move to Coretax DJP (rolled out from 2025) the upload channel, document format, and the use of NITKU (Nomor Identitas Tempat Kegiatan Usaha) alongside the 16-digit NPWP changed; always confirm the active Coretax import schema before generating files.
When this applies
- You are a PKP issuing a Faktur Pajak for a delivery of taxable goods (BKP) or services (JKP).
- Each faktur carries a Nomor Seri Faktur Pajak (NSFP) obtained in advance from DJP, plus a 2-digit kode transaksi (e.g.
01standard,04other-base DPP,07PPN not collected,08PPN exempt) and a status digit (0normal,1replacement). - Output fakturs feed the SPT Masa PPN (1111) as faktur keluaran.
Input data required
| Group | Fields |
|---|---|
| Seller (penjual) | name, NPWP (16-digit), NITKU of the place of business, address |
| Buyer (pembeli) | name, NPWP/NIK, NITKU (if any), address |
| Faktur header | kode transaksi + status + Nomor Seri Faktur Pajak, tanggal faktur |
| Line items (detail barang/jasa) | name, kode, quantity, harga satuan, total harga, discount |
| Tax base | DPP (Dasar Pengenaan Pajak) per line and total |
| Output tax | PPN and, where relevant, PPnBM (luxury goods) |
Field mapping (e-Faktur import structure)
The e-Faktur desktop import uses FK (header), FAPR / buyer, OF (item) record groups; the Coretax import uses an XML/JSON equivalent. Core fields:
| Field | Meaning |
|---|---|
KD_JENIS_TRANSAKSI |
2-digit kode transaksi (01, 04, 07, 08, ...) |
FG_PENGGANTI |
0 normal / 1 faktur pengganti |
NOMOR_FAKTUR |
13-digit Nomor Seri Faktur Pajak |
TANGGAL_FAKTUR |
dd/mm/yyyy |
NPWP / NITKU |
buyer NPWP and place-of-business identity |
HARGA_SATUAN, JUMLAH_BARANG, HARGA_TOTAL, DISKON |
per line |
DPP, PPN, PPNBM |
tax base and taxes per line |
Calculation rules
- Line DPP = (harga satuan × jumlah barang) − diskon.
- PPN rate: the statutory rate is 12% under UU HPP, but for most goods/services the effective rate is applied via a DPP nilai lain = 11/12 of the selling price, giving an effective 11% charge; PPN = DPP × 12% where DPP already uses the 11/12 base. Confirm the current rate mechanism, as it has changed.
- PPN is rounded per the e-Faktur convention (whole rupiah).
- For kode 07 (PPN tidak dipungut) and 08 (dibebaskan), record DPP but PPN = 0 with the relevant facility (fasilitas) code.
- PPnBM applies only to designated luxury goods, computed on the same DPP at the goods' tariff.
- Totals across lines must equal the header
JUMLAH_DPP/JUMLAH_PPN.
Worked example (one standard sale, kode 01)
FK,01,0,0000000123456789,,07/05/2026,...
Penjual : PT Sumber Makmur, NPWP 0012345678901000, NITKU 0012345678901000000000
Pembeli : PT Cahaya Abadi, NPWP 0098765432109000
OF,Jasa konsultansi,1,50000000,0,50000000 ; harga total Rp 50.000.000
DPP = 50.000.000 × 11/12 = 45.833.333
PPN = 45.833.333 × 12% = 5.500.000 ; effective 11% of 50.000.000
PPnBM = 0
Header totals: JUMLAH_DPP 45.833.333 JUMLAH_PPN 5.500.000
After upload to e-Faktur / Coretax DJP the document is approved and returns the kode persetujuan (approval code) and the printable QR code that links to the DJP validation page.
Validation checklist
- Seller is a registered PKP; NPWP is the 16-digit form and NITKU present where required by Coretax
- Nomor Seri Faktur Pajak is a valid, unused number issued by DJP; kode transaksi and status digit correct
- Buyer NPWP/NIK and NITKU correct; address complete
- Each line: harga satuan, jumlah, diskon, DPP, PPN (and PPnBM if luxury)
- PPN uses the current rate mechanism (12% statutory / 11/12 DPP base); kode 07/08 carry the right fasilitas code
- Header
JUMLAH_DPP/JUMLAH_PPNreconcile with the line totals - Uploaded via e-Faktur / Coretax DJP; approval code and QR received before the faktur is treated as valid
- Faktur flows into the period's SPT Masa PPN (1111) as faktur keluaran
Last updated: 2026-06-04 — confirm the active schema version, field codes, and DJP/Coretax requirements against the current Direktorat Jenderal Pajak specifications before use.