Pruebas y simulador
El simulador de esta documentación
Cada página de la referencia incluye un playground que emula la API con JavaScript puro en tu navegador — no toca ningún servidor. Replica:
- Las validaciones y mensajes de error exactos de producción (auth, campos requeridos, 404s).
- Las formas de respuesta reales de cada endpoint.
- El estado compartido: lo que haces en una página se ve en las demás mientras no recargues.
Un
initaparece en/payment/pendingy en/status; una tarjeta guardada consave_card: trueaparece enGET /cardsy sirve paracharge-savedy suscripciones.
Reglas del sandbox simulado
| Regla | Efecto |
|---|---|
x-wpay-key vacía | 401 · Se requiere el header x-wpay-key |
x-wpay-key: invalid | 401 · Clave inválida o sistema inactivo |
| Cualquier otra key | Autenticada ✅ |
card.cvv: "999" en /payment/process | RECHAZADO |
| Número de tarjeta que termina en 3 | PENDING_3DS (Step-Up) |
| Cualquier otra tarjeta | APROBADO (frictionless) |
Datos sembrados al cargar: una tarjeta demo (key: C8F0D2A1B3E4F5A6B7C8D9E0,
[email protected]) y una transacción pendiente.
Flujo completo guiado (5 minutos)
POST /payment/init→ copia lareference.POST /payment/auth-setupcon esareference.POST /payment/processconsave_card: true→ copiasaved_card.key.GET /status/:reference→ verásAPROBADO.GET /cards→ tu tarjeta está ahí.POST /payment/charge-savedcon tucard_key.POST /subscriptions/createcon el mismocard_key.
O pruébalo aquí mismo:
Ambiente de pruebas real (sandbox)
En la fase Sandbox tu sistema apunta a https://api-test.wizpay.app con tu API key de
prueba (wtest_…, se genera desde el panel): dinero de mentira, flujo real. Es el primer paso
del Pase a Producción.
El sandbox solo registra transacciones si el switch de Registro está activo en tu panel →
Pase a Producción. Con el switch apagado, la API responde
403 · El registro de transacciones está desactivado.
Tarjetas de prueba (sandbox)
La lista completa y vigente vive en tu panel → Tarjetas de Prueba (sección Fase Sandbox). Las tarjetas registradas se validan como un emisor real:
- El CVV y la fecha de expiración deben coincidir exactamente con la tarjeta de prueba
— si no, el cobro se rechaza (
CVV incorrecto,Fecha de expiración incorrecta). - Una fecha vencida rechaza con
Tarjeta vencida, tenga o no tarjeta registrada. - Las tarjetas con saldo se rechazan por
Saldo insuficientesi el monto lo supera; saldo Ilimitado siempre aprueba. - Las tarjetas con 3-D Secure devuelven
PENDING_3DS: tu integración abre elstep_up_urlcomo popup (igual que en producción) y aparece el banco simulado de WizPay — el código del reto es1234. Al completarlo, la transacción pasa aAPROBADO.
Para el QR de sandbox, el código generado es escaneable de verdad: se paga con la
billetera de prueba (o con POST /qr/simulate-pay/{reference}), y tu integración recibe
la confirmación por el mismo stream de eventos que en producción.
Tarjetas de la fase Implementación
Cuando tu sistema pasa a Implementación, el sandbox queda atrás: pruebas contra
https://api.wizpay.app con credenciales de TEST del procesador y las tarjetas oficiales de
CyberSource (matriz 3-D Secure). Están en tu panel → Tarjetas de Prueba, sección Fase
Implementación, organizadas por escenario: Frictionless (aprueba directo), Attempts
(aprueba con intento) y Step-Up (abre el challenge real del banco).
Nunca uses tarjetas reales en los ambientes de prueba, ni tarjetas de prueba en producción. Cada fase tiene sus propias tarjetas.
Checklist antes de salir a producción
- La
x-wpay-keyde producción vive solo en variables de entorno del backend. -
return_urlapunta a tu dominio real (ofrontend_urlconfigurado en el sistema). - Manejas los 3 resultados de
/payment/process(APROBADO,RECHAZADO,PENDING_3DS). - El popup del Step-Up funciona (probado con una tarjeta enrolada en 3DS).
- Confirmas pagos por webhook o
GET /statusdesde el backend — no solo por la redirección del navegador. - Manejas
429conRetry-After. - Tu receptor de webhooks valida
Authorization: Bearery es idempotente porreference.