Enter a price and pick the goods class. The calculator applies the general PPN rule of PMK 131/2024 and shows the tax base, the PPN and the total in exact rupiah.
By Matthews WongResearched on
Key takeaway
Since 1 January 2025, Indonesian PPN is 12%. Under PMK 131/2024, goods and services that are not luxury goods are taxed on a DPP nilai lain of 11/12 of the price, so the PPN works out to 11% of the price. Luxury goods subject to PPnBM pay 12% on the full price.
Whole rupiah. Separators are optional.
On the Faktur Pajak (whole rupiah)
Three formulas, all from the sources at the foot of the page.
| Case | Tax base (DPP) | PPN | Example on Rp15,000,000 |
|---|---|---|---|
| Non-luxury goods and services | 11/12 × price (DPP nilai lain) | 12% × DPP = 11% of price | DPP Rp13,750,000; PPN Rp1,650,000 |
| Luxury goods (subject to PPnBM) | Full price | 12% × price | DPP Rp15,000,000; PPN Rp1,800,000 |
| Price already includes PPN | Net price = gross ÷ 1.11 (non-luxury) or ÷ 1.12 (luxury) | Gross − net price | Rp16,650,000 gross: net Rp15,000,000; PPN Rp1,650,000 |
12% × 11/12 is exactly 11/100, so PPN on a whole-rupiah price is a whole number of sen. Keep money as integers and the result never drifts.
// PPN under PMK 131/2024, in sen (1/100 rupiah), using BigInt.
// Non-luxury: 12% × (11/12 × price) = 11/100 × price
// Luxury: 12% × price = 12/100 × price
type GoodsClass = "non-luxury" | "luxury";
function ppnInSen(priceRupiah: bigint, goods: GoodsClass): bigint {
// price × rate/100 rupiah = price × rate sen, exactly
return priceRupiah * (goods === "luxury" ? 12n : 11n);
}
ppnInSen(15_000_000n, "non-luxury"); // 165_000_000n sen = Rp1,650,000
ppnInSen(15_000_000n, "luxury"); // 180_000_000n sen = Rp1,800,000Read the full methodShort 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.