Crear un webhook

Sirve para empezar a recibir eventos en tu sistema: elegís la URL y los eventos de cualquiera de las tres áreas, y guardás el secreto de firma, que se muestra solo esta vez.

POST
/webhooks

Escritura · requiere el permiso webhooks:write.

Con una clave de API, cada tipo de events exige además el permiso de lectura de su área (accounts:read, conversations:read, communities:read); si falta, 422.

Autorización

http
headerAuthorizationBearer <clave>

Cuerpo del pedido

application/json
  1. body

El cuerpo de POST api/webhooks. La autorización real la hacen los gates de la ruta (can:user-admin) y AssertsAccountOwner en el controlador.

url*string
Formatouri
Largolength <= 2048
description?|
Largolength <= 160
events*array<>
Elementos1 <= items <= 50
filters?

Cuerpo de la respuesta

WebhookSubscriptionCreatedResource

application/json
  1. response
id*string
url*string
description*string|null
events?array<unknown>
filters*||

Siempre un objeto: {} si no hay filtro.

status*string
disabled_reason*string|null
last_delivery_at*string|null
last_success_at*string|null
secret_rotated_at*string|null
created_at*string|null
updated_at*string|null
migration*|null
secret*string
secret_notice*string
curl -X POST "https://example.com/webhooks" \  -H "Content-Type: application/json" \  -d '{    "url": "http://example.com",    "events": [      "device.disconnected"    ]  }'
{  "id": "string",  "url": "string",  "description": "string",  "events": [    null  ],  "filters": {    "property1": null,    "property2": null  },  "status": "string",  "disabled_reason": "string",  "last_delivery_at": "string",  "last_success_at": "string",  "secret_rotated_at": "string",  "created_at": "string",  "updated_at": "string",  "migration": {    "origin": "string",    "status": "string",    "activated_via": "string",    "activated_at": "string",    "last_result": "string"  },  "secret": "string",  "secret_notice": "Guardá este secreto ahora: es la única vez que se muestra. Con él validás la firma del header de cada entrega."}