Topics
Zantara AI
AI Tax Advisor
Questions about how this applies to your case?
Bali Zero handles visas, company setup, tax and property compliance in Indonesia. Ask us directly on WhatsApp.
Chat with Bali Zero on WhatsAppLoading Zantara...
Topics
Zantara AI
AI Tax Advisor
Bali Zero handles visas, company setup, tax and property compliance in Indonesia. Ask us directly on WhatsApp.
Chat with Bali Zero on WhatsAppAt the end of every tax year, Indonesian corporations must reconcile their actual tax liability with the monthly prepayments (PPh 25) and withholding tax credits (PPh 22, 23, 24) accumulated throughout the year. This reconciliation produces one of two outcomes:
For PT PMA companies operating in Indonesia, understanding this annual settlement is critical for cash flow planning, financial reporting, and compliance.
Step 1: Calculate Annual Corporate Income Tax
Gross Revenue (Peredaran Bruto)
- Cost of Goods Sold (Harga Pokok Penjualan)
= Gross Profit (Laba Kotor)
Gross Profit
- Operating Expenses (Biaya Operasional)
- Depreciation & Amortization
- Other Allowable Deductions
= Taxable Income (Penghasilan Kena Pajak)
PPh Badan Terutang = Taxable Income x 22%
Step 2: Identify All Tax Credits
| Credit Type | Source | Typical Amount |
|---|---|---|
| PPh 22 | Withheld on imports by customs | 2.5% of import value |
| PPh 23 | Withheld by clients on service payments | 2% of service value |
| PPh 24 | Foreign taxes paid (with treaty limits) | Varies by country |
| PPh 25 | Monthly installments paid throughout the year | 12 x monthly amount |
Step 3: Calculate the Settlement
PPh 29 (or PPh 28) = PPh Badan Terutang - PPh 22 - PPh 23 - PPh 24 - Total PPh 25
If result is POSITIVE = PPh 29 (underpayment, you owe more)
If result is NEGATIVE = PPh 28 (overpayment, you are owed a refund)
If result is ZERO = Nihil (no additional payment or refund)
2025 Financial Summary:
| Item | Amount (IDR) |
|---|---|
| Gross Revenue | 12,000,000,000 |
| Cost of Goods Sold | (7,200,000,000) |
| Gross Profit | 4,800,000,000 |
| Operating Expenses | (2,800,000,000) |
| Depreciation | (400,000,000) |
| Other Deductions | (200,000,000) |
| Taxable Income | 1,400,000,000 |
Tax Calculation with Article 31E Facility:
Since revenue is IDR 12 billion (under IDR 50 billion), the company qualifies for the Article 31E 50% discount on the proportional share:
Discounted portion: (4.8B / 12B) x 1.4B = IDR 560,000,000
Full-rate portion: 1.4B - 560M = IDR 840,000,000
Tax on discounted portion: 560M x 11% = IDR 61,600,000
Tax on full-rate portion: 840M x 22% = IDR 184,800,000
PPh Badan Terutang = IDR 246,400,000
Tax Credits During 2025:
| Credit | Amount (IDR) |
|---|---|
| PPh 22 (imports) | 18,000,000 |
| PPh 23 (service income) | 24,000,000 |
| PPh 24 (foreign tax credit) | 0 |
| PPh 25 (12 months x IDR 15,000,000) | 180,000,000 |
| Total Credits | 222,000,000 |
Settlement:
PPh 29 = IDR 246,400,000 - IDR 222,000,000
PPh 29 = IDR 24,400,000 (underpayment)
PT Bali Sunrise Ventures must pay IDR 24,400,000 as PPh 29 before filing the 2025 SPT Tahunan by April 30, 2026.
2025 Financial Summary:
| Item | Amount (IDR) |
|---|---|
| Gross Revenue | 6,000,000,000 |
| Cost of Goods Sold | (3,000,000,000) |
| Gross Profit | 3,000,000,000 |
| Operating Expenses | (2,200,000,000) |
| Depreciation | (300,000,000) |
| Other Deductions | (100,000,000) |
| Taxable Income | 400,000,000 |
Tax Calculation:
With Article 31E (revenue under IDR 50B):
Discounted portion: (4.8B / 6B) x 400M = IDR 320,000,000
Full-rate portion: 400M - 320M = IDR 80,000,000
Tax on discounted: 320M x 11% = IDR 35,200,000
Tax on full-rate: 80M x 22% = IDR 17,600,000
PPh Badan Terutang = IDR 52,800,000
Tax Credits During 2025:
| Credit | Amount (IDR) |
|---|---|
| PPh 23 (service income) | 30,000,000 |
| PPh 25 (12 months x IDR 8,000,000) | 96,000,000 |
| Total Credits | 126,000,000 |
Settlement:
PPh 28 = IDR 52,800,000 - IDR 126,000,000
PPh 28 = (IDR 73,200,000) - OVERPAYMENT
PT Nusa Digital Solutions overpaid by IDR 73,200,000. The company can either request a refund or carry this credit forward.
Why did this happen? The PPh 25 installments were based on the previous year when the company was more profitable. The current year's income dropped, but the monthly installments were not reduced.
| Step | When | Action |
|---|---|---|
| Year-end closing | January | Close books for the previous year |
| Financial statements | January-February | Prepare audited financial statements |
| Tax calculation | February-March | Calculate PPh Badan Terutang |
| PPh 29 payment | Before SPT filing | Pay underpayment via e-Billing |
| SPT Tahunan filing | By April 30 | File annual return in CoreTax |
Critical: PPh 29 must be paid BEFORE submitting the SPT Tahunan. CoreTax will validate the payment during filing.
When your annual reconciliation shows PPh 28 (overpayment), you have three choices:
How it works: The overpayment is applied as a credit against the following year's PPh 25 installments or final tax liability.
Advantages:
Disadvantages:
Best for: Companies that expect to continue operating and have ongoing tax obligations.
How it works: You request DJP to return the overpaid amount directly to your bank account.
Process:
Timeline: 3-12 months from filing date
Advantages:
Disadvantages:
Best for: Companies with significant overpayments (IDR 100 million+) that have clean, well-documented tax records.
How it works: For qualifying taxpayers, DJP offers an expedited refund process with reduced audit scope.
Eligibility (Article 17C and 17D of UU KUP):
Timeline: 1-3 months
Advantages:
Disadvantages:
Understanding why underpayments occur helps you plan better:
| Cause | Explanation | Prevention |
|---|---|---|
| Revenue growth | Higher revenue than previous year means higher tax but same PPh 25 | Voluntarily increase PPh 25 mid-year |
| One-time gains | Asset sales, forex gains, insurance proceeds | Set aside tax provision immediately |
| Reduced deductions | Lower expenses (e.g., fewer employees, less marketing) | Review deduction trends quarterly |
| PPh 25 based on loss year | Previous year was a loss, so PPh 25 = 0 | File estimated PPh 25 voluntarily |
| Tax credit reduction | Lower imports (PPh 22) or fewer service payments (PPh 23) | Track credits throughout the year |
| Cause | Explanation | Resolution |
|---|---|---|
| Revenue decline | Lower revenue than previous year but high PPh 25 | Request PPh 25 reduction |
| Increased deductions | Higher expenses (expansion, new hires) | Plan PPh 25 adjustment |
| PPh 25 based on peak year | Previous year was exceptional | Apply for reduction early |
| High withholding credits | Many clients withholding PPh 23 on your invoices | Carry forward or request refund |
| Tax losses | Current year results in a loss | PPh 25 becomes a full overpayment |
When your PT PMA reports a tax loss for the year:
Example:
Decision: Request refund (triggers audit) or carry forward (reduces 2026 obligations).
The annual tax return filing process in CoreTax:
| Document | Purpose |
|---|---|
| Audited financial statements | Basis for tax calculation |
| Tax computation workpaper | Shows how taxable income was derived |
| All PPh 25 payment receipts (BPN) | Proof of monthly installments |
| PPh 22, 23, 24 withholding certificates | Tax credit documentation |
| PPh 29 payment receipt (if applicable) | Proof of underpayment settlement |
| Transfer pricing documentation (if applicable) | For companies with related-party transactions |
| Depreciation schedule | Asset depreciation calculations |
| List of shareholders | Ownership structure |
| List of related-party transactions | For DJP's cross-checking |
| Scenario | Cash Flow Impact | Action |
|---|---|---|
| Expected PPh 29 of IDR 50M+ | Significant cash outflow in March/April | Set aside monthly provisions |
| Expected PPh 28 of IDR 50M+ | Cash tied up until refund or carry-forward | Request PPh 25 reduction for next year |
| Volatile income | Unpredictable settlement | Maintain tax reserve fund |
PPh 29 must be paid BEFORE filing your SPT Tahunan Badan (annual corporate tax return). The SPT Tahunan deadline is April 30 for corporate taxpayers. In practice, most companies pay PPh 29 in March or early April and file the SPT immediately after.
If your total PPh 25 payments plus tax credits exceed your actual tax liability, you have PPh 28 (overpayment). You can either request a refund (restitusi) from DJP, which involves an audit and takes 3-12 months, or carry the credit forward to reduce next year's PPh 25 installments.
No, PPh 29 must be paid in full before filing your SPT Tahunan. However, if the amount is very large and creates cash flow issues, you can request a deferral from DJP under certain conditions, though this is rarely granted and may require a bank guarantee.
Late filing of SPT Tahunan Badan incurs a penalty of IDR 1,000,000. Additionally, any unpaid PPh 29 accrues interest at 2% per month from the deadline until payment. If the delay exceeds 3 months, DJP may issue a formal demand letter (STP - Surat Tagihan Pajak).
PPh 29 itself does not trigger an audit. However, filing PPh 28 with a refund request does trigger an audit. Additionally, significant fluctuations in PPh 29 amounts year-over-year may attract DJP attention during risk-based audit selection.
The annual tax settlement is the most critical compliance event for any PT PMA company. Getting PPh 29 wrong means penalties, while missing PPh 28 opportunities means leaving money on the table.
Bali Zero's Accounting Premium package at IDR 3,000,000/month includes annual SPT Tahunan preparation, PPh 29/28 calculation and optimization, and year-round tax planning. Our team ensures your monthly PPh 25 installments are calibrated correctly to minimize year-end surprises. For transfer pricing documentation that supports your annual filing, our TP documentation service starts at IDR 15,000,000/year.
Contact Bali Zero at info@balizero.com or WhatsApp +62 813 3805 1876 for annual tax filing and compliance management.