Payouts
Pay out to 130+ countries, priced before the money moves
Bank rails like SEPA and NIBSS, instant systems like Pix, mobile money like M-Pesa, and SWIFT for everywhere beyond: more than 20 local corridors are live across LatAm and Africa today. Every payout is one transfer object with an append-only timeline and a signed webhook for every state change.
Four calls from bank form to delivered funds
Register the destination
Fetch the corridor's form schema from GET /v1/corridors/{currency}/beneficiary_schema, render it, and submit the fields to POST /v1/customers/{id}/beneficiaries. The registry entry that served the schema also validates the values, so the form and the validation can never disagree.
Lock the price
POST /v1/quotes returns a mid-market rate, itemized fees and an exact net_receivable: what the quote says is what the beneficiary receives. Quotes expire after 60 seconds, and amounts under the live corridor minimum reject up front with both floors attached.
Execute the transfer
POST /v1/transfers requires an Idempotency-Key header, so a retried request returns the original result and a network failure can never double-pay. The quote's rate and fees are frozen onto the transfer at creation; settlement never rewrites them.
Track it to delivery
transfer.processing and transfer.completed arrive as signed webhooks, and the append-only timeline records each step with timestamps. A failed payout carries a machine-readable failure_reason and funds return to source.
FAQ
Payouts reach 130+ countries. More than 20 local corridors are live across LatAm and Africa, spanning bank rails such as SEPA, NIBSS and SPEI, instant systems such as Pix, mobile money such as M-Pesa, and wallet payouts; SWIFT extends coverage beyond the local rails. Live availability, minimums and arrival estimates come from GET /v1/corridors, which needs no API key.
Deterministically, before any money moves. A quote composes one formula: the net receivable equals the source amount minus itemized fees, converted at a mid-market rate with no embedded spread. The platform adds no fee by default; pricing exists only as defined in your commercial agreement and always appears as its own itemized line, never inside the rate.
The transfer ends in failed or returned, carries a machine-readable failure_reason, and funds return to source. Every transition is delivered as a signed, retried webhook and kept in a queryable 90-day event log, so no state change can be missed.
No. Every transfer creation requires an Idempotency-Key header. Replaying the same key returns the original result, and the same key with a different payload is rejected with 409 idempotency_key_reused. This holds across network failures and rate-limit retries.
Very little by design. Customers pass hosted KYC before they can transact, sanctions and wallet screening are fail-closed, and where a corridor requires a purpose of transfer or a relationship to the recipient, the beneficiary schema serves those as required select fields with the accepted values. You never store a document; regulated services are performed by licensed partners.
More of the platform