Card Payouts API
Off-ramp stablecoins to fiat and push payouts to any Visa or Mastercard globally in real-time via Visa Direct and Mastercard Send.
Create Card Payout
Initiate a stablecoin-to-fiat payout to any Visa or Mastercard. Chain handles the conversion and delivers fiat to the recipient's card in real-time.
POST/v1/card-payouts
| Parameter | Type | Description |
|---|---|---|
amountrequired | number | Payout amount in the destination fiat currency. |
currencyrequired | string | Destination fiat currency (e.g., "USD", "EUR", "GBP"). |
source_stablecoinrequired | string | Stablecoin to convert from (e.g., "USDC", "USDT"). |
card_networkrequired | string | "visa" or "mastercard". |
card_tokenrequired | string | Tokenized card identifier (from card tokenization flow). |
recipient_namerequired | string | Full name of the cardholder. |
recipient_country | string | ISO 3166-1 alpha-2 country code of the recipient. |
reference | string | Your internal reference ID for this payout. |
metadata | object | Custom key-value metadata to attach to the payout. |
Scope required
This endpoint requires the
card_payouts:write scope and a verified business.Example request
curl -X POST https://api.chain.com/v1/card-payouts \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"amount": 250.00,
"currency": "USD",
"source_stablecoin": "USDC",
"card_network": "visa",
"card_token": "tok_card_abc123",
"recipient_name": "Jane Doe",
"recipient_country": "US",
"reference": "payout_inv_456"
}'Response
{
"id": "cpay_xyz789",
"amount": 250.00,
"currency": "USD",
"source_stablecoin": "USDC",
"stablecoin_amount": 250.12,
"fx_rate": 1.00048,
"card_network": "visa",
"card_last_four": "4242",
"recipient_name": "Jane Doe",
"status": "processing",
"reference": "payout_inv_456",
"created_at": "2026-02-12T14:30:00Z",
"estimated_arrival": "2026-02-12T14:30:05Z"
}Get Payout Quote
Get a real-time quote for a card payout before initiating. Includes FX rate, fees, and the exact stablecoin amount that will be debited.
POST/v1/card-payouts/quote
| Parameter | Type | Description |
|---|---|---|
amountrequired | number | Payout amount in the destination fiat currency. |
currencyrequired | string | Destination fiat currency. |
source_stablecoinrequired | string | Stablecoin to convert from. |
card_networkrequired | string | "visa" or "mastercard". |
Response
{
"amount": 250.00,
"currency": "USD",
"source_stablecoin": "USDC",
"stablecoin_amount": 250.12,
"fx_rate": 1.00048,
"fee": 0.50,
"total_debit": 250.62,
"expires_at": "2026-02-12T14:31:00Z"
}List Card Payouts
Retrieve all card payouts for your business with optional filtering by status or date range.
GET/v1/card-payouts
| Parameter | Type | Description |
|---|---|---|
limit | number | Results per page (default 20, max 100). |
starting_after | string | Cursor for pagination — payout ID to start after. |
status | string | Filter by status: "pending", "processing", "completed", "failed". |
Response
{
"data": [
{
"id": "cpay_xyz789",
"amount": 250.00,
"currency": "USD",
"source_stablecoin": "USDC",
"card_network": "visa",
"card_last_four": "4242",
"recipient_name": "Jane Doe",
"status": "completed",
"created_at": "2026-02-12T14:30:00Z"
}
],
"has_more": false,
"next_cursor": null
}Retrieve Card Payout
Retrieve details of a specific card payout by its ID.
GET/v1/card-payouts/:id
Response
{
"id": "cpay_xyz789",
"amount": 250.00,
"currency": "USD",
"source_stablecoin": "USDC",
"stablecoin_amount": 250.12,
"fx_rate": 1.00048,
"fee": 0.50,
"card_network": "visa",
"card_last_four": "4242",
"recipient_name": "Jane Doe",
"recipient_country": "US",
"status": "completed",
"reference": "payout_inv_456",
"created_at": "2026-02-12T14:30:00Z",
"completed_at": "2026-02-12T14:30:04Z"
}Payout Webhooks
Receive real-time webhook notifications as card payouts progress through each stage.
Payout completed webhook
{
"type": "card_payout.completed",
"data": {
"id": "cpay_xyz789",
"amount": 250.00,
"currency": "USD",
"card_network": "visa",
"card_last_four": "4242",
"status": "completed",
"completed_at": "2026-02-12T14:30:04Z"
}
}Payout failed webhook
{
"type": "card_payout.failed",
"data": {
"id": "cpay_abc123",
"amount": 100.00,
"currency": "EUR",
"card_network": "mastercard",
"status": "failed",
"failure_reason": "card_not_eligible",
"failed_at": "2026-02-12T15:00:02Z"
}
}Payout Statuses
| Status | Description |
|---|---|
pending | Payout created and awaiting processing. |
processing | Stablecoin conversion in progress, fiat being pushed to card network. |
completed | Fiat successfully delivered to the recipient's card. |
failed | Payout failed — check failure_reason for details. |
Supported Networks & Stablecoins
| Type | Supported |
|---|---|
| Card Networks | Visa (via Visa Direct), Mastercard (via Mastercard Send) |
| Stablecoins | USDC, USDT, DAI, PYUSD, EURC, TUSD, BUSD |
| Fiat Currencies | USD, EUR, GBP, and 9+ additional currencies |
| Countries | 200+ countries and territories |
