Referência da API/Links de resgate: pague um telefone ou e-mail
Links de resgate: pague um telefone ou e-mail
Envie para alguém sem conta bancária, sem carteira e sem conta Decaf. Os fundos ficam retidos até o destinatário abrir o link, verificar o número e escolher como receber entre os métodos que funcionam no seu país. O pagamento vai de awaiting_claim a claimed a succeeded; links não resgatados voltam ao seu saldo. A verificação de recebibilidade diz, antes de enviar, se uma pessoa naquele país pode ser paga.
Create a payout
/payoutsOne transfer to one recipient on one channel. Pass a saved recipient_id or an inline recipient. Either source_amount or destination_amount. quote_id is optional; without it the payout is priced at execution.
Parâmetros
Idempotency-Keyheaderstringopcional
| Campo | Tipo | obrigatório | Observações |
|---|---|---|---|
| recipient_id | string | opcional | |
| recipient | InlineRecipient | opcional | |
| channel | string | obrigatório | |
| quote_id | string | opcional | |
| source_amount | Amount | opcional | Decimal string. Up to two decimals for fiat, six for USDC. |
| destination_amount | Amount | opcional | Decimal string. Up to two decimals for fiat, six for USDC. |
| reference | string | opcional | |
| memo | string | opcional | Travels with the payment where the rail supports it. |
| message | string | opcional | Claim links only. Shown to the recipient. |
Requisição
{
"recipient_id": "rcp_9d1a",
"channel": "spei_mxn",
"quote_id": "qt_5m2n",
"source_amount": "1000.00",
"reference": "INV-2026-0912",
"memo": "Freight, week 37"
}Resposta 201
{
"id": "po_1b7e",
"status": "submitted",
"channel": "spei_mxn",
"recipient_id": "rcp_9d1a",
"source_amount": "1000.00",
"source_currency": "USDC",
"destination_amount": "16865.35",
"destination_currency": "MXN",
"rate": "16.86535",
"fees": {
"provider": "0.50",
"decaf": "5.00",
"total": "5.50",
"currency": "USDC"
},
"reference": "INV-2026-0912",
"estimated_arrival": "2026-09-16T15:20:00Z",
"provider_reference": null,
"attempts": 1,
"created_at": "2026-09-16T15:01:12Z"
}Erros: 400 validation_error, channel_unavailable, amount_out_of_range; 402 insufficient_balance; 409 idempotency_conflict; 410 quote_expired
Exemplos: Create a payout
curl -X POST https://sandbox.api.decaf.so/v1/payouts \
-H "Authorization: Bearer $DECAF_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"recipient_id":"rcp_9d1a","channel":"spei_mxn","quote_id":"qt_5m2n","source_amount":"1000.00","reference":"INV-2026-0912","memo":"Freight, week 37"}'Check whether a phone or email can receive
/recipients/checkSays before sending whether a person in that country can receive, and by which methods.
Parâmetros
typequeryenum: phone, emailobrigatórionumberquerystringopcionaladdressquerystringopcional
Resposta 200
{
"receivable": true,
"country": "MX",
"methods": [
"spei_bank",
"decaf_wallet"
],
"kyc_required_for": [
"spei_bank"
]
}Obtenha acesso
Construa contra o sandbox esta semana.
Conte-nos os corredores de que precisa e quem você paga. As chaves de sandbox são emitidas por uma pessoa.