The Dutchman Bridge API
Settlement rails between stablecoins and fiat.
One API to move USDT, USDC and cNGN to bank accounts in African markets, and to pay recipients abroad from a local balance. Verification, pricing, custody and the ledger are ours, so every transfer can be reconciled after the fact.
- 01 · On chainDepositPer-customer addressUSDT · TRONtx hash
- 02 · LedgerConvertBalanced entriesRate and fees storedidempotency key
- 03 · BankPay outLicensed providerFiat to accountpayout reference
| Event | Account | Entry |
|---|---|---|
| deposit.received | Customer · USDT | Credit |
| sale.completed | Customer · USDT | Debit |
| sale.completed | Customer · fiat | Credit |
| withdrawal.completed | Customer · fiat | Debit |
Every movement is a balanced pair, and every pair carries the hash or the payout reference that proves it.
Settlement, not speed
Speed is the claim that breaks the day a provider queues. These are the properties that hold on that day, and the mechanism behind each.
- 01A transfer either completes or is accounted for.Every movement is written as balanced ledger entries, each carrying the on-chain hash or payout reference behind it. Requests carry idempotency keys, so a retry cannot send twice. A corridor with no automated rail files an operator task instead of reporting a payout that did not happen.
- 02Every fee is a named component, not a margin hidden in the rate.Spread, exchange fee and payout fee are stored values, applied per transaction and returned with the quote. The same components appear on the record afterwards.
- 03Verification is a state, not a stamp.Tiered identity checks keyed to national identifiers, document and liveness at the higher tier, KYB for businesses. Each customer has one readable status and a webhook fires on every change. A reopened verification lists exactly what to resubmit, and why.
- 04Redundant where it matters, honest where it is not.Payouts route across more than one licensed provider where the corridor has them, with a declared fallback and a manual path of last resort. Verification runs on more than one provider, so onboarding continues if one is down.
Cross-border payouts from a local balance
A customer pays a recipient abroad from their local or stablecoin balance. Their money is converted to a stablecoin, and a payout partner delivers it to the recipient's bank in the local currency there. One API call, one quote, one record from debit to delivery.
- 01Verified once, abroadEach sender is onboarded with the payout partner in their own name — individuals from their verified ID, businesses with their owners and documents. A one-off fee, shown before submission.
- 02Priced before it is sentThe quote shows the exchange rate, what the conversion costs, the transfer fee and any delivery fee, and an estimate of what the recipient gets.
- 03Checked before money movesA reason for payment, the recipient’s bank details and address are required for the corridor before the sender is debited — never discovered missing afterwards.
- 04Refunded when it failsA payout the partner rejects is returned to the sender in full, fees included, and recorded against the same reference.
| Destination | Rail |
|---|---|
| United States | Bank transfer, operator-assisted |
| United Kingdom, eurozone, Canada | Local rails via a payout partner |
| Mexico, Brazil, Colombia | Local rails via a payout partner |
| China | Operator-assisted |
Operator-assisted means a person submits the payout to the partner. It is described that way in the API too, so a send is never reported as delivered before it is.
Coverage, stated at the level the rail supports
| Market | Rail | Status |
|---|---|---|
| Nigeria | Automated, more than one licensed provider | Live |
| Ghana, Kenya, Tanzania, Uganda, South Africa | Provider-dependent | On request |
- Stablecoins
- USDT, USDC and cNGN — local-currency stablecoins as well as dollar ones.
- Networks
- Ethereum, Polygon, Arbitrum, Base, BSC and TRON.
- Direction
- Off-ramp first: stablecoins in, fiat out. Funding by virtual account where the corridor supports it.
One API, and the audit trail comes with it
- Your users, your brand
- Customers are registered through the API under your account. They never log in to Dutchman Bridge.
- Your fees, on top of ours
- Set your own fee per flow and currency. It is quoted to the customer and credited to your balance.
- Signed webhooks with retries
- Events are queued, signed and redelivered on failure, and every delivery is visible and replayable.
- A deposit policy you choose
- Decide what happens to a deposit that does not match its quote: refund it, or settle what arrived.
# 1. Quote. The fee components come back with the rate.curl -X POST "$BASE/customers/$CUSTOMER_ID/sell/quote" \
-H "x-api-key: $API_KEY" \
-d '{ "amount": <amount>, "sourceCurrency": "USDT",
"destinationCurrency": "<fiat>", "type": "sell" }'# 2. Execute the quote you showed the customer.curl -X POST "$BASE/customers/$CUSTOMER_ID/sell/execute" \
-H "x-api-key: $API_KEY" \
-d '{ "quoteId": "<from step 1>" }'# 3. Pay out. The same reference cannot pay twice.curl -X POST "$BASE/customers/$CUSTOMER_ID/withdraw" \
-H "x-api-key: $API_KEY" \
-d '{ "amount": <amount>, "reference": "<your id>" }'# Each step ends in a signed webhook.sale.completed · withdrawal.completedAccess
Partners are onboarded after business verification.
Create an account, upload your company documents, and build against the API reference while compliance reviews them. Your key is issued on approval.