Freelancer guide

Invoicing & tax for a Web Developer in Indonesia

A Web Developer in Indonesia bills with a QRIS-enabled invoice, and when the client is a company (PT/CV), the client withholds 2% PPh on the fee (category: Services (PPh 23)), transfers the rest, and issues a bukti potong via e-Bupot (Coretax) as proof. Example: on a Rp15.000.000 fee, Rp300.000 is withheld and you receive Rp14.700.000. Your own annual tax uses the 0.5% UMKM final tax (PP 55/2022 as amended by PP 20/2026 — now permanent): the first Rp500 million of annual omzet is tax-free, 0.5% on the rest, deposited by the 15th of the following month. On your invoice you are the payee — the client withholds and issues the slip, not you.

Building a company-profile site or web store for a corporate client is rarely just code: there’s the domain and hosting you front, the monthly maintenance retainer, and a finance team withholding PPh on every payment.

By the Tagihin team · Updated 10 Jun 2026

A worked example

Say you are a Web Developer billing a PT client Rp15.000.000 for your work. The withholding category is “Services (PPh 23)” at 2%. The figures below come straight from the Tagihin engine.

Fee (before PPN)Rp15.000.000
Total invoicedRp15.000.000
Less PPh withheld 2%-Rp300.000
Net the client pays (QRIS amount)Rp14.700.000

The client withholds Rp300.000, transfers Rp14.700.000 to your account, and issues the bukti potong via e-Bupot as proof.

Your own tax: the 0.5% UMKM final tax

As an individual with omzet ≤ Rp4.8 billion/year who is not pekerjaan bebas, your business income is taxed at a final 0.5% of omzet (PP 55/2022 as amended by PP 20/2026 — permanent for individuals and PT Perorangan since April 2026). The best part: the first Rp500.000.000 of annual omzet is tax-free. Example: Rp600.000.000 of annual omzet → only the excess is taxed, so the year's tax is Rp500.000. Deposits are monthly, by the 15th of the following month (PMK 81/2024), using a billing code from DJP Coretax.

Run your own numbers: UMKM 0.5% final-tax calculator · Monthly deposit guide

When your client is a company: withholding & the bukti potong

A company paying you must withhold PPh and remit it in your name — individuals are generally withheld under PPh 21 for non-employees (effective 2.5%, PMK 168/2023), while corporate vendors are withheld under PPh 23 (services 2%). The proof is the bukti potong the client issues via e-Bupot in Coretax. Without an NPWP the withholding jumps: PPh 21 becomes 120% of normal, PPh 23 doubles.

Who withholds: On your own sales invoice you are the payee. The client (the payer) withholds the PPh and issues the bukti potong to you via e-Bupot — not you. Your job: make sure every withholding has its slip, then keep them for the annual SPT.

What to watch for in this trade

Separate the build fee from the domain/hosting you fronted. The PPh base should ideally be your service fee, not pass-through costs — and split lines also get approved faster.

Documents you’ll need

  • Surat penawaran (quotation) — lock the scope and price before work starts
  • Invoice — the formal bill, with an exact-amount QRIS QR so the client just scans
  • Kwitansi (receipt) — proof of payment; above Rp5 million it requires the Rp10.000 meterai (Law 10/2020; e-meterai for PDFs)
  • Bukti potong — RECEIVED from corporate clients (issued via e-Bupot), not created by you; keep every one

Tools & guides for this

Tagihin issues invoices and receipts that compute the withholding for you, with an exact-amount QRIS QR embedded — the client scans and the money lands straight in your own account.

Start invoicing as a Web Developer — free →

No credit card required — start on the free plan.

Tagihin only formats and computes documents for you. This is general information, not tax advice — please confirm with the DJP (Indonesian tax office) or your accountant.