Abonnements 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).
Lister les abonnements
Section intitulée « Lister les abonnements »GET /api/webhooks/{tenant}/subscriptions
Authentification: Session d’un administrateur de exoCortex Core
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
tenant |
chemin | string | oui | Tenant code (case-insensitive). |
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Subscriptions of the tenant (secrets are masked). |
401 |
Not authenticated. |
403 |
Authenticated but not allowed (role, tenant or key). |
Exemple 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" } ]}Exemple avec curl
Section intitulée « Exemple avec curl »curl -X GET "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions" \ -H "Authorization: Bearer $EXO_ADMIN_SESSION"Créer ou modifier un abonnement
Section intitulée « Créer ou modifier un abonnement »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.
Authentification: Session d’un administrateur de exoCortex Core
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
tenant |
chemin | string | oui | Tenant code (case-insensitive). |
Corps de la requête
Section intitulée « Corps de la requête »application/json
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
id |
string | non | Send it to update an existing subscription. Omit it to create one. |
url |
string (uri) | oui | HTTPS endpoint that receives the events. |
events |
array<string> | non | 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) |
non | |
secret |
string | non | Signing secret. Generated if omitted on creation. |
enabled |
boolean | non | |
headers |
object | non | 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"}Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Subscription saved. |
400 |
Invalid request. |
401 |
Not authenticated. |
403 |
Authenticated but not allowed (role, tenant or key). |
Exemple 200
{ "ok": true, "id": "wh_mhf2k1a9x3", "count": 1, "secret": "whsec_4b9e1f0c7d2a8e6b3c5f9a1d0e7b2c4a"}Exemple avec curl
Section intitulée « Exemple avec curl »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"}'Supprimer un abonnement
Section intitulée « Supprimer un abonnement »DELETE /api/webhooks/{tenant}/subscriptions/{id}
Authentification: Session d’un administrateur de exoCortex Core
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
tenant |
chemin | string | oui | Tenant code (case-insensitive). |
id |
chemin | string | oui |
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Deleted (removed is 0 if the id did not exist). |
401 |
Not authenticated. |
403 |
Authenticated but not allowed (role, tenant or key). |
Exemple 200
{ "ok": true, "removed": 1}Exemple avec curl
Section intitulée « Exemple avec curl »curl -X DELETE "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions/wh_mhf2k1a9x3" \ -H "Authorization: Bearer $EXO_ADMIN_SESSION"Envoyer un événement de test
Section intitulée « Envoyer un événement de test »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.
Authentification: Session d’un administrateur de exoCortex Core
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
tenant |
chemin | string | oui | Tenant code (case-insensitive). |
id |
chemin | string | oui |
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Delivery result (ok reflects your endpoint’s response). |
401 |
Not authenticated. |
403 |
Authenticated but not allowed (role, tenant or key). |
Exemple 200
{ "ok": true, "status": 204}Exemple avec curl
Section intitulée « Exemple avec curl »curl -X POST "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/subscriptions/wh_mhf2k1a9x3/test" \ -H "Authorization: Bearer $EXO_ADMIN_SESSION"Lister les types d’événement
Section intitulée « Lister les types d’événement »GET /api/webhooks/{tenant}/event-types
Authentification: Session d’un administrateur de exoCortex Core
Paramètres
Section intitulée « Paramètres »| Nom | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
tenant |
chemin | string | oui | Tenant code (case-insensitive). |
Réponses
Section intitulée « Réponses »| Statut | Description |
|---|---|
200 |
Event catalog. |
401 |
Not authenticated. |
403 |
Authenticated but not allowed (role, tenant or key). |
Exemple 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" ]}Exemple avec curl
Section intitulée « Exemple avec curl »curl -X GET "https://exocortex-api.ai-exo-cortex.com/api/webhooks/ACME/event-types" \ -H "Authorization: Bearer $EXO_ADMIN_SESSION"Page générée à partir de la spécification OpenAPI de l’API d’intégration, version 1.1.0.