← Développeurs Nautilinks

Webhooks

Webhooks signés Nautilinks

Recevez les changements du cycle de vie d’une commande sans polling. Les endpoints, événements, payloads et erreurs sont typés dans le document OpenAPI public.

S’abonner

Appelez POST /api/v1/agent/webhooks avec une URL HTTPS publique et un ou plusieurs événements pris en charge : order.accepted, order.published ou order.cancelled. Les cibles privées, loopback, non résolues, avec redirection ou non HTTPS sont refusées.

curl --fail-with-body -X POST \
  -H "Authorization: Bearer $NAUTILINKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/hooks/nautilinks","events":["order.published"]}' \
  https://nautilinks.co/api/v1/agent/webhooks

Vérifier chaque livraison

La réponse de création révèle secret une seule fois et indique la dérivation hex(sha256(secret)). Utilisez cette valeur hexadécimale ASCII comme clé HMAC. Vérifiez ensuite v1 dans Nautilinks-Signature: t=<unix>,v1=<hex> contre le HMAC-SHA256 de <t>.<corps JSON brut>. Refusez les horodatages anciens et comparez les signatures en temps constant.

L’en-tête Nautilinks-Event répète le nom de l’événement. Analysez le corps seulement après vérification de ses octets bruts, répondez rapidement avec un 2xx et rendez le traitement aval idempotent.

Inspecter ou révoquer

GET /api/v1/agent/webhooks liste les abonnements et leur état récent. DELETE /api/v1/agent/webhooks/{webhookId} révoque logiquement un abonnement détenu par la clé. Consultez la spécification OpenAPI Nautilinks pour les schémas de requête et de réponse.