Changelog
1.1 — 2026-09-01 · Rename a Gate (alpadevs)
Sección titulada «1.1 — 2026-09-01 · Rename a Gate (alpadevs)»El producto pasa a llamarse Gate, de alpadevs. Cambia el naming; la API, el modelo y la firma del webhook son los mismos.
Nuevo dominio
- API de partners:
https://gate-partners.alpadevs.com(antes un Worker en*.workers.dev). - Este portal:
https://gate-docs.alpadevs.com.
Nuevos prefijos y headers
- API keys con prefijo
agk_(antesh4fk_). Formato y longitud iguales:agk_+ 48 hex. - Headers del webhook
x-alpadevs-event-id,x-alpadevs-timestampyx-alpadevs-signature(antesx-h4f-*). El cálculo de la firma y el secretowhsec_…no cambian.
Qué sigue funcionando, y hasta cuándo (2026-12-01)
- Las llaves
h4fk_emitidas antes del rename siguen aceptándose hasta el 2026-12-01; después responden401 KEY_INVALID. Rota a unaagk_antes. → Autenticación - Hasta el 2026-12-01 el webhook incluye también los headers
x-h4f-*con los mismos valores que losx-alpadevs-*. → Webhooks - La URL anterior de la API responde como alias del nuevo dominio hasta el 2026-12-01. → Datos de conexión
Redirecciones
- El portal anterior (
h4f-partner-docs.pages.dev) y suopenapi.yamlredirigen agate-docs.alpadevs.comy a/openapi.yaml.
v1 — 2026-09-01
Sección titulada «v1 — 2026-09-01»Primera versión pública de la API de partners del Espejo de Boletos Externos.
Endpoints
POST /v1/partner/tickets/bulk— upsert idempotente porexternalRef, hasta 1000 filas, con contadoresinserted/updated/reissued/rejected.POST /v1/partner/tickets/void— anulación idempotente porexternalRef(voided/already_void;409 REDEEMED_CONFLICTsi ya entró).GET /v1/partner/tickets/{ref}— estado actual del boleto.GET /v1/partner/redemptions— pull paginado por cursorsince(limit1..500).GET /status— health check sin autenticación.
Webhook
- Evento
ticket.redeemedfirmado con HMAC-SHA256 (headersevent-id/timestamp/signature; desde 1.1 con prefijox-alpadevs-), un evento por uso, entrega al menos una vez, backoff 2ⁿ min (tope 60), dead-letter a los 10 intentos.
Modelo
- Titular (
holderRef/holderName) y transferencias con o sin reemisión de QR (reissued; rechazosQR_TAKEN,EXPERIENCE_MISMATCH). - Multi-usos (
maxUses1..1000,USES_CONFLICT) y sello al primer titular (HOLDER_MISMATCH). - Feed de reconciliación opcional (
{ "rows": [...] }, ≤ 5000 filas, 5 min – 24 h). - Toda URL saliente (webhook y feed) debe ser HTTPS y apuntar a un host público.
Documentación
- Publicación de este portal y de la especificación
openapi.yaml.