Webhooks

Webhooks

Cómo Skip te entrega eventos firmados sobre el ciclo de vida de una orden.

Skip envía un POST firmado a la URL que registres durante el onboarding (webhook_notification_url) cada vez que se crea o cambia de estado una orden AAPD.

POST {tu webhook_notification_url}
Content-Type: application/json
X-Gokeipay-Signature: sha256={hex}

Contrato de entrega

  • Evento. Hoy Skip emite un único evento: order.changed. Se dispara al crear la orden y en cada cambio de estado. El resultado (pagada, reembolsada, etc.) lo lees en data.status, no en el nombre del evento. Payloads y estados en Catálogo de eventos.
  • Firma. Cada POST viene firmado con HMAC-SHA256 sobre el body crudo. Verifícala antes de confiar en el payload — ver Verificación de firma.
  • Reintentos. Si tu endpoint no responde 2xx, Skip reintenta con backoff — ver Política de retries.
  • Idempotencia. El mismo estado de una orden puede llegar más de una vez. Deduplica por la tupla (data.hash, data.status, data.updated_at).

Qué hace tu endpoint

  1. Lee el body crudo (no lo parsees antes de verificar la firma).
  2. Verifica X-Gokeipay-Signature.
  3. Responde 2xx rápido; procesa de forma asíncrona si el trabajo es pesado.
  4. Ramifica según data.status. Trata data.status == "paid" como la confirmación autoritativa del pago (el postMessage del widget es solo señal de UI).

Para una implementación completa en 5 lenguajes, ver Recetas → Verificar un webhook.

On this page