Ir al contenido

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_ (antes h4fk_). Formato y longitud iguales: agk_ + 48 hex.
  • Headers del webhook x-alpadevs-event-id, x-alpadevs-timestamp y x-alpadevs-signature (antes x-h4f-*). El cálculo de la firma y el secreto whsec_… 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 responden 401 KEY_INVALID. Rota a una agk_ antes. → Autenticación
  • Hasta el 2026-12-01 el webhook incluye también los headers x-h4f-* con los mismos valores que los x-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 su openapi.yaml redirigen a gate-docs.alpadevs.com y a /openapi.yaml.

Primera versión pública de la API de partners del Espejo de Boletos Externos.

Endpoints

  • POST /v1/partner/tickets/bulk — upsert idempotente por externalRef, hasta 1000 filas, con contadores inserted / updated / reissued / rejected.
  • POST /v1/partner/tickets/void — anulación idempotente por externalRef (voided / already_void; 409 REDEEMED_CONFLICT si ya entró).
  • GET /v1/partner/tickets/{ref} — estado actual del boleto.
  • GET /v1/partner/redemptions — pull paginado por cursor since (limit 1..500).
  • GET /status — health check sin autenticación.

Webhook

  • Evento ticket.redeemed firmado con HMAC-SHA256 (headers event-id / timestamp / signature; desde 1.1 con prefijo x-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; rechazos QR_TAKEN, EXPERIENCE_MISMATCH).
  • Multi-usos (maxUses 1..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.