Cómo funcionan los webhooks
Trainingym envía un POST HTTP con un envoltorio JSON al endpoint que configures en
TGManager. Activa los tipos de evento que necesites e inspecciona eventType para
enrutar cada entrega.
El envoltorio
Todos los eventos comparten la misma estructura de nivel superior:
| Campo | Tipo | Descripción |
|---|---|---|
idEvent | string · uuid | Id único del evento. Úsalo como clave de idempotencia / deduplicación entre reintentos. |
dateCreated | string · date-time | Marca de tiempo de creación del evento (UTC). |
eventType | string | Discriminador del tipo de evento. |
center | object | Centro del que procede el evento: id, publicToken, name. |
data | object | array | Carga útil del evento; su forma depende de eventType. |
{
"idEvent": "b6c1a2e5-0c90-4e93-9dd0-2f2fdc0d8ef4",
"dateCreated": "2025-01-01T12:00:00Z",
"eventType": "payment.succeeded",
"center": {
"id": 1234,
"publicToken": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Portales"
},
"data": { "id": "aB3dE9", "idMember": "ZpQ1x7", "price": 102.85 }
}
Semántica de entrega
- Entrega al menos una vez — pueden producirse duplicados. Deduplica por
idEvent. - El orden no está garantizado.
- Una entrega se considera correcta cuando tu endpoint devuelve cualquier 2xx en 10 segundos; cualquier otra cosa se reintenta (consulta Recibir webhooks de forma fiable).
Notas sobre tipos
- La mayoría de ids de entidad se envían como
string(hashids); los campos documentados como numéricos mantienen su tipo numérico. dateCreated,paymentDateytransactionDateson marcas de tiempo UTC (date-time).- Los valores de hora del día se envían como
HH:mm:ss(por ejemplo"09:30:00").
Eventos
Explora la carga útil de cada evento en la barra lateral, bajo Tipos de evento, agrupados por Payments, Activities y Access.