Skip to main content
POST
/
v1
/
webhooks
Crear una subscripción de webhook saliente
curl --request POST \
  --url https://api.keebai.com/v1/webhooks \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Producción - Notificaciones CRM",
  "url": "https://hooks.example.com/keebai",
  "events": [],
  "headers": {
    "X-Tenant-Origin": "crm"
  },
  "is_active": true
}
'
{
  "id": "<string>",
  "name": "<string>",
  "url": "<string>",
  "events": [],
  "is_active": true,
  "secret_prefix": "<string>",
  "headers": {},
  "failure_count": 123,
  "created_at": "<string>",
  "updated_at": "<string>",
  "secret": "<string>",
  "last_delivery_at": {}
}

Authorizations

Authorization
string
header
required

Personal Access Token con prefijo kbai_pk_. Generar desde el portal con permiso developer.manage_tokens.

Body

application/json
name
string
required
Example:

"Producción - Notificaciones CRM"

url
string
required
Example:

"https://hooks.example.com/keebai"

events
enum<string>[]
required

Eventos a los que se subscribe.

Available options:
whatsapp.message.received,
whatsapp.message.sent,
whatsapp.message.delivered,
whatsapp.message.read,
whatsapp.message.failed,
whatsapp.template.status_updated,
whatsapp.channel.connected,
whatsapp.channel.disconnected,
conversation.created,
conversation.escalated_to_human,
instagram.message.received
headers
object

Headers extra a enviar en cada delivery.

Example:
{ "X-Tenant-Origin": "crm" }
is_active
boolean
default:true

Response

201 - application/json
id
string
required
name
string
required
url
string
required
events
enum<string>[]
required
Available options:
whatsapp.message.received,
whatsapp.message.sent,
whatsapp.message.delivered,
whatsapp.message.read,
whatsapp.message.failed,
whatsapp.template.status_updated,
whatsapp.channel.connected,
whatsapp.channel.disconnected,
conversation.created,
conversation.escalated_to_human,
instagram.message.received
is_active
boolean
required
secret_prefix
string
required

Prefijo del secret para identificación visual.

headers
object
required
failure_count
number
required
created_at
string
required
updated_at
string
required
secret
string
required

Secret raw (whsec_...). Se muestra UNA SOLA VEZ. Guárdalo de inmediato — no se puede recuperar.

disabled_reason
enum<string> | null
Available options:
excessive_failures,
manual
last_delivery_at
object