Sending money is its own module, on the same architecture.
Payouts are not payments in reverse. They have their own object, their own lifecycle and their own routing rules — but they run through the same provider adapters, the same idempotency guarantees and the same timeline and reconciliation as everything else on the platform.
Amount, currency, and a tokenised destination.
Destinations are references, not account details. NATIO accepts a provider beneficiary token and a masked display value; requests carrying long digit sequences in the display field are rejected.
Three destination types
No raw account numbers
Idempotency
Cancel while pending
curl -X POST https://api.natio.me/v1/payouts \
-H "Authorization: Bearer natio_sk_test_..." \
-H "Idempotency-Key: payout-2026-09-001" \
-H "Content-Type: application/json" \
-d '{
"amount": 250000,
"currency": "EUR",
"destination": {
"type": "bank_account",
"token": "benef_tok_8f3a",
"display": "IBAN ****4321",
"holder_name": "Acme GmbH",
"country": "DE"
},
"reference": "PAYOUT-2026-09-001"
}'{
"id": "po_4Bt8xC2nQ7hK",
"object": "payout",
"mode": "test",
"status": "processing",
"amount": 250000,
"currency": "EUR",
"destination": {
"type": "bank_account",
"display": "IBAN ****4321",
"holder_name": "Acme GmbH",
"country": "DE"
},
"route": {
"provider_name": "NATIO Demo Bank",
"provider_account_name": "Demo Bank · EUR",
"rule": "EUR payouts → Demo Bank"
},
"failure": null,
"created_at": "2026-09-22T09:14:02.118Z"
}Six states, one direction.
As with payments, transitions are validated and guarded; a provider notification that arrives twice cannot move a payout backwards.
| Status | Meaning |
|---|---|
| created | Accepted and persisted. Routing has not produced a provider attempt yet. |
| pending | Waiting: a payout window, a provider queue or an internal approval. Cancellable. |
| processing | Submitted to the selected provider; the provider has not confirmed the credit. |
| successful | The provider confirmed the payout. Terminal. |
| failed | Rejected by the provider or no eligible provider remained. Carries a failure object. Terminal. |
| cancelled | Cancelled by the merchant while created or pending. Terminal. |
Events: payout.created, payout.successful, payout.failed — delivered to your endpoints with the same signature scheme as payment events.
Payout routing is separate from payment routing.
Rules carry a transaction type. A rule written for payouts never affects a payment, and the provider that acquires your card traffic is rarely the one you use to pay beneficiaries.
- Same conditions
- Country, currency, merchant, project, amount, transaction type, risk score, hour of day and day of week, with the same operators as payment rules.
- Same strategies
- Ordered, weighted or score-based selection among the eligible provider accounts.
- Eligibility
- A provider account is a candidate only if it supports payouts, the currency and the destination country, and the amount is inside its configured limits.
- Failover
- Technical errors and provider unavailability cascade to the next eligible provider. As with payments, a timeout is verified with the provider before anything is retried.
- 01IF transaction_type = payout AND currency = EUR → Provider A
- 02IF currency = EUR AND amount > X → Provider B
- 03IF Provider A unavailable → Provider C
The same records, on the sending side.
Payouts appear in the transaction monitor, in reconciliation and in settlement reporting alongside incoming volume, so finance sees one picture rather than two.
Timeline
Transactions
Fees
No custody
Try payouts in the sandbox.
Demo providers reproduce success, hard decline, technical error, provider unavailable and timeout so you can build the failure paths before you go live.