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

Pax Dollar

USDP

Ripple USD

RLUSD

Dollar

USD

Tether

USDT

Pounds

GBP

Euro

EUR