Understanding PPh 29 and PPh 28
At 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:
- PPh 29 (Kurang Bayar): Your actual tax liability exceeds what you have already paid. You owe additional tax.
- PPh 28 (Lebih Bayar): Your total payments exceed your actual tax liability. You have overpaid and are entitled to a refund or credit.
For PT PMA companies operating in Indonesia, understanding this annual settlement is critical for cash flow planning, financial reporting, and compliance.
The Annual Tax Settlement Formula
Step-by-Step Calculation
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)
Comprehensive Example: PPh 29 Calculation
PT Bali Sunrise Ventures (PT PMA)
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.
Comprehensive Example: PPh 28 (Overpayment)
PT Nusa Digital Solutions (PT PMA)
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.
PPh 29: Payment Process
Timeline
| 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 |
How to Pay PPh 29
- Calculate the exact PPh 29 amount from your tax computation
- Log in to CoreTax at coretaxdjp.pajak.go.id
- Generate billing code:
- Navigate to Pembayaran > Buat Kode Billing
- Tax type: PPh Pasal 29 (411126)
- Tax period: December (or 12)
- Tax year: Previous year (e.g., 2025 for filing in 2026)
- Amount: Your PPh 29 calculation
- Pay through bank using the billing code
- Save the BPN (Bukti Penerimaan Negara) payment receipt
- Enter the BPN number when filing your SPT Tahunan in CoreTax
Critical: PPh 29 must be paid BEFORE submitting the SPT Tahunan. CoreTax will validate the payment during filing.
PPh 28: Overpayment Options
When your annual reconciliation shows PPh 28 (overpayment), you have three choices:
Option 1: Carry Forward (Kompensasi)
How it works: The overpayment is applied as a credit against the following year's PPh 25 installments or final tax liability.
Advantages:
- No audit trigger
- Immediate benefit (reduces next year's monthly payments)
- Simple, just select "Kompensasi" in the SPT Tahunan filing
Disadvantages:
- Cash is not returned; it reduces future obligations
- If the company closes, the credit may be lost
Best for: Companies that expect to continue operating and have ongoing tax obligations.
Option 2: Refund (Restitusi)
How it works: You request DJP to return the overpaid amount directly to your bank account.
Process:
- Select "Restitusi" when filing SPT Tahunan
- DJP initiates a tax audit (pemeriksaan pajak)
- The audit reviews your entire annual filing, not just the overpayment
- If approved, DJP issues a Surat Ketetapan Pajak Lebih Bayar (SKPLB)
- Refund is processed to your registered bank account
Timeline: 3-12 months from filing date
Advantages:
- Actual cash returned to your company
- Improves cash flow
Disadvantages:
- Triggers a full tax audit
- Long processing time
- The audit may find other issues, potentially resulting in additional tax assessments
- Requires complete documentation for the entire tax year
Best for: Companies with significant overpayments (IDR 100 million+) that have clean, well-documented tax records.
Option 3: Preliminary Refund (Pengembalian Pendahuluan)
How it works: For qualifying taxpayers, DJP offers an expedited refund process with reduced audit scope.
Eligibility (Article 17C and 17D of UU KUP):
- Individual taxpayers with overpayment up to IDR 100 million
- Corporate taxpayers with overpayment up to IDR 1 billion
- PKP (VAT-registered) taxpayers with overpayment up to IDR 1 billion
- "Low-risk" taxpayers with good compliance history
Timeline: 1-3 months
Advantages:
- Much faster than regular refund
- Simplified audit process
Disadvantages:
- DJP retains the right to conduct a full audit within 5 years
- If the full audit finds discrepancies, you may need to return the refund plus penalties
Common Causes of PPh 29 (Underpayment)
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 |
Common Causes of PPh 28 (Overpayment)
| 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 |
Tax Loss Year: Special Considerations
When your PT PMA reports a tax loss for the year:
- PPh Badan Terutang = IDR 0 (no tax on losses)
- All PPh 25 payments become PPh 28 (full overpayment)
- All PPh 22 and PPh 23 credits become PPh 28
- The tax loss can be carried forward for up to 5 years (or 10 years in certain industries)
Example:
- 2025 tax loss: (IDR 500,000,000)
- Total PPh 25 paid in 2025: IDR 120,000,000
- PPh 22 and 23 credits: IDR 30,000,000
- PPh 28 (overpayment): IDR 150,000,000
Decision: Request refund (triggers audit) or carry forward (reduces 2026 obligations).
Filing SPT Tahunan in CoreTax
The annual tax return filing process in CoreTax:
Required Documents
| 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 |
Filing Steps in CoreTax
- Log in to CoreTax
- Navigate to Pelaporan > SPT Tahunan Badan
- Select tax year (e.g., 2025)
- Complete the form sections:
- Company profile and identity
- Income statement details
- Balance sheet information
- Tax calculation
- Tax credits (enter PPh 22, 23, 24, 25)
- PPh 29 payment (or PPh 28 selection)
- Attachments
- Upload financial statements (PDF format)
- Review all entries
- Submit and receive BPE (Bukti Penerimaan Elektronik)
Annual Tax Planning Strategies
Minimize PPh 29 Surprises
- Quarterly tax estimation: Calculate projected annual tax quarterly, not just at year-end
- Track revenue trends: If revenue is growing faster than expected, increase PPh 25 voluntarily
- Monitor tax credits: Track PPh 22 and PPh 23 credits throughout the year
- Review deductions: Ensure all allowable deductions are maximized
- Timing of expenses: Accelerate allowable expenses into the current year if facing a large PPh 29
Avoid Unnecessary PPh 28
- Request PPh 25 reduction: If revenue is declining, reduce your monthly installments
- Review withholding rates: Negotiate with clients about PPh 23 withholding if it is creating excessive credits
- Claim treaty benefits: Use double taxation agreements to reduce PPh 24 and increase foreign tax credits
- Plan investments: Time capital expenditures to create deductions that align with income patterns
Cash Flow Planning
| 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 |
Frequently Asked Questions
When is PPh 29 due?
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.
What happens if I overpaid (PPh 28) instead of underpaid?
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.
Can PPh 29 be paid in 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.
What happens if I file SPT Tahunan late?
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).
Does PPh 29 trigger a tax audit?
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.
Professional Annual Tax Filing
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 821 3454 721 for annual tax filing and compliance management.
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 WhatsApp