What Coretax DJP, PMK 131/2024 and PER-11/PJ/2025 mean for the code: tax IDs, PPN calculation, invoice numbering, XML export, import costs and audit trails, each traced to the rule that sets it. Then the article to read for the job in front of you.
By Matthews WongResearched on
Key takeaway
Since 1 January 2025 Indonesian tax invoices run through Coretax DJP. A compliant ERP stores NPWP and NITKU as fixed-length strings, charges PPN at 12% of a DPP Nilai Lain of 11/12 for non-luxury goods, rounds to whole rupiah, exports DJP's XML templates, and leaves the 17-digit invoice number empty until DJP approves the e-Faktur.
DJP put Coretax DJP into service on 1 January 2025; its statement of 10 January admits the launch was rough, and at that point XML uploads were capped at 100 invoices per submission. Under PER-11/PJ/2025 a Faktur Pajak is an electronic document, signed electronically, made in the Portal Wajib Pajak or in an application integrated with DJP's system, which in practice means a PJAP, a tax application provider appointed by DJP.
The desktop client did not vanish. Under KEP-54/PJ/2025, from 12 February 2025 every PKP may create normal invoices in e-Faktur Client Desktop, except for transaction codes 06 and 07, PKPs that centralise VAT at a branch, and PKPs registered after 1 January 2025. Returns, cancellations and the SPT Masa PPN stay in Coretax, where desktop invoices appear within two days. Treat Coretax as the record and reconcile against it.
Since 1 July 2024 DJP's services use the NIK as the NPWP for resident individuals, a 16-digit NPWP, and a NITKU for each place of business; other parties could keep the 15-digit NPWP until 31 December 2024. DJP's FAQ defines the NITKU as 22 digits: the head office's 16-digit NPWP plus a 6-digit sequence, with the head office's own ending in 000000. A NITKU marks a location; tax obligations stay with the NPWP.
So store fixed-length digit strings, never integers: a leading zero lost in a JSON round-trip corrupts the ID. On the invoice, PER-11/PJ/2025 asks for the buyer's NPWP if it is a domestic company or government body, the NPWP or NIK for a resident individual, and a passport number for a foreign individual. DJP's XML templates added the NITKU and validate NPWP and NITKU values, so a malformed ID is rejected.
PMK 131/2024 sets PPN at 12% from 1 January 2025 on two bases. For luxury goods, meaning motor vehicles and other goods subject to PPnBM, the base is the full selling price or import value. For everything else it is DPP Nilai Lain, 11/12 of the import value, selling price or replacement value, so the tax comes to 11% of the price. PMK 11/2025, in force from 4 February 2025, moved the special nilai lain and fixed-amount schemes onto the same 12% × 11/12 form.
PER-11/PJ/2025 settles the rest. A Faktur Pajak is made at delivery, at payment if that comes first, or at each progress payment; a Faktur Pajak gabungan may cover one buyer for a calendar month, made by its end. Foreign-currency PPN is converted at the Minister of Finance rate in force when the invoice should have been made. DPP and PPN are whole rupiah, below 0.50 rounding down and 0.50 or more up. Store DPP, DPP Nilai Lain and PPN as separate integer fields, with the rate and coefficient read from effective-dated data.
The 17-digit number is a 2-digit transaction code, a 2-digit status code and a 13-digit serial that DJP assigns when the e-Faktur is uploaded and approved. Upload and approval must happen by the 20th of the month after the invoice date; an unapproved e-Faktur is not a Faktur Pajak. Since the number does not exist at draft time, model the invoice as a state machine (draft, uploaded, approved, replaced, cancelled). Desktop invoices gain a 9 at the fifth digit in Coretax, so keep both forms.
Bulk import is XML. DJP's template page lists what changed from the old CSV files and versions each converter; the output-invoice converter was at v1.6, dated 23 January 2026, on the research date. Pin the template version your serialiser targets and validate before upload. Since 1 October 2026, PER-12/PJ/2026 makes each SPT correction replace the previous return and blocks a normal SPT Masa PPN while the prior period's is missing, unless that period is under audit. Build each period as a complete snapshot.
Bea masuk is charged on the CIF value at the rate for the goods' tariff line in PMK 26/PMK.010/2022, the customs tariff book, as amended. The import value used by the import taxes is CIF plus bea masuk and other customs levies. PPN impor on non-luxury goods is 12% of 11/12 of that value, and PMK 131/2024 lets it be credited as input tax under the tax rules.
PPh Pasal 22 on imports is collected by customs (DJBC) or a foreign-exchange bank under PMK 51/2025, in force since 1 August 2025: 2.5% of the import value with an API (importer identification number), 7.5% without, 10% or 7.5% for listed goods regardless of API, 0.5% for soybeans, wheat and flour with an API, and 0.25% for gold bars. It is not final; it counts toward that year's income tax. So a landed-cost engine puts freight, insurance and bea masuk into inventory cost, PPN impor into input VAT and PPh 22 into prepaid tax.
UU KUP Article 28(11) requires books, records and their source documents, including electronically processed data, to be kept for 10 years in Indonesia. Design retention around that: keep the exact XML you submitted and DJP's response with each invoice, keep stock opname count sheets and variance approvals, and make posted journals append-only, corrected by reversals.
The rest is architecture. Keep tax as its own module with an effective-dated table of rates, coefficients and transaction codes, so a regulation change is a data change. Hold money as integer rupiah, rounding where PER-11 says to. Derive invoices from deliveries, which follows PER-11's default timing. Count stock against a frozen snapshot with a second person approving variances, and give multi-entity groups a company and NITKU dimension on every document.
| Area | Before | Now | What to change in code |
|---|---|---|---|
| Taxpayer ID | 15-digit NPWP, and a separate NPWP for each branch | From 1 July 2024: NIK as NPWP for resident individuals, a 16-digit NPWP, and a 22-digit NITKU per place of business | Store IDs as fixed-length digit strings, add a NITKU per location, validate length at entry |
| Invoice number | 16-digit number; NSFP requested in advance through e-Nofa | 17 digits: 2 transaction code, 2 status code, 13 serial; the serial is assigned when the e-Faktur is uploaded and approved | Drop the number pool, keep the number empty until approval, store both forms for desktop-era invoices |
| Bulk import | CSV files | XML built to DJP's templates, which add the NITKU and validate NPWP, NITKU, tax object codes and tax rates | Write an XML serialiser per template version and validate before upload |
| PPN base | Rate × selling price or replacement value, the DPP the VAT law defines | 12% × selling price for PPnBM goods; 12% × 11/12 of it (DPP Nilai Lain) for everything else | Store DPP, DPP Nilai Lain and PPN as separate fields; keep rate and coefficient as effective-dated data |
| Issuing channel | Legacy e-Faktur applications | Coretax portal, a PJAP host-to-host link, or e-Faktur Client Desktop for normal invoices since 12 February 2025; returns, cancellations and SPT Masa PPN only in Coretax | Treat Coretax as the source of truth and reconcile desktop invoices, which arrive within two days |
| SPT Masa PPN corrections | A correction reported the difference against the earlier return | From 1 October 2026 each correction replaces the previous return, and returns are filed in period order | Build each period as a full snapshot and block out-of-order filing |
The dated changes a developer had to act on, oldest first, each linked to its official source.
Tax ID columns move to 16-digit strings plus a 22-digit NITKU per location. Other parties could keep the 15-digit NPWP until 31 December 2024 if their systems were not ready.
Source:DJP announcement PENG-26/PJ.09/2024 on using the NPWP and NITKU (pajak.go.id)Tax invoices are created and signed in Coretax. At launch it accepted XML uploads of up to 100 invoices per submission, and DJP's first fixes included company role access (impersonation) and a PIC for invoicing.
Source:DJP written statement KT-02/2025 on the Coretax implementationThe tax engine needs two bases: the full price for PPnBM goods and 11/12 of it for everything else. For luxury goods sold to end consumers, the 11/12 base applied through January 2025 and the full base from 1 February 2025.
Source:Kemenkeu JDIH: PMK No. 131 Tahun 2024 on PPN treatmentSpecial bases that sat in separate regulations now use 12% × 11/12 × DPP, or a set formula × 12% × 11/12 × DPP. Each special case is a row in the rate table, not a code path.
Source:DJP press release SP-4/2025 on PMK-11/2025Normal invoices may come from the desktop client, with exclusions; their numbers gain a 9 at the fifth digit in Coretax. Returns, cancellations and the SPT Masa PPN stay in Coretax.
Source:DJP announcement PENG-13/PJ.09/2025 on tax invoices via e-Faktur Client DesktopFrom 1 January to 31 March 2025, non-luxury invoices showing 11% or 12% of the selling price were treated as correct. After that, invoices had to show 12% × 11/12 × selling price; an overcharged buyer could ask for the 1% back through a replacement invoice.
Source:DJP written statement KT-01/2025 on PER-1/PJ/202517-digit code and serial, the serial assigned on approval, upload and approval by the 20th of the following month, and whole-rupiah rounding with 0.50 rounding up.
Source:DJP: full text of PER-11/PJ/2025 (pajak.go.id)Import PPh 22 is 2.5% of import value with an API and 7.5% without, with fixed rates for listed goods. It is not final, so post it to prepaid income tax rather than inventory.
Source:PMK No. 51 Tahun 2025, full text (copy hosted by Klikpajak)The converter and templates are versioned and keep changing. Record the template version each export targets, and re-test the serialiser when DJP publishes a new one.
Source:DJP: Template XML dan Converter Excel ke XML (pajak.go.id)Each SPT correction now replaces the previous return, and a normal SPT Masa PPN cannot be filed while the prior period's is missing unless that period is under audit. VAT return exports become full-period snapshots.
Source:DJP briefing on PER-12/PJ/2026, amending PER-11/PJ/2025 (pajak.go.id)Each one is a hands-on write-up of a problem I worked through. Start with the one that matches where you are.
Short answers, consistent with the sources on this page as of the research date.
Primary sources checked on the research date. Follow them for the current version.
The other hubs, the reference pages and the calculators in this section.