Sign up
// 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 access 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 and webhooks.

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.

Live from day one

There is no sandbox. Every endpoint is live, so test with small amounts using the same payload you will use in production.

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
// Collections

Deposit and collection pricing

A fixed or percentage fee by country and method. Nigeria bank transfers are free.

Rates

Where a country has more than one tier, each amount range is its own row.

Country and methodAmountDutch API fee
Cameroon (XAF), MTN and Orange Mobile MoneyAny amount2% of the amount
Uganda (UGX), mobile money (minimum $5)From $5 to under 20,000 XAFunder about $31.25350 XAF fixed$0.55UGX 2,310
Uganda (UGX), mobile money (minimum $5)20,000 XAF and aboveabout $31.25 and over2% of the amount
Uganda (UGX), bank (minimum 20,000 XAF)From 20,000 XAF up to 100,000 XAFup to about $156.251,500 XAF fixed$2.34UGX 9,901
Uganda (UGX), bank (minimum 20,000 XAF)Above 100,000 XAFover about $156.252% of the amount
Ghana (GHS), mobile moneyAny amount3.25% of the amount
Kenya (KES), mobile moneyAny amount1.35% of the amount
Zambia (ZMW), mobile moneyAny amount2.5% of the amount
XOF markets (XOF), mobile moneyAny amount2.5% of the amount
Rwanda (RWF), mobile moneyAny amount3.55% of the amount
Nigeria (NGN), bank transferAny amountFree

Cameroon: MTN and Orange

Amounts in XAF, with the USD equivalent.

Customer paysDutch feeTier applied
XAF 1,000$1.56XAF 20$0.03Any amount: 2% of the amount
XAF 5,000$7.81XAF 100$0.16Any amount: 2% of the amount
XAF 10,000$15.63XAF 200$0.31Any amount: 2% of the amount

Example with your markup

Customer pays 10,000 XAF with MTN or Orange. You add a 1% markup of your own.

Dutch feeYour markup (yours)Fee your customer sees
$0.31XAF 200$0.16XAF 100$0.47XAF 300

Uganda: mobile money deposits

Set in XAF and shown in USD, UGX and XAF.

Customer paysDutch feeTier applied
$5.00UGX 21,122XAF 3,200$0.55UGX 2,310XAF 350From $5 to under 20,000 XAF: 350 XAF fixed
$20.00UGX 84,488XAF 12,800$0.55UGX 2,310XAF 350From $5 to under 20,000 XAF: 350 XAF fixed
$50.00UGX 211,221XAF 32,000$1.00UGX 4,224XAF 64020,000 XAF and above: 2% of the amount
$100.00UGX 422,442XAF 64,000$2.00UGX 8,449XAF 1,28020,000 XAF and above: 2% of the amount
$250.00UGX 1,056,106XAF 160,000$5.00UGX 21,122XAF 3,20020,000 XAF and above: 2% of the amount

Uganda: bank deposits

Customer paysDutch feeTier applied
$31.25UGX 132,013XAF 20,000$2.34UGX 9,901XAF 1,500From 20,000 XAF up to 100,000 XAF: 1,500 XAF fixed
$78.13UGX 330,033XAF 50,000$2.34UGX 9,901XAF 1,500From 20,000 XAF up to 100,000 XAF: 1,500 XAF fixed
$156.25UGX 660,066XAF 100,000$2.34UGX 9,901XAF 1,500From 20,000 XAF up to 100,000 XAF: 1,500 XAF fixed
$250.00UGX 1,056,106XAF 160,000$5.00UGX 21,122XAF 3,200Above 100,000 XAF: 2% of the amount
$500.00UGX 2,112,211XAF 320,000$10.00UGX 42,244XAF 6,400Above 100,000 XAF: 2% of the amount

Example with your markup

A $100 mobile money deposit in Uganda (XAF 64,000). You add a 0.5% markup of your own.

Dutch feeYour markup (yours)Fee your customer sees
$2.00UGX 8,449$0.50UGX 2,112$2.50UGX 10,561

Other markets

Dutch fee on a collection worth $10, $50 or $100, with the local-currency amount underneath.

Market and rateCollect $10Collect $50Collect $100
Ghana, 3.25%$0.33GHS 4.16$1.63GHS 20.81$3.25GHS 41.62
Kenya, 1.35%$0.14KES 18.71$0.68KES 93.53$1.35KES 187.05
Zambia, 2.5%$0.25ZMW 5.28$1.25ZMW 26.39$2.50ZMW 52.79
XOF markets, 2.5%$0.25XOF 161$1.25XOF 807$2.50XOF 1,613
Rwanda, 3.55%$0.36RWF 556$1.78RWF 2,778$3.55RWF 5,556
Nigeria bank transfer, free$0.00NGN 0$0.00NGN 0$0.00NGN 0

Local-currency and XAF amounts are indicative, at US$1 = 640 XAF and the exchange rates listed on the pricing page. The live rate is returned in your quotation before you confirm.

Your markup is yours. You can add your own margin on top of any Dutch API rate on this page. Whatever you add is your profit. Dutch adds no fees on top of the rates listed here.

Higher volumes, lower fees. Processing more? Negotiate lower fee tiers with Dutch. Talk to sales.

Start collecting today.

Request access and take your first payment on a real rail — settled to stablecoin same-day.

Get API access Talk to sales