Decaf
Conteúdo

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

POST/payouts

One 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
CampoTipoobrigatórioObservações
recipient_idstringopcional
recipientInlineRecipientopcional
channelstringobrigatório
quote_idstringopcional
source_amountAmountopcionalDecimal string. Up to two decimals for fiat, six for USDC.
destination_amountAmountopcionalDecimal string. Up to two decimals for fiat, six for USDC.
referencestringopcional
memostringopcionalTravels with the payment where the rail supports it.
messagestringopcionalClaim 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

GET/recipients/check

Says before sending whether a person in that country can receive, and by which methods.

Parâmetros

  • typequeryenum: phone, emailobrigatório
  • numberquerystringopcional
  • addressquerystringopcional

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.