Skip to main content

Visão Geral

O cash-out SPEI envia uma transferência interbancária para uma CLABE de destino. O saldo da conta é debitado e a NTX Pay processa a transferência na rede SPEI. A confirmação chega no webhook cash_out com o evento transaction.cash_out.settled.

Endpoint

POST /api/spei/cash-out

Headers

Request

Response (201)

O transactionId (UUID) é o identificador único da transação — é o mesmo valor entregue nos webhooks; use-o para correlacionar eventos e consultar a transação.

Campos do Response

string
obrigatório
Identificador único da transação (UUID). Mesmo valor entregue nos webhooks.
string
obrigatório
Status da transação: PENDING, CONFIRMED, FAILED ou EXPIRED.
string
obrigatório
CLABE de destino que o pagador deve usar na transferência SPEI.
string
Referência numérica SPEI, quando disponível.
integer
obrigatório
Valor em centavos MXN.
string
Criação da transação (ISO 8601).

Campos do Request

integer
obrigatório
Valor em centavos MXN (mínimo 1). Ex.: 50000 = $500,00 MXN.
string
Identificador externo único (até 100 caracteres). Reenvios com o mesmo externalId retornam a transferência existente (idempotência server-side).
string
obrigatório
CLABE de destino — exatamente 18 dígitos numéricos (regex: ^\d{18}$).
string
obrigatório
Nome do beneficiário (3–255 caracteres).
string
RFC/CURP do beneficiário (10–20 caracteres). Recomendado para reconciliação.
string
Conceito exibido no extrato do beneficiário (até 40 caracteres — limite do concepto SPEI).

Validação de Saldo

Antes de enviar, valide o saldo:
Saldo insuficiente retorna 400 — a transação não é criada. Aplique idempotência no lado do cliente (não reprocesse o mesmo pedido após um 400 sem revalidar o saldo).

Estados

No webhook, os desfechos chegam como transaction.cash_out.settled (LIQUIDATED) e transaction.cash_out.rejected (REJECTED) — veja o payload completo. Devolução após a liquidação: se o banco da contraparte devolver a transferência, o saldo é creditado de volta e você recebe transaction.cash_out.returned no webhook refund_out.

Códigos de Erro

Exemplo em Node.js com Retry

Testar no Sandbox

No sandbox, o pipeline completo roda — saldo debitado, tarifa cobrada, extrato gerado — e a liquidação é simulada em segundos. Sua conta precisa de saldo: faça um cash-in antes. Force rejeição, devolução e falhas síncronas com o header X-Sandbox-Scenario — veja o catálogo de cenários.

Próximos Passos

Webhook cash_out

Payload do webhook de liquidação

Webhook refund_out

Como chegam as devoluções de cash-out