Pular para o conteúdo

Subscrições de webhook

Manage outbound webhook subscriptions. exoCortex POSTs a signed JSON event to your HTTPS endpoint whenever a subscribed event occurs (see Webhooks). These endpoints require an administrator session (Core → Integrations → Webhooks uses the same API).

GET /api/webhooks/{tenant}/subscriptions

Autenticação: Sessão de um administrador do exoCortex Core

Nome Onde Tipo Obrigatório Descrição
tenant caminho string sim Tenant code (case-insensitive).
Estado Descrição
200 Subscriptions of the tenant (secrets are masked).
401 Not authenticated.
403 Authenticated but not allowed (role, tenant or key).

Exemplo 200

{
"ok": true,
"hooks": [
{
"id": "wh_mhf2k1a9x3",
"url": "https://hooks.example.com/exocortex",
"events": [
"ticket.created",
"ticket.status_changed"
],
"format": "json",
"enabled": true,
"headers": {},
"secret": "***set***",
"created_at": "2026-11-01T08:00:00.000Z",
"created_by": "jane.doe"
}
]
}
Janela do terminal
curl -X GET "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions" \
-H "Authorization: Bearer $EXO_ADMIN_SESSION"

POST /api/webhooks/{tenant}/subscriptions

Without id, this creates a new subscription. With id, it updates that subscription. If you don’t send a secret on creation, exoCortex generates one and returns it once in the secret response field. Store it to verify signatures.

Autenticação: Sessão de um administrador do exoCortex Core

Nome Onde Tipo Obrigatório Descrição
tenant caminho string sim Tenant code (case-insensitive).

application/json

Nome Tipo Obrigatório Descrição
id string não Send it to update an existing subscription. Omit it to create one.
url string (uri) sim HTTPS endpoint that receives the events.
events array<string> não Event types to receive. * means all. Defaults to ["*"]. Besides the ticket catalog, notification-center events defined by the tenant’s notification rules (for example approval_requested) can be subscribed by name.
format string (json, datadog, pagerduty, slack-block) não
secret string não Signing secret. Generated if omitted on creation.
enabled boolean não
headers object não Extra static headers added to every delivery (for example an auth header for your gateway).
{
"url": "https://hooks.example.com/exocortex",
"events": [
"ticket.created",
"ticket.status_changed",
"ticket.resolved"
],
"format": "json"
}
Estado Descrição
200 Subscription saved.
400 Invalid request.
401 Not authenticated.
403 Authenticated but not allowed (role, tenant or key).

Exemplo 200

{
"ok": true,
"id": "wh_mhf2k1a9x3",
"count": 1,
"secret": "whsec_4b9e1f0c7d2a8e6b3c5f9a1d0e7b2c4a"
}
Janela do terminal
curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions" \
-H "Authorization: Bearer $EXO_ADMIN_SESSION" \
-H "Content-Type: application/json" \
--data '{"url":"https://hooks.example.com/exocortex","events":["ticket.created","ticket.status_changed","ticket.resolved"],"format":"json"}'

DELETE /api/webhooks/{tenant}/subscriptions/{id}

Autenticação: Sessão de um administrador do exoCortex Core

Nome Onde Tipo Obrigatório Descrição
tenant caminho string sim Tenant code (case-insensitive).
id caminho string sim
Estado Descrição
200 Deleted (removed is 0 if the id did not exist).
401 Not authenticated.
403 Authenticated but not allowed (role, tenant or key).

Exemplo 200

{
"ok": true,
"removed": 1
}
Janela do terminal
curl -X DELETE "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions/wh_mhf2k1a9x3" \
-H "Authorization: Bearer $EXO_ADMIN_SESSION"

POST /api/webhooks/{tenant}/subscriptions/{id}/test

Sends a signed webhook.test event to the subscription URL and reports the HTTP status returned by your endpoint.

Autenticação: Sessão de um administrador do exoCortex Core

Nome Onde Tipo Obrigatório Descrição
tenant caminho string sim Tenant code (case-insensitive).
id caminho string sim
Estado Descrição
200 Delivery result (ok reflects your endpoint’s response).
401 Not authenticated.
403 Authenticated but not allowed (role, tenant or key).

Exemplo 200

{
"ok": true,
"status": 204
}
Janela do terminal
curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions/wh_mhf2k1a9x3/test" \
-H "Authorization: Bearer $EXO_ADMIN_SESSION"

GET /api/webhooks/{tenant}/event-types

Autenticação: Sessão de um administrador do exoCortex Core

Nome Onde Tipo Obrigatório Descrição
tenant caminho string sim Tenant code (case-insensitive).
Estado Descrição
200 Event catalog.
401 Not authenticated.
403 Authenticated but not allowed (role, tenant or key).

Exemplo 200

{
"ok": true,
"wildcard": "*",
"event_types": [
"ticket.created",
"ticket.comment_added",
"ticket.field_changed",
"ticket.assignee_changed",
"ticket.status_changed",
"ticket.sla_warning",
"ticket.sla_breach",
"ticket.resolved",
"ticket.closed",
"ticket.reopened",
"ticket.priority_changed",
"routing.no_match",
"routing.manual_routed",
"ticket.link_created",
"ticket.link_deleted"
]
}
Janela do terminal
curl -X GET "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/event-types" \
-H "Authorization: Bearer $EXO_ADMIN_SESSION"

Página gerada a partir da especificação OpenAPI da API de integração, versão 1.1.0.