Saltar al contenido
Desarrolladores

Webhooks

Xat CRM envía un POST a tu URL cuando ocurre algo en tu espacio de trabajo. Configuras los endpoints desde Ajustes → Webhooks.

Eventos

Cada endpoint se suscribe a los eventos que elijas. Estos son todos los disponibles.

message

  • message.received
  • message.sent

conversation

  • conversation.created
  • conversation.updated
  • conversation.resolved

contact

  • contact.created
  • contact.updated

inbox

  • inbox.connected
  • inbox.disconnected

9

Formato del envío

Cada entrega es un POST con este cuerpo y estas cabeceras.

Cabeceras

X-Xat-Event: <event>
X-Xat-Delivery: <id>
X-Xat-Signature: sha256=<hex>
User-Agent: XatCRM-Webhooks/1.0

Cuerpo

{
  "id": …,
  "event": …,
  "organizationId": …,
  "occurredAt": …,
  "data": …
}

Verificar la firma

Cada entrega va firmada con el secreto del endpoint. Calcula el HMAC-SHA256 del cuerpo tal cual llega —sin volver a serializarlo— y compáralo con la cabecera de firma. El secreto se muestra una sola vez, al crear el endpoint.

X-Xat-Signature
sha256=<hex>
HMAC
HMAC-SHA256

Reintentos

Si tu endpoint no responde con éxito, la entrega se reintenta con espera creciente. Un endpoint que falla de forma sostenida se desactiva solo, para que una URL muerta no siga consumiendo la cola.

Intentos por entrega
6
Espera entre intentos
30s1m2m4m8m
Se desactiva tras
20 fallos consecutivos

Las redirecciones no se siguen: en un POST firmado siempre indican una mala configuración.

Entregas repetidas

Un reintento repite la misma entrega, con el mismo identificador en la cabecera correspondiente. Usa ese identificador para descartar duplicados en tu lado.

X-Xat-Delivery