Ir al contenido

Entorno de pruebas

Una clave sk_test_… opera en modo test: no mueve dinero real. El contrato es idéntico al de producción —mismas rutas, campos, errores y firma de webhook—.

Ventana de terminal
curl -s $BASE/v1/tenant/me -H "x-api-key: $KEY"
# { "mode": "test", ... }

El entorno acepta dos beneficiarios, en dos bancos distintos, uno por cada instrumento:

Beneficiario 1 Beneficiario 2
Banco Banco de Venezuela · 0102 Banco Provincial · BBVA · 0108
Instrumento Pago móvil Transferencia
Cédula te la damos al darte de alta ídem
Teléfono / cuenta ídem ídem

Se usan en el flujo paso a paso: esa traza dispersa al primero por pago móvil y al segundo por transferencia. Los valores que ves ahí están sustituidos por los mismos motivos.

Estos datos llegan sin titular, y beneficiary.fullName no acepta un relleno. Un marcador de posición acaba en { "status": "failed", "reason": "beneficiary_rejected" }, y el banco lo dice así:

beneficiaryName must be the real first and last name of the account holder (no nicknames, initials or bank names)

Pon un nombre y un apellido que parezcan reales. "Maria Rodriguez" pasa.

Ventana de terminal
curl -s -X POST $BASE/sandbox/chaos -H 'content-type: application/json' \
-d '{"mode":"timeout_after_submit","method":"pago_movil"}'
mode Qué simula Qué deberías ver
reject El riel rechaza sin mover dinero Sale por otro canal o riel, o status: "failed" con reason
timeout No responde antes de ejecutar status: "unknown", sin compensar
timeout_after_submit Paga y se corta la respuesta status: "unknown", sin compensar. El caso peligroso
slow Añade latencia Todo igual, pero lento
off Normalidad

method es opcional: sin él, el escenario se aplica a los dos instrumentos. Con él reproduces «pago móvil caído, transferencia operativa» y ves el cambio de canal (methodChanged: true).

Ventana de terminal
curl -s $BASE/sandbox/chaos # escenario activo
curl -s -X POST $BASE/sandbox/chaos/reset

Todas con content-type: application/json:

POST Cuerpo Qué simula
/sandbox/bank/payout-settled {"paymentId":"89920401-…"} El riel confirma tarde una dispersión en duda
/sandbox/bank/payout-returned {"paymentId":"89920401-…"} El banco devuelve, días después, una dispersión liquidada
/sandbox/bank/prefunding-wire {"amount":100000000,"asset":"BS"} Llega tu transferencia de fondeo
Endpoint Para qué
GET /sandbox/webhooks Sink: lo que te hemos enviado, con firma y cabeceras
POST /sandbox/webhooks/failing Receptor que siempre devuelve 500
GET /sandbox/outbox La cola con intentos y estado
GET /sandbox/rails Estado, canales y métricas de los rieles

Combínalo con la cola de fallidos real, GET /v1/events?status=dead y POST /v1/events/retry-dead. Ver webhooks.

/demo/consola ejecuta los escenarios de punta a punta con respuestas reales de la API: pago normal, canal caído, pago en duda, rechazo total, circuito abierto y control de permisos.