Skip to main content
Este es el campo más importante de toda la respuesta de VerificacionPago. Se encuentra dentro de str_res_pago en la posición 5.

Tabla consolidada

EstadoCódigoMedioDescripciónAcción recomendada
Aprobado1TodosPago finalizado exitosamente.Entregar producto. Enviar confirmación al cliente.
Pendiente por iniciar888TodosUsuario no ha abierto aún el ciclo de pago.Esperar. Reenviar link si es necesario.
Pendiente por finalizar999PSE / presencialPSE/banco no ha confirmado.Mostrar mensaje obligatorio al usuario (ver Mensajes de certificación). Consultar desde la sonda.
Pendiente CR4001TCFranquicia retuvo para revisión manual.Mostrar mensaje al usuario. Consultar desde la sonda. Tiempo máximo: 1 día y fracción.
Rechazado1000TodosBanco/franquicia rechazó la transacción.Marcar pedido como rechazado. Permitir reintento con nuevo str_id_pago.
Error ACH/Banco1001PSEError en comunicación ACH-Banco (se trata como rechazado).Igual que 1000.
Rechazado CR4000TCFranquicia rechazó tras revisión.Marcar rechazado.
Error CR4003TCError en el proceso CR (equivale a rechazo).Marcar rechazado.

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.
Requerimiento de certificación PSE: si este estado se mantiene cuando consultas tras el callback, debes mostrar al usuario un mensaje específico. Ver Mensajes de certificación.Mensaje obligatorio:
“En este momento su Número de Referencia o Factura (id_Pago) presenta un proceso de pago cuya transacción se encuentra PENDIENTE de recibir confirmación por parte de su entidad financiera, por favor espere unos minutos y vuelva a consultar más tarde…”
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.
  • Requiere interacción humana de la franquicia.
  • Tiempo máximo: 1 día y fracción.
  • Pasado ese tiempo, la transacción queda automáticamente rechazada.
  • Debes mostrar al usuario el mismo mensaje de pendiente (ver certificación).

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.
Si un viejo sistema tuyo los maneja, puedes removerlos del código.

Estados del pago completo (int_pago_terminado)

Independiente de int_estado_pago, el campo int_pago_terminado indica si el pago (en su conjunto, útil para pagos mixtos) terminó:
ValorSignifica
200Pago iniciado (aún no ha pasado nada)
1Terminado (aprobado o rechazado, pero cerrado)
2Pendiente — el pago es mixto y no se ha completado en su totalidad

Ver también

Implementar sonda

El job que maneja los estados pendientes.

Mensajes de certificación

Textos obligatorios para estados 999 y 4001.