Sub-merchants without building anything
One integration for all of your customers. Four things you would normally build yourself, already done.
Register from the dashboard or the API
One click in the dashboard or one API request creates a sub-merchant account: sandbox active instantly, production unlocked once verification completes. Businesses and individuals alike (just an ID card, a selfie, and proof of bank account; tax number optional).
Verification handled by us
Each sub-merchant gets a verification link to display inside your app. Data entry, document upload, and review are handled by doit.id. Status changes are delivered to your server as webhooks.
Headless by default
Your sub-merchants never have to see doit.id: pull transactions and payout status through the API and render them in your own app. A dashboard for sub-merchants is available as an option, never a requirement.
Payouts with zero code
There is no balance for you to withdraw. Settlement runs automatically to each sub-merchant's bank account; your app simply reads the status through the API. Accounts lock after registration, so the destination of funds can never be quietly redirected.
Straight to bank accounts, no idle balances
We deliberately avoid the wallet model. The net of every transaction goes to the sub-merchant's bank account on the settlement cycle, with no withdrawal step and no funds parked with a third party. Sub-merchants can always see their own deductions, so "where is my money" questions never land on your team.
Platform commission, frozen when paid
Set a flat and/or percentage commission per sub-merchant, from the dashboard or the API. The amount is locked on each transaction the moment it is paid, so changing your rate today does not move yesterday's transactions. Commission reduces the sub-merchant's net, never increases what the buyer pays, and is paid out to your bank account in the same settlement cycle.
One API key for every sub-merchant
Send the for-sub-merchant header and the request runs on
behalf of that sub-merchant: their invoice, methods, and webhooks. Point
every sub-merchant's callbacks at a single endpoint; each payload carries
its origin. All testable in sandbox right now.
Whose name the buyer sees
Two options, and sub-merchant documents are verified by doit.id in both. The only difference is whether the sub-merchant needs its own identity on the payment network.
Your name
The sub-merchant operates under your identity, and buyers see your platform's name on the QRIS. No application to the payment provider is needed, so it can go live quickly. The easiest option to scale.
The sub-merchant's own name
The sub-merchant gets its own identity on the payment network, and its name is what buyers see. This requires an application to our partner payment provider, so there is a waiting time per sub-merchant.