Pular para o conteúdo principal

O que faz

POST /api/spei/cash-in gera uma CLABE descartável vinculada à sua conta sandbox. Qualquer transferência SPEI recebida nessa CLABE dispara um webhook cash_in para a URL configurada. No sandbox, a confirmação é simulada ~1 segundo após a criação da CLABE (em vez de aguardar uma transferência real). Isso permite testar todo o fluxo de cash-in sem depender de um banco emissor.

Exemplo

curl -X POST https://sandbox.mx.ntxpay.com/api/spei/cash-in \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "amountCentavos": 50000,
    "externalId": "order-001",
    "customerName": "Juan Pérez"
  }'

Response (201)

{
  "id": 12345,
  "externalId": "order-001",
  "status": "PENDING",
  "amountCentavos": 50000,
  "clabe": "646180123456789012",
  "expiresAt": "2026-03-26T10:30:00.000Z"
}
Use o clabe retornado para exibir ao pagador final (cliente da sua empresa). No sandbox, esta CLABE é fictícia mas o objeto transaction.clabe que chega no webhook será o mesmo.

Webhook esperado

Após ~1 segundo (cenário success padrão), você recebe:
{
  "event": "cash_in",
  "deliveryId": "...",
  "transaction": {
    "id": 12345,
    "externalId": "order-001",
    "status": "CONFIRMED",
    "amountCentavos": 50000,
    "clabe": "646180123456789012",
    "confirmedAt": "2026-03-26T10:00:01.000Z",
    "counterpart": {
      "name": "Pagador Simulado",
      "taxId": "PAGS850101ABC",
      "bank": {
        "code": "012",
        "name": "BBVA México"
      }
    }
  }
}

Cenários de teste

CenárioWebhook
DefaultCONFIRMED
error:invalid-clabeFAILED
error:duplicate-external-idFAILED
delayed:5sCONFIRMED após 5s
Veja Cenários para a lista completa.

Próximos passos

Cash-out

Como enviar SPEI no sandbox.

Webhooks

Entendendo a entrega de webhooks no sandbox.