Saltar al contenido principal

Qué hace

POST /api/spei/cash-in genera una CLABE desechable vinculada a tu cuenta sandbox. Cualquier transferencia SPEI recibida en esa CLABE dispara un webhook cash_in a la URL configurada. En sandbox, la confirmación es simulada ~1 segundo después de crear la CLABE (en lugar de esperar una transferencia real). Esto permite probar todo el flujo de cash-in sin depender de un banco emisor real.

Ejemplo

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"
}
Usa la clabe devuelta para mostrarla al pagador final (cliente de tu empresa). En sandbox, esta CLABE es ficticia pero el campo transaction.clabe que llega en el webhook será el mismo.

Webhook esperado

Tras ~1 segundo (escenario success default), recibes:
{
  "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"
      }
    }
  }
}

Escenarios de prueba

EscenarioWebhook
DefaultCONFIRMED
error:invalid-clabeFAILED
error:duplicate-external-idFAILED
delayed:5sCONFIRMED tras 5s
Mira Escenarios para la lista completa.

Próximos pasos

Cash-out

Cómo enviar SPEI en sandbox.

Webhooks

Entendiendo la entrega de webhooks en sandbox.