Points de terminaison de webhook
Là où nous envoyons les avis d'événements signés. Voyez le guide Webhooks.
Points de terminaison · 9
- POST Ajouter un point de terminaison
- GET Récupérer un point de terminaison
- GET Lister les points de terminaison
- PATCH Mettre à jour un point de terminaison
- DELETE Supprimer un point de terminaison
- POST Faire la rotation du secret de signature
- POST Envoyer un événement de test
- GET Lister les livraisons
- POST Relancer une livraison
L'objet
| Champ | Saisir | Description |
|---|---|---|
id | string | Identifiant unique, commençant par whk_. |
object | string | Toujours "webhook". |
url | string | Une adresse HTTPS publique. |
description | string | Jusqu'à 200 caractères. |
events | array | Types d'événements, ou ["*"] pour tous. |
enabled | boolean | Les points de terminaison désactivés ne reçoivent rien. |
secret | string | Le secret de signature (whsec_…). Renvoyé quand vous créez ou obtenez un point de terminaison, pas dans les listes. |
created_at | timestamp |
/webhooksAjouter un point de terminaison
| Paramètre | Saisir | Description | |
|---|---|---|---|
url | string | obligatoire | HTTPS public. |
events | array | obligatoire | Un ou plusieurs types d'événements, ou "*". |
description | string | facultatif |
curl -X POST "https://api.esorasign.com/v1/webhooks" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com/esora/webhooks", "events": ["document.completed", "recipient.signed"], "description": "Production CRM sync" }'{
"id": "whk_1ZHu8qRtZHjQMhuOzE95B9",
"object": "webhook",
"url": "https://example.com/esora/webhooks",
"description": "Production CRM sync",
"events": ["document.completed", "recipient.signed"],
"enabled": true,
"secret": "whsec_kQ3m...",
"created_at": "2026-11-01T12:00:00.000Z"
}/webhooks/{id}Récupérer un point de terminaison
Comprend le secret de signature.
Requêtecurl "https://api.esorasign.com/v1/webhooks/whk_1ZHu8qRtZHjQMhuOzE95B9" \
-H "Authorization: Bearer $ESORA_API_KEY"{
"id": "whk_1ZHu8qRtZHjQMhuOzE95B9",
"object": "webhook",
"url": "https://example.com/esora/webhooks",
"description": "Production CRM sync",
"events": ["document.completed", "recipient.signed"],
"enabled": true,
"secret": "whsec_kQ3m...",
"created_at": "2026-11-01T12:00:00.000Z"
}/webhooksLister les points de terminaison
Les plus récents d'abord. Les secrets ne sont pas inclus.
| Paramètre | Saisir | Description | |
|---|---|---|---|
limit | integer | facultatif | Nombre d'objets à renvoyer, de 1 à 100. Par défaut 20. |
starting_after | string | facultatif | Le next_cursor de la page précédente. Omettez-le pour la première page. |
curl "https://api.esorasign.com/v1/webhooks" \
-H "Authorization: Bearer $ESORA_API_KEY"{
"object": "list",
"data": [
{
"id": "whk_1ZHu8qRtZHjQMhuOzE95B9",
"object": "webhook",
"url": "https://example.com/esora/webhooks",
"description": "Production CRM sync",
"events": ["document.completed", "recipient.signed"],
"enabled": true,
"created_at": "2026-11-01T12:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}/webhooks/{id}Mettre à jour un point de terminaison
| Paramètre | Saisir | Description | |
|---|---|---|---|
url, events, description | facultatif | ||
enabled | boolean | facultatif | false suspend les livraisons. |
curl -X PATCH "https://api.esorasign.com/v1/webhooks/whk_1ZHu8qRtZHjQMhuOzE95B9" \
-H "Authorization: Bearer $ESORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "enabled": false }'{
"id": "whk_1ZHu8qRtZHjQMhuOzE95B9",
"object": "webhook",
"url": "https://example.com/esora/webhooks",
"description": "Production CRM sync",
"events": ["document.completed", "recipient.signed"],
"enabled": false,
"created_at": "2026-11-01T12:00:00.000Z"
}/webhooks/{id}Supprimer un point de terminaison
Requêtecurl -X DELETE "https://api.esorasign.com/v1/webhooks/whk_1ZHu8qRtZHjQMhuOzE95B9" \
-H "Authorization: Bearer $ESORA_API_KEY"{ "id": "whk_1ZHu8qRtZHjQMhuOzE95B9", "object": "webhook", "deleted": true }/webhooks/{id}/rotate-secretFaire la rotation du secret de signature
Renvoie le nouveau secret. Pendant 24 heures, les livraisons portent des signatures avec les deux secrets.
Requêtecurl -X POST "https://api.esorasign.com/v1/webhooks/whk_1ZHu8qRtZHjQMhuOzE95B9/rotate-secret" \
-H "Authorization: Bearer $ESORA_API_KEY"{
"id": "whk_1ZHu8qRtZHjQMhuOzE95B9",
"object": "webhook",
"url": "https://example.com/esora/webhooks",
"description": "Production CRM sync",
"events": ["document.completed", "recipient.signed"],
"enabled": true,
"secret": "whsec_kQ3m...",
"previous_secret_expires_at": "2026-11-04T12:00:00.000Z",
"created_at": "2026-11-01T12:00:00.000Z"
}/webhooks/{id}/testEnvoyer un événement de test
Envoie tout de suite un événement webhook.test, signé comme les autres, et indique comment votre point de terminaison a répondu.
Requêtecurl -X POST "https://api.esorasign.com/v1/webhooks/whk_1ZHu8qRtZHjQMhuOzE95B9/test" \
-H "Authorization: Bearer $ESORA_API_KEY"{ "object": "webhook_test", "ok": true, "response_status": 200, "error": null }/webhooks/{id}/deliveriesLister les livraisons
Les 100 dernières livraisons à ce point de terminaison, les plus récentes d'abord. status vaut pending, succeeded ou failed.
Requêtecurl "https://api.esorasign.com/v1/webhooks/whk_1ZHu8qRtZHjQMhuOzE95B9/deliveries" \
-H "Authorization: Bearer $ESORA_API_KEY"{
"object": "list",
"data": [
{
"id": "dlv_3gE0VrbBGI09QYNdaKy8is",
"object": "webhook_delivery",
"event_id": "evt_5ydfhl3TvtnythpZPPPP6U",
"event_type": "document.completed",
"status": "succeeded",
"attempts": 1,
"response_status": 200,
"error": null,
"created_at": "2026-11-03T09:41:28.000Z",
"delivered_at": "2026-11-03T09:41:28.000Z"
}
],
"has_more": false,
"next_cursor": null
}/webhooks/{id}/deliveries/{delivery_id}/retryRelancer une livraison
Remet la livraison en file d'attente avec une nouvelle série de tentatives.
Requêtecurl -X POST "https://api.esorasign.com/v1/webhooks/whk_1ZHu8qRtZHjQMhuOzE95B9/deliveries/dlv_3gE0VrbBGI09QYNdaKy8is/retry" \
-H "Authorization: Bearer $ESORA_API_KEY"{ "id": "dlv_3gE0VrbBGI09QYNdaKy8is", "object": "webhook_delivery", "status": "pending" }