VerificacionPago. Se encuentra dentro de str_res_pago en la posición 5.
Tabla consolidada
Estados en detalle
1 — Aprobado ✅
El pago fue exitoso. int_pago_terminado también será 1.
Actualizar pedido a “pagado” en tu base de datos.
Entregar producto o activar servicio.
Enviar email de confirmación (Zonapagos envía el comprobante de pago; tu correo confirma la entrega del producto).
Registrar en logs con el
str_ticketID / str_codigo_transaccion (CUS) para conciliación.888 — Pendiente por iniciar
El usuario aún no ha abierto la str_url del ciclo de pago. No hizo nada todavía.
Es el estado natural tras llamar
/InicioPago y antes de que el usuario haga clic. Si después de 30 minutos sigue en 888, asume que el usuario abandonó.999 — Pendiente por finalizar (PSE / presencial)
La transacción fue iniciada y enviada a la red de pagos, pero aún no llega confirmación definitiva.
Para pagos presenciales (PDF generado, convenios GANA/Efecty) el estado 999 puede durar 1 a 2 días. Tu sonda debe marcar estos pagos para consultar cada hora, no cada 10 minutos.
4001 — Pendiente CR (solo TC)
La franquicia (Visa/MC/AmEx/Diners) retuvo la transacción para revisión manual por riesgo de fraude.
1000 — Rechazado
Rechazo general del banco o franquicia. Razones comunes: fondos insuficientes, tarjeta vencida, bloqueo por seguridad, etc. El API no detalla la razón específica.
Marcar pedido como rechazado.
Permitir reintento con un nuevo
str_id_pago.No reutilizar el
str_id_pago original.1001 — Error ACH/Banco (equivale a rechazado)
Error técnico entre ACH (PSE) y el banco del usuario. Se trata igual que 1000.
4000 — Rechazado CR (solo TC)
La franquicia revisó la transacción retenida en CR y decidió rechazarla.
4003 — Error CR (solo TC)
Error técnico durante el proceso CR. Equivale a rechazo.
Árbol de decisión
Estados obsoletos (no esperes verlos)
Los siguientes códigos existieron en versiones anteriores del API pero fueron eliminados:777— Obsoleto desde v5.0 (mayo 2025).1002— Obsoleto.1003— Obsoleto desde v5.0.1004— Obsoleto desde v5.0.
Estados del pago completo (int_pago_terminado)
Independiente deint_estado_pago, el campo int_pago_terminado indica si el pago (en su conjunto, útil para pagos mixtos) terminó:
Ver también
Implementar sonda
El job que maneja los estados pendientes.
Mensajes de certificación
Textos obligatorios para estados 999 y 4001.