Crear pase
Headers
Apple Wallet — Event Ticket con QR
Campos de pass_data (Apple)
Estructura de campos (Apple)
Cada campo enheader_fields, primary_fields, secondary_fields, auxiliary_fields y back_fields tiene esta estructura:
changeMessage y notificaciones push:
Para que el usuario reciba una notificación visible en la pantalla de bloqueo al actualizar un pase, el campo debe incluir changeMessage. Sin este atributo, el pase se actualiza silenciosamente.
Pase actualizado — Partido actualizado: Dom 2:30pm · Cancha 5 vs García/López |icon_base64| string | Icon PNG @1x (29×29 pt) | |icon_2x_base64| string | Icon PNG @2x (58×58 px) — recomendado | |icon_3x_base64| string | Icon PNG @3x (87×87 px) | |logo_base64| string | Logo PNG @1x (160×50 pt) | |logo_2x_base64| string | Logo PNG @2x (320×100 px) — recomendado | |logo_3x_base64| string | Logo PNG @3x (480×150 px) | |strip_base64| string | Strip PNG @1x (375×144 pt) — banda de acento con info dinámica | |strip_2x_base64| string | Strip PNG @2x (750×288 px) — recomendado | |strip_3x_base64| string | Strip PNG @3x (1125×432 px) | |thumbnail_base64| string | Thumbnail PNG (90×90 pt / 180×180 @2x) | |relevant_date| string | Fecha W3C para relevancia | |expiration_date| string | Fecha de expiración W3C | |locations| array |[{"latitude": 19.43, "longitude": -99.13, "relevantText": "Cerca del evento"}]|
Crear pase desde template
Si tienes un template configurado, solo necesitastemplate_id + los overrides:
pass_type y style se infieren del template. Los campos del template se mergean con los overrides (el request gana).
Respuesta (202)
GET /v1/jobs/{job_id} para obtener el resultado:
Descarga directa
.pkpass con Content-Type: application/vnd.apple.pkpass.
Google Wallet
Paso 1: Crear clase (una por torneo/evento)
Actualizar clase
Si cambia la sede, fechas o nombre del torneo:Consultar clase
Paso 2: Crear pase (uno por jugador)
El
eventName, venue y dateTime del frente vienen de la clase (no del objeto).
Resultado:
object_id debe ser único. Si se reutiliza un ID ya creado, Google rechaza el save link.
Actualizar pase
Apple Wallet
Acepta campos encamelCase (auxiliaryFields) o snake_case (auxiliary_fields). Incluir changeMessage para notificación visible en lock screen.
Google Wallet
Incluirnotify_message para enviar notificación visible al usuario.
Respuesta (202)
Estado del pase
Respuesta (200) — Apple Wallet
installed_devices muestra cuántos dispositivos lo tienen activo.
Respuesta (200) — Google Wallet
Google no envía callbacks en tiempo real cuando un usuario borra el pase — este endpoint consulta el estado directamente a la API de Google.
Webhook de device registration (Apple)
Axelo puede notificar a tu backend cuando un usuario instala o elimina un pase de Apple Wallet.Configuración
En el dashboard admin → detalle del tenant → sección “Wallet Webhook”, configura la URL destino. O via API:Payload que recibe tu webhook
El webhook se dispara de forma asíncrona — no bloquea la respuesta a Apple. Si tu endpoint falla, Axelo loguea el error pero no reintenta.
Solo aplica a Apple Wallet. Google Wallet no notifica cuando un usuario elimina un pase — usa
GET /v1/passes/{id}/status para consultar bajo demanda.
Guía de diseño
Colores del sistema
Color de acento por torneo
EllabelColor en Apple y hexBackgroundColor en Google se usan para el acento del torneo:
Strip image (Apple)
Lastrip.png es la banda de acento que muestra la hora del próximo partido. Se genera dinámicamente con el accent del torneo y se re-envía en cada update:
- Dimensiones: 375×144 @1x, 750×288 @2x, 1125×432 @3x
- Contenido: fondo con gradient del accent + hora del partido + pista + rival
- Enviar como:
strip_base64(ostrip_2x_base64para retina) - Regenerar: cada vez que cambia el próximo partido
Catálogo de push notifications
Para Apple, incluir
changeMessage en los campos dinámicos. Para Google, incluir notify_message en el PUT.