Payouts
Send money to an individual: winnings, seller balances, contractor pay.
A payout is not a refund. It goes to someone who may never have paid you, and it is a separate product with its own rails and rules.
Rails
| Method | Goes to | Currencies | Speed | Can bounce |
|---|---|---|---|---|
Card payoutcard_payout |
card | Any | Instant | No |
SEPA Credit Transfersepa_credit_transfer |
bank account | EUR | Next business day | Yes |
SEPA Instantsepa_instant |
bank account | EUR | Seconds | Yes |
Faster Paymentsfaster_payments |
bank account | GBP | Seconds to two hours | Yes |
1. Create a recipient
POST
/v1/payout-recipients
{
"type": "card",
"first_name": "Ana",
"last_name": "Silva",
"date_of_birth": "1990-01-01",
"country": "PT",
"reference": "winner-001",
"parent_payment_reference": "57-9-5091179"
}
We never accept a card number. A card
recipient is created either from a token issued by the provider, or from a
previous payment they made. The bank still holds the card, we hold a
reference. Accepting a raw PAN would put both of us in a far heavier PCI DSS
regime, so the API has no field for one.
For bank rails, send iban and optionally bic
instead. Details are encrypted at rest; only the last four digits are kept
readable.
2. Send the payout
POST
/v1/payouts
{
"recipient_id": "6d4ff39f-72fb-44c4-9e13-9c724683d40a",
"method": "card_payout",
"amount": 2500,
"currency": "EUR",
"reference": "PAYOUT-2026-0001"
}
States
created → submitted → sent → completed
│
├──→ failed (never left)
└──→ returned (left, then came back)
returned is not
failed. Failed means the money never left. Returned
means it reached the recipient's bank and bounced, days later on SEPA, and
your balance moved in between. Handle them differently.GET
/v1/payouts
GET
/v1/payouts/{id}
GET
/v1/payout-methods