The two most-used methods, built with care
Virtual Accounts and QRIS are the payment methods people use the most and dispute the least. Other methods will follow once these two are truly mature.
Virtual Account
A unique account number for every invoice, in your customer's name. Available at 8 banks: BRI, BNI, CIMB Niaga, Permata, Danamon, Maybank, Mandiri, and BSI. Customers pay from any ATM, mobile banking, or internet banking service.
From Rp3.000 per transaction. See pricing per bank →
QRIS
One QR code for every digital wallet and mobile banking app connected to QRIS. Code expired? The payment page generates a fresh one, and the invoice stays alive.
MDR of 0,7% as regulated by Bank Indonesia, with no markup from us. See pricing details →
A ready-made payment page, or build your own
Every invoice automatically comes with a hosted_url:
a payment page we maintain, ready to share through any channel.
Prefer to present it inside your own app? Take the qr_content
or the VA number straight from the API response.
Create from the dashboard, no code needed
The + Create invoice button in the portal: enter the amount and the customer's name, and the payment link is ready, complete with a billing message template you can send straight to WhatsApp. Your admin staff will never need a developer.
One link for everything
Send it through WhatsApp, email, or SMS. Customers choose VA or QRIS on the page, with no extra app to install. Want it on your own site? Embed it as a modal with a single script tag.
Invoices that refuse to die quietly
An expired QR is not the end of the story: the payment page regenerates a new code as long as the invoice is still valid. Customers simply try again.
A webhook the moment it is paid
The payment.paid event arrives at your server with a
complete payload: enough to mark the invoice as paid and switch the
service on without an extra API call.
Billing that closes its own loop
Through WACO (the official WhatsApp Business API, included in your subscription), invoices go out and confirmations come back without anyone typing a word.
ISPs run this cycle in production every single day, and it is not something you get by signing up with any gateway directly. Conversation fees are paid straight to Meta, with no markup from us.
Settlement that is locked down and auditable
A locked destination account
Settlements are only ever sent to the business bank account verified during onboarding. The destination account cannot be changed without re-verification, so your account is safe from takeover.
Every rupiah leaves a trail
There is no balance to withdraw manually. Every settlement goes out on schedule, is announced by email with its full breakdown, and its entire history can be audited in the dashboard. The CSV export already includes the tax base (DPP) and VAT (PPN).
Move from another gateway with zero downtime
Already on Duitku or Xendit? Switch on compatibility mode, swap the base URL and key, and your existing code keeps running as it is. Migrate step by step while your old system keeps serving.
Processed by a BI-licensed provider
Transaction processing is handled by a payment service provider licensed by Bank Indonesia. doit.id orchestrates the cycle: the API, the payment page, WhatsApp, reporting, and fully recorded settlements.