Errores
La API usa códigos HTTP estándar. Los errores llegan con esta forma:
{
"message": "name, amount e id_currency son requeridos",
"error": "Bad Request",
"statusCode": 400
}Códigos HTTP
| Código | Significado |
|---|---|
200 / 201 | OK. Ojo: GET /status/:reference devuelve 200 con {"status":"NOT_FOUND"} si no existe. |
400 | Petición inválida: faltan campos, regla de negocio violada, o error del gateway. |
401 | Autenticación: falta la key o el sistema está inactivo/suspendido. |
404 | Recurso no encontrado (transacción, tarjeta, suscripción). |
429 | Rate limit excedido — espera Retry-After segundos. |
500 | Error interno — reintenta con backoff; si persiste, contáctanos. |
Mensajes por endpoint
Autenticación (todos los endpoints con key)
| HTTP | Mensaje |
|---|---|
401 | Se requiere el header x-wpay-key |
401 | Clave inválida o sistema inactivo |
429 | Rate limit excedido (+ campo retryAfter y header Retry-After) |
/payment/init
| HTTP | Mensaje |
|---|---|
400 | name, amount e id_currency son requeridos |
/payment/auth-setup
| HTTP | Mensaje |
|---|---|
400 | reference y card son requeridos |
404 | Transacción no encontrada |
400 | Error en authentication setup (o mensaje del gateway) |
/payment/process
| HTTP | Mensaje |
|---|---|
400 | reference, card, billing y personal son requeridos |
404 | Transacción no encontrada |
400 | Tarjeta bloqueada por política antifraude |
400 | Error en autenticación 3DS |
400 | Error al procesar el pago |
/payment/charge-saved
| HTTP | Mensaje |
|---|---|
400 | card_key y amount son requeridos |
404 | Tarjeta no encontrada |
400 | La tarjeta no tiene token de cobro |
400 | Tarjeta bloqueada por política antifraude |
400 | Error al procesar el cobro |
/payment/pending/:reference (DELETE)
| HTTP | Mensaje |
|---|---|
404 | Transacción no encontrada |
400 | No se puede eliminar una transacción en estado {ESTADO} |
/payment/refund
| HTTP | Mensaje |
|---|---|
400 | id_transaction, amount y reason son requeridos |
404 | Transacción no encontrada |
400 | Solo se pueden reembolsar transacciones aprobadas |
400 | La transacción no tiene ID de CyberSource |
400 | El monto de reembolso debe ser entre 0.01 y {monto} |
400 | El monto excede el disponible para reembolso (ya reembolsado: {suma}) |
400 | Error al procesar el reembolso en CyberSource |
/qr/generate
| HTTP | Mensaje |
|---|---|
400 | amount es requerido |
400 | Mensaje del gateway QR |
/cards/:key (PUT)
| HTTP | Mensaje |
|---|---|
404 | Tarjeta no encontrada |
Suscripciones
| HTTP | Mensaje |
|---|---|
400 | card_key, plan_name y amount son requeridos |
404 | Tarjeta no encontrada |
400 | La tarjeta no tiene token de cobro |
400 | reference es requerido |
404 | Suscripción no encontrada |
Recomendaciones de manejo
400del gateway: muéstrale al cliente un mensaje genérico ("No pudimos procesar tu pago, intenta con otra tarjeta") — elmessagetécnico es para tus logs.429: backoff usandoRetry-After.- Timeout de red en
/payment/process: ¡no reintentes a ciegas! ConsultaGET /status/:referencepara saber si el cobro llegó a ejecutarse.