Webhook-endpoints API
Registrér HTTPS-endpoints for at modtage HMAC-signerede event-POST'er, når noget interessant sker i platformen — sessioner åbner, beviser registreres, audit-kæder forankres. Hver levering forsøges igen med eksponentiel backoff, signeres med en hemmelighed pr. endpoint og er replay-sikker via et 5-minutters tidsstempelvindue.
For event-kataloget + payload-former, se Webhooks-oversigt. Denne side er API-fladen til at administrere endpoints + inspicere leveringsforsøg.
Endpoint-objektet
{
"id": "we-1f2a...",
"url": "https://hooks.acme.com/cvp",
"description": "Production claims pipeline",
"event_types": ["session.completed", "evidence.created"],
"active": true,
"created_at": "2026-04-12T09:00:00Z"
} Bemærk: feltet signing_secret returneres præcis én gang i POST-svaret — gem det med det samme, eller rotér det senere via PATCH, hvis du mister det.
Liste over endpoints
GET /api/v1/public/webhook-endpoints — scope webhooks:read
curl https://app.nexbasira.com/api/v1/public/webhook-endpoints \
-H "Authorization: Bearer nb_sec_..." Opret et endpoint
POST /api/v1/public/webhook-endpoints — scope webhooks:write
curl -X POST https://app.nexbasira.com/api/v1/public/webhook-endpoints \
-H "Authorization: Bearer nb_sec_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://hooks.acme.com/cvp",
"description": "Production claims pipeline",
"event_types": ["session.completed", "evidence.created"]
}' Body-felter
| Felt | Type | Påkrævet | Noter |
|---|---|---|---|
url | HTTPS URL | ja | Skal være tilgængelig + svare 2xx inden for 10 s. HTTP afvises. |
description | string | nej | Fritekst-label. Nyttig når du har flere endpoints pr. org. |
event_types | string[] | nej | Abonnér kun på en delmængde af event-typer. Udelad / tom = abonnér på alt. |
{
"id": "we-1f2a...",
"url": "https://hooks.acme.com/cvp",
"description": "Production claims pipeline",
"event_types": ["session.completed", "evidence.created"],
"active": true,
"created_at": "2026-04-12T09:00:00Z",
"signing_secret": "whsec_4f9d2a8b3c1e..."
} signing_secret er den HMAC-SHA256-nøgle, platformen bruger til at signere hver POST. Verificér NB-Signature-headeren på din modtager — vores SDK'er leverer en one-liner-helper.
Hent / opdatér / slet
GET / PATCH / DELETE /api/v1/public/webhook-endpoints/{endpoint_id}
GET kræver webhooks:read; PATCH + DELETE kræver webhooks:write. PATCH accepterer samme body-form som POST — hvert felt valgfrit. Brug det til at sætte et endpoint på pause ({"active": false}), indsnævre dets abonnement eller rotere signeringshemmeligheden.
Rotér signeringshemmeligheden
curl -X PATCH https://app.nexbasira.com/api/v1/public/webhook-endpoints/we-1f2a... \
-H "Authorization: Bearer nb_sec_..." \
-H "Content-Type: application/json" \
-d '{"rotate_secret": true}' Den nye hemmelighed returneres præcis én gang i response-body'en, samme form som create-kaldet. Både gamle + nye hemmeligheder er gyldige de næste 24 t for at give din modtager tid til at deploye — derefter tilbagekaldes den gamle.
Inspicér leveringsforsøg
GET /api/v1/public/webhook-events — scope webhooks:read
De seneste 100 leveringsforsøg for credentialens org. Filtrér efter ?endpoint={id} eller ?status=pending|delivered|failed|dropped.
{
"data": [{
"id": "wev-9a01...",
"endpoint": "we-1f2a...",
"event_type": "session.completed",
"status": "delivered",
"response_status": 200,
"attempt_count": 1,
"created_at": "2026-05-23T10:32:00Z",
"delivered_at": "2026-05-23T10:32:01Z"
}],
"has_more": false,
"next_cursor": null
} Genforsøgs-kadence
Mislykkede leveringer forsøges igen efter denne tidsplan og droppes derefter:
- +30 sekunder
- +5 minutter
- +1 time
- +6 timer
- +24 timer
- derefter →
dropped(synlig i leveringsloggen)
Almindelige fejl
| Status | Kode | Hvornår |
|---|---|---|
| 400 | validation_error | Ikke-HTTPS-URL, ukendt event-type eller utilgængeligt endpoint ved oprettelse. |
| 403 | permission_denied | Credential mangler scope. |
| 404 | not_found | Endpoint findes ikke i credentialens org. |
| 409 | endpoint_paused | Forsøg på at sende en test-fire til et active=false-endpoint. |