Skip to main content

El callback

Al terminar el ciclo de pago (exitoso, fallido, o abandonado), Zonapagos redirige al usuario mediante HTTP GET a la URL de retorno del comercio. La request incluye dos parámetros en query string:
El callback NO incluye el estado del pago. Solo notifica que “el usuario terminó algo”. Tienes que llamar /VerificacionPago desde tu backend para saber qué pasó.

Implementación

Paso 1: Exponer el endpoint

Tu comercio debe tener un endpoint HTTP público en la URL configurada.

Paso 2: Validar

Paso 3: Verificar estado

Paso 4: Redirigir al usuario a una página amigable

Idempotencia

El usuario puede recargar la página del callback, o Zonapagos puede enviar el callback dos veces (raro pero posible).
Al marcar como aprobado: usa una operación idempotente.
Al enviar email de confirmación: verifica que no hayas enviado antes.

¿Qué pasa si el usuario nunca regresa?

A veces el usuario cierra la pestaña antes del redirect final. Tu backend no va a recibir el callback, pero el pago puede estar aprobado. Por eso existe la sonda: detecta estos casos.

Consideraciones de seguridad

El callback no está firmado. Un atacante que conozca tu URL y un id_pago válido podría disparar un GET falso pretendiendo ser Zonapagos.Mitigación obligatoria:
  • Siempre verifica el estado con /VerificacionPago (como muestra este flujo).
  • Nunca entregues producto basándote solo en la llegada del callback.
  • Rate-limit tu endpoint para evitar abuse.

Ejemplo completo: página de éxito

Próximo paso

Verificar estado →

Detalle de la lógica de verificación.