Saltar al contenido principal

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:

CampoTipoDescripción
idEventstring · uuidId único del evento. Úsalo como clave de idempotencia / deduplicación entre reintentos.
dateCreatedstring · date-timeMarca de tiempo de creación del evento (UTC).
eventTypestringDiscriminador del tipo de evento.
centerobjectCentro del que procede el evento: id, publicToken, name.
dataobject | arrayCarga ú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, paymentDate y transactionDate son 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.