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 endata.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
- Lee el body crudo (no lo parsees antes de verificar la firma).
- Verifica
X-Gokeipay-Signature. - Responde
2xxrápido; procesa de forma asíncrona si el trabajo es pesado. - Ramifica según
data.status. Tratadata.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.