Skip to content

Flujo de pago

Tu servidor ──POST /checkout-sessions──▶ GC API ──devuelve checkout_url──▶

Cliente ──visita checkout_url──▶ Página de pago de GC

  ├── Selecciona método de pago
  ├── Ingresa datos de tarjeta
  ├── Autenticación 3DS (si aplica)

  ├── Éxito ──redirige──▶ success_url
  └── Falla ──redirige──▶ failure_url

Tu servidor ──GET /checkout-sessions/{id}──▶ Verifica estado (servidor a servidor)

GC ──POST webhook──▶ Tu endpoint webhook (confirmación autoritativa)

Las dos fuentes de verdad

Un pago tiene dos confirmaciones sobre las que puedes actuar:

  1. Redirección del cliente a success_url o failure_url. Útil para UX (mostrar "Gracias por tu pedido"), pero no autoritativa — el cliente puede cerrar el navegador antes de la redirección, la red puede fallar, y la URL no contiene datos de pago.
  2. Entrega del webhook a tu endpoint registrado. Autoritativa — se dispara cuando el gateway confirma. Reintentos con backoff en caso de fallo.

Qué hacer tras la redirección

http
GET /api/v1/checkout-sessions/{id}

Úsalo en el handler de redirección para renderizar la página de recibo o mostrar un intersticial "estamos confirmando tu pago". El estado de la sesión será completed si el pago se capturó.

Qué hacer en el webhook

Trata el webhook como la fuente de verdad para el cumplimiento, lógica de reembolsos y contabilidad. Aunque el cliente nunca vuelva a tu success_url, el webhook se disparará igualmente.

TIP

Haz que tu lógica de cumplimiento sea idempotente sobre transaction_id. El webhook puede reintentarse — tu código no debe cumplir dos veces.

Siguiente

Released under the proprietary Genius Checkout license.