Developers

Webhooks

Abonnements aux événements de l'organisation.

The reference text comes from the contract and is written in French.

Lister les abonnements webhook

get/api/v1/webhooks

Required scope : webhooks:manage

Parameters

  • limit (query)integer

    Taille de page.

  • cursor (query)string

    Curseur opaque rendu par la page précédente (next_cursor).

Responses

  • 200Une page d'abonnements.Page & object

Common errors :400401403429500503(details in the Errors section)

curl -sS "$SEVEUP_API/api/v1/webhooks" \
  -H "Authorization: Bearer $SEVEUP_KEY"
Example (200)
{
  "data": [
    {
      "id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
      "name": "ERP chantier",
      "url": "https://erp.example.com/hooks/seveup",
      "events": [
        "revision.processing.completed",
        "ids_check.completed"
      ],
      "active": true,
      "last_delivered_at": "2026-10-20T18:00:00Z",
      "last_status": 200,
      "created_at": "2026-09-01T10:00:00Z"
    }
  ],
  "next_cursor": null,
  "has_more": false
}

Créer un abonnement webhook

post/api/v1/webhooks

Required scope : webhooks:manage

Le secret de signature n'est rendu qu'ici, une seule fois.

Parameters

  • Idempotency-Key (header)string

    Clé d'idempotence, gardée 24 h par organisation.

Request bodyWebhookCreate

  • namestringrequired

  • urlstring (uri)required

    HTTPS uniquement, 2000 caractères au plus.

  • eventsWebhookEventType[]required

Responses

  • 201Abonnement créé.Webhook & object
  • 409Idempotency-Key déjà utilisée avec un autre corps, ou état incompatible.Problem

Common errors :400401403429500503(details in the Errors section)

curl -sS -X POST "$SEVEUP_API/api/v1/webhooks" \
  -H "Authorization: Bearer $SEVEUP_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "ERP chantier",
  "url": "https://erp.example.com/hooks/seveup",
  "events": [
    "revision.processing.completed",
    "ids_check.completed"
  ]
}'
Example (201)
{
  "id": "6e7f8a9b-0c1d-4e2f-8a3b-4c5d6e7f8a9b",
  "name": "ERP chantier",
  "url": "https://erp.example.com/hooks/seveup",
  "events": [
    "revision.processing.completed",
    "ids_check.completed"
  ],
  "active": true,
  "last_delivered_at": null,
  "last_status": null,
  "created_at": "2026-10-21T08:00:00Z",
  "secret": "whsec_<montré une seule fois>"
}

Supprimer un abonnement webhook

delete/api/v1/webhooks/{webhook_id}

Required scope : webhooks:manage

Parameters

  • webhook_id (path)string (uuid)required

    Identifiant de l'abonnement webhook.

Responses

  • 204Abonnement supprimé, avec son journal ; les livraisons en attente ne partent plus.

Common errors :401403404429500503(details in the Errors section)

curl -sS -X DELETE "$SEVEUP_API/api/v1/webhooks/$WEBHOOK_ID" \
  -H "Authorization: Bearer $SEVEUP_KEY"

Journal de livraison d'un abonnement

get/api/v1/webhooks/{webhook_id}/deliveries

Required scope : webhooks:manage

Les livraisons des 30 derniers jours, les plus récentes d'abord.

Parameters

  • webhook_id (path)string (uuid)required

    Identifiant de l'abonnement webhook.

  • limit (query)integer

    Taille de page.

  • cursor (query)string

    Curseur opaque rendu par la page précédente (next_cursor).

Responses

  • 200Une page de livraisons.Page & object

Common errors :400401403404429500503(details in the Errors section)

curl -sS "$SEVEUP_API/api/v1/webhooks/$WEBHOOK_ID/deliveries" \
  -H "Authorization: Bearer $SEVEUP_KEY"
Example (200)
{
  "data": [
    {
      "id": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
      "event": "ids_check.completed",
      "status": "delivered",
      "attempts": 1,
      "response_code": 200,
      "error": null,
      "created_at": "2026-10-21T09:02:11Z",
      "delivered_at": "2026-10-21T09:02:12Z",
      "next_attempt_at": null
    }
  ],
  "next_cursor": null,
  "has_more": false
}

Rejouer une livraison

post/api/v1/webhooks/{webhook_id}/deliveries/{delivery_id}/retry

Required scope : webhooks:manage

Remet la livraison en file, avec le même webhook-id : un destinataire qui l'avait déjà traitée la reconnaît. Une livraison encore en attente est rendue telle quelle. 409 si l'abonnement est désactivé ou si le corps de l'événement n'est plus conservé.

Parameters

  • webhook_id (path)string (uuid)required

    Identifiant de l'abonnement webhook.

  • delivery_id (path)string (uuid)required

    Identifiant de la livraison, lu dans le journal de livraison de l'abonnement.

  • Idempotency-Key (header)string

    Clé d'idempotence, gardée 24 h par organisation.

Responses

  • 202Livraison remise en file.WebhookDelivery
  • 409Idempotency-Key déjà utilisée avec un autre corps, ou état incompatible.Problem

Common errors :401403404429500503(details in the Errors section)

curl -sS -X POST "$SEVEUP_API/api/v1/webhooks/$WEBHOOK_ID/deliveries/$DELIVERY_ID/retry" \
  -H "Authorization: Bearer $SEVEUP_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
Example (202)
{
  "id": "0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
  "event": "ids_check.completed",
  "status": "pending",
  "attempts": 0,
  "response_code": 401,
  "error": "HTTP 401",
  "created_at": "2026-10-21T09:02:11Z",
  "delivered_at": null,
  "next_attempt_at": "2026-10-22T07:20:00Z"
}