Get API keys
// Collections

Get paid in local currency, anywhere.

One endpoint to collect across our initial African markets: bank transfer in Nigeria, Mobile Money and Orange Money elsewhere, plus stablecoin — reconciled through one dashboard.

Get API keys Read the docs
Mobile money · bank · stablecoin · same-day settle
POST/v1/collections

$ dutch-api collections create \
  --amount 50000 --currency NGN \
  --method bank_transfer \
  --from +2347000000000 \
  --settle usdc

{
  "id": "col_7fm2",
  "status": "received",
  "method": "bank_transfer",
  "settled_to": "usdc",
  "settled_in": "same-day"
}
// every method, one api

Let customers pay how they already pay.

Mobile-money push, bank transfer, virtual accounts and Orange Money — the methods people in each market actually use, behind one collect call.

Nigeria · NGN3 collection methods
VA
Virtual accountsInstant
BK
Bank transferInstant
OP
OPay walletInstant
Cameroon · XAF2 collection methods
OM
Orange MoneyInstant
MM
MTN Mobile MoneyInstant
Kenya · KES2 collection methods
MP
M-Pesa STK pushInstant
BK
Bank transferInstant
Ghana · GHS2 collection methods
MM
Mobile moneyInstant
BK
Bank transferInstant
Uganda · UGX2 collection methods
MM
MTN Mobile MoneyInstant
AM
Airtel MoneyInstant
Stablecoin1 collection method
$
USDC / USDTNear-instant
// lifecycle

From charge to settled — every step a webhook.

No polling. Subscribe once and get a signed event the moment a customer pays, through to funds landing in your balance.

1

Created · 0ms

You create a charge. We return an id and the pay instruction.
collection.created

2

Pending · live

The customer is prompted — an STK push or a transfer to a virtual account.
collection.pending

3

Received · ~secs

The payment clears on the local rail. Funds are confirmed in real time.
collection.received

4

Settled · same-day

Swept to USDC / USDT, reconciled, and the final signed webhook fires.
collection.settled

// auto-settle

Collected funds shouldn’t sit trapped.

Most providers leave what you collect stuck in local accounts for days — losing value to FX and waiting on settlement windows. Dutch API is built to sweep every collection into USDC or USDT the same day, so your money is liquid the moment it lands.

  • Same-day sweep to stablecoin, every market
  • No trapped balances, no FX erosion while you wait
  • Reuse it instantly — pay out or hold, same balance
Trapped

Collect into local accounts → wait days for settlement → lose value to FX → reconcile manually per market.

Auto-settled

Customer pays on a local rail → received instantly → swept to USDC/USDT same-day → reconciled automatically, ready to move.

5

African markets

10+

collection methods

T+0target

settlement to stablecoin

99%target

collection success rate

// the collections api

Charges, payment links, webhooks — sandbox-first.

POST/v1/collections

create

Create a charge, settled to stablecoin.

GET/v1/collections/:id

retrieve

Retrieve status and timeline.

GET/v1/collections

list

List and filter collections.

POST/v1/payment_links

payment link

Create a shareable payment link.

POST/v1/refunds

refund

Refund a received collection.

POST/v1/webhooks

subscribe

Subscribe to collection lifecycle events.

Payment links

No integration needed to start — generate a hosted link and share it anywhere.

Signed webhooks

Know the moment a customer pays. Every transition is a verifiable event.

Idempotency keys

Safe retries — a key guarantees a charge is created exactly once.

Granular statuses

created → pending → received → settled, plus failed and refunded.

Sandbox-first

Simulate payments on every method in test mode. Go live with the same payload.

Collect in your customers’ currency.

Take payment in local currency on the rail your customer uses, settle in stablecoin same-day.

  • NGN
  • XAF
  • USD
  • USDC
  • USDT

Start collecting today.

Grab a sandbox key and take your first payment on a real rail — settled to stablecoin same-day.

Get API keys Talk to sales