Tax Status of Programmers and Developers
Tax obligations for programmers and developers depend on the nature of the working relationship:
| Status | Tax Mechanism |
|---|---|
| Permanent or contract employee | PPh 21 withheld by employer monthly via TER |
| Freelancer or independent contractor | PPh 21 as expert worker withheld by corporate clients; self-assessed for individual clients |
| Business owner (PT/CV) | Corporate PPh for the entity + personal PPh for individual income |
This guide covers the first two scenarios, which apply to most developers.
Scenario 1: Developer as a Permanent Employee
If you work full-time at a company, the tax mechanism is identical to any other private sector employee: PPh 21 is withheld by the employer each month using the Effective Average Rate (TER) under PMK No. 168/PMK.03/2023.
Points specific to developer employees:
- Equipment allowances (laptop, internet): Cash allowances are included in gross taxable income. Benefits in kind (natura) are now generally taxable for employees under the UU HPP 2021 amendments, except for specific exemptions.
- ESOP and RSU: Shares received under employee stock option or restricted stock unit programmes are taxable income at the time the right vests or shares are received, based on the fair market value at that date.
- Signing bonuses and relocation allowances: Included in gross income and withheld by the employer as PPh 21.
Scenario 2: Freelance Developer and Independent Contractor
Freelance programmers working without an employment relationship are classified as independent professionals (pekerjaan bebas). Two withholding mechanisms apply depending on who pays:
PPh 21 as Expert Worker (Corporate Clients)
When the client is a company or legal entity (PT, CV, government body), the client must withhold PPh 21 as expert worker under Article 13(7) of PMK 168/2023:
Example: Developer Budi receives IDR 20,000,000 from PT Maju Raya for an app development project.
Assuming cumulative taxable income is still in the 5% bracket:
The client must issue a PPh 21 withholding certificate (Bukti Potong) via e-Bupot. This certificate is credited against the developer's annual tax return.
PPh 23 (When the Developer is a Legal Entity)
If the developer operates through a PT or other legal entity (not as an individual), and the client is also a legal entity, PPh 23 at 2% applies on the gross amount for technical services and software development under PMK No. 141/PMK.03/2015.
Individual Clients
When the client is an individual (not a legal entity), no withholding obligation falls on the client. The developer must calculate and pay tax independently via monthly instalments (PPh 25) and the year-end payment (PPh 29) in the annual return.
Income from Apps and Digital Platforms
Google Play Store and Apple App Store
Income from app sales, in-app purchases, or advertising (AdMob) through Google Play or the App Store is foreign-sourced income for Indonesian developers. Under Article 4(1) of Income Tax Law No. 36/2008, Indonesian tax residents are taxed on worldwide income, including income earned abroad.
This income must be declared in the annual tax return under foreign income. If tax has already been withheld by the source country (e.g., Google's withholding tax), it may be credited as Foreign Tax Credit (PPh Article 24) to avoid double taxation.
International Freelance Platforms (Upwork, Fiverr, Toptal)
Income from international freelance platforms is treated the same way: foreign-sourced income that must be reported in the annual tax return. No Indonesian withholding applies through these platforms, so the developer must calculate and pay tax via PPh 25 instalments and PPh 29 settlement.
Software Licences and SaaS
Royalties or licence fees from software developed by a developer are subject to PPh on royalties. When paid by an Indonesian company, the payer must withhold PPh 23 at 15% of gross royalty under Article 23(1)(a) of the Income Tax Law.
Annual Tax Return for Developers
The correct SPT Tahunan form depends on income sources:
| Scenario | Form |
|---|---|
| Employee, single employer, gross below IDR 60 million | 1770SS |
| Employee, gross above IDR 60 million | 1770S |
| Freelance or multiple income sources | 1770 |
| Any foreign-sourced income | 1770 |
Freelancers and developers with multiple clients must use Form 1770 (not 1770S or 1770SS) to declare income from various sources and calculate monthly PPh 25 instalments.
Frequently Asked Questions
Do freelance developers have to pay tax themselves?
Yes. When clients are individuals, there is no automatic withholding. The developer must calculate net income (using the NPPN standard rate or full bookkeeping), deduct PTKP, and pay tax via monthly PPh 25 instalments and the annual PPh 29 settlement.
What is the standard deduction rate (NPPN) for developers?
Computer and programming services (KLU 62010-62090) fall under technical consulting and professional services. Under PER-17/PJ/2015, the rate generally ranges from 40-50% depending on location. Confirm the specific KLU, as the NPPN table uses detailed industry codes.
Is income from GitHub Sponsors or Patreon taxable?
Yes. Regular income received from sponsorships or donations in exchange for ongoing work or services is taxable income. Payments from foreign entities such as GitHub Sponsors constitute foreign-sourced income and must be reported in the annual tax return.
How is income paid in USD or foreign currency treated?
Foreign currency income is converted to Indonesian Rupiah using the Ministry of Finance exchange rate (Kurs KMK) published by DJP on the date of payment, not the market rate. KMK rates are published weekly and available at pajak.go.id.