How to Report Crypto on Your Indonesian SPT: A Practical Guide
Step-by-step guide to reporting crypto assets and transactions on your Indonesian annual tax return (SPT). What goes where, what documentation you need, and common mistakes to avoid.
How to Report Crypto on Your Indonesian SPT: A Practical Guide
Filing your annual Indonesian tax return (SPT) with crypto activity is not complicated once you understand the structure — but most people either skip it entirely, guess at what goes where, or file an incomplete return that leaves them exposed. This guide walks through exactly what you need to report, where it goes, and what documentation you need to support it.
What Is the SPT and When Is It Due?
The SPT (Surat Pemberitahuan Tahunan) is Indonesia’s annual individual tax return. It covers the prior calendar year (January to December) and is due by March 31 of the following year for individual taxpayers.
Filing is done through DJP Online (djponline.pajak.go.id) using your NPWP (Nomor Pokok Wajib Pajak — your Indonesian taxpayer identification number). If you are an Indonesian tax resident without an NPWP, obtaining one is a prerequisite to filing — and is itself an obligation once you meet the residency threshold.
The Two Reporting Components for Crypto
Crypto activity appears in two places on your SPT:
1. Harta (Assets) — your crypto holdings as of December 31 of the tax year are declared as assets. You report the type of asset, the quantity, and the Rupiah value at year-end based on the prevailing market rate.
2. Penghasilan (Income) — taxable crypto transactions during the year are reported as income. The mechanism for this depends on which type of exchange you used.
Reporting Registered Exchange Activity (Indodax, Tokocrypto)
If you traded exclusively on registered Indonesian exchanges, the reporting process is relatively straightforward because the tax has already been withheld at source.
Registered exchanges issue a Bukti Potong — a withholding tax certificate — that summarizes the tax collected on your behalf during the year. This document is your primary reporting evidence for registered exchange activity.
On your SPT:
- Your gross transaction value from registered exchanges appears under final income (penghasilan yang dikenai pajak final)
- The Bukti Potong confirms the tax already paid
- No additional tax liability is generated from this activity — it has already been settled
What you need: Download your annual Bukti Potong from your exchange account before filing. Indodax and Tokocrypto both provide this in your account dashboard.
Reporting Unregistered Exchange Activity (Binance, Coinbase, Kraken)
This is where the process requires more work, because no tax has been withheld and no Bukti Potong exists. You are self-reporting and self-calculating.
Step 1 — Export your full transaction history
From each unregistered exchange you use, export your complete transaction history for the tax year in CSV or spreadsheet format. Most major exchanges provide this under Account → History → Export. Download:
- Spot trades
- Crypto-to-crypto swaps
- Deposits and withdrawals
- Any staking or earn rewards
Step 2 — Calculate total transaction value
Sum the total transaction value (buy + sell side) across all unregistered exchange activity for the year. This is your gross transaction base for the PPh calculation.
Note: The precise calculation methodology — whether PPh applies to gross transaction value or net gain — should be confirmed with your tax advisor. Irene to verify against current DJP guidance before publishing.
Step 3 — Apply the PPh rate
Apply the applicable PPh rate to your transaction base. For unregistered exchanges under PMK 68/2022, this is 0.2% of transaction value.
Step 4 — Calculate your VAT position
Under PMK 50/2025 (effective August 1, 2025), the VAT treatment of crypto transactions changed. Irene to confirm current PPN obligations for unregistered exchange activity before publishing.
Step 5 — Report on SPT
Unregistered exchange income is reported under non-final income on your SPT, with the calculated liability payable by the filing deadline.
Reporting Crypto Received as Income
If you received cryptocurrency as payment for work, services, or as employment income, this is reported as ordinary income — not as trading activity.
The amount to report is the Rupiah equivalent at the time of receipt, using the prevailing market rate on the date you received the crypto. If you received crypto on multiple dates throughout the year, each receipt is valued separately at the rate on that date.
This income is added to your other ordinary income and taxed at the applicable progressive PPh rates — not at the flat transaction rate that applies to trading activity.
Declaring Crypto Assets Under Harta
Regardless of your trading activity, any crypto assets you hold as of December 31 must be declared under the Harta section of your SPT.
For each asset type (Bitcoin, Ethereum, USDT, etc.):
- Record the quantity held
- Record the Rupiah value at December 31 market rate
- Use a reputable price source (CoinGecko, CoinMarketCap) and note the source for your records
This is a balance sheet declaration, not a tax calculation — you are declaring what you own, not generating additional liability. However, failing to declare assets creates a discrepancy risk if DJP later identifies holdings that were not reported.
Common Mistakes That Create Exposure
Mistake 1 — Not reporting Binance activity because “nothing was withheld” The absence of withholding does not eliminate the reporting obligation. It means the obligation sits with you.
Mistake 2 — Only reporting profitable trades Under PMK 68/2022’s transaction-based approach, the calculation applies to transaction value — not just profitable transactions. Both sides of a trade generate the applicable levy.
Mistake 3 — Forgetting crypto-to-crypto swaps Every swap between assets on an unregistered exchange is a taxable event. If you actively traded between assets throughout the year, each swap needs to be captured.
Mistake 4 — Not declaring held assets under Harta Crypto holdings as of year-end must be declared even if you had no taxable transactions. Failure to declare creates an unexplained asset discrepancy.
Mistake 5 — Using an accountant unfamiliar with crypto Most general tax accountants in Indonesia have limited experience with crypto-specific reconciliation. Handing your Binance CSV to a generalist accountant and assuming they will handle it correctly is a risk.
What If Your Transaction History Is a Mess?
Years of active trading across multiple exchanges, wallets, and DeFi protocols can create a genuinely complex reconciliation problem. Missing data, exchange API changes, lost access to old accounts, and on-chain activity that does not appear in standard exchange exports all create gaps.
This is exactly the reconciliation work that a specialist handles. A proper reconciliation reconstructs your complete transaction history, fills gaps where data is available from alternative sources, and produces a defensible record that supports your SPT filing.
If you are facing a multi-year backlog of unreported activity across multiple platforms, starting with a Health Check is the right first step — it establishes your actual exposure before you decide how to address it.
Where to Start
If you have crypto activity to report and you are not certain how to approach your next SPT filing — or if you have years of unfiled activity to address — a Compliance Health Check gives you a clear picture of your position and a practical path forward.
Book a Compliance Health Check — Rp 6.500.000
Crypto Tax Indonesia provides reconciliation and advisory services for crypto asset tax compliance in Indonesia. Formal SPT filing is handled through our licensed BKP-certified partner. This article is for informational purposes only and does not constitute formal tax advice.