Checklist de integración
Repasa cada punto antes del primer evento. Todo lo que está aquí tiene su detalle en las páginas enlazadas.
Credenciales y configuración
Sección titulada «Credenciales y configuración»- La llave
agk_…está guardada solo en el servidor (gestor de secretos), nunca en clientes ni repositorios. → Autenticación - Tienes el
experienceIdde cada evento y alpadevs confirmó el enlace al proveedor (una petición de prueba no responde403 EXPERIENCE_NOT_LINKED). → Conceptos - Sabes a quién pedir la revocación y una llave nueva, y probaste la rotación.
Inventario (push)
Sección titulada «Inventario (push)»-
externalRefes estable por boleto y único dentro de tu proveedor. → Conceptos -
holderRefes estable (userId/teléfono, no nombre ni email) y se envía en cada fila;holderNameacompaña. → Transferencias -
qrContentse envía tal cual está en el QR (sin pre-procesar). → Normalización - Haces push al bulk al vender y
voidal anular, no solo en syncs periódicos. - En syncs completos incluyes el
statusreal de cada boleto (unvoidsinstatusse reactiva). → Semántica del upsert - Procesas
rejected[]porindexy alertas ante reason codes inesperados. → Reason codes - Haces push al aceptar transferencias (Caso A o B) y nunca envías
voidtras reemitir un QR. → Transferencias - Si usas
maxUses > 1, nunca lo reduces por debajo de lo consumido. → Multi-usos
Webhook
Sección titulada «Webhook»- Tu endpoint es HTTPS público (no
localhost, IP privada ni host interno). → Requisitos de la URL - Verificas la firma sobre el body crudo con
whsec_…, comparación en tiempo constante y tolerancia de 5 min. → Verificación - Deduplicas por
eventIdy respondes2xxa los repetidos. - Respondes
2xxen menos de 10 s (encolas el procesamiento pesado). - Manejas
uses/max_usessi tienes boletos multi-uso (un evento por uso). → Multi-usos - Toleras campos nuevos en
payloady tipos de evento desconocidos.
Resiliencia
Sección titulada «Resiliencia»- Reintentas
429y500con backoff exponencial; no reintentas4xxde configuración. → Errores comunes - Agrupas en bulk (hasta 1000 filas) en lugar de una petición por boleto.
- Haces pull periódico de
GET /v1/partner/redemptionscon cursorsinceguardado, además del webhook. → GET /redemptions - Registras
x-request-idde las respuestas de error.
Opcional
Sección titulada «Opcional»- Publicas un feed
{ "rows": [...] }(≤ 5000 filas,experienceIdpor fila,statusreal) y entregaste a alpadevs la URL y, si aplica, el headerAuthorization. → Feed de reconciliación