API för webhook-endpoints
Registrera HTTPS-endpoints för att ta emot HMAC-signerade event-POST:ar när något intressant händer i plattformen — sessioner öppnas, bevis fångas, revisionskedjor förankras. Varje leverans görs om med exponentiell backoff, signeras med en hemlighet per endpoint och är replay-säker via ett 5-minuters tidsstämpelfönster.
För event-katalogen + payload-format, se Webhooks-översikt. Den här sidan är API-ytan för att hantera endpoints + inspektera leveransförsök.
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"
} Obs: fältet signing_secret returneras exakt en gång i POST-svaret — spara det direkt, eller rotera det senare via PATCH om du tappar bort det.
Lista 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_..." Skapa en 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-fält
| Fält | Typ | Krävs | Noteringar |
|---|---|---|---|
url | HTTPS URL | ja | Måste vara nåbar + svara 2xx inom 10 s. HTTP avvisas. |
description | string | nej | Fritextetikett. Hjälper när du har flera endpoints per organisation. |
event_types | string[] | nej | Prenumerera bara på en delmängd av event-typerna. Utelämna / tom = prenumerera på allt. |
{
"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 är HMAC-SHA256-nyckeln som plattformen använder för att signera varje POST. Verifiera NB-Signature-headern på din mottagare — våra SDK:er levererar en enradshjälpare.
Hämta / uppdatera / radera
GET / PATCH / DELETE /api/v1/public/webhook-endpoints/{endpoint_id}
GET kräver webhooks:read; PATCH + DELETE kräver webhooks:write. PATCH tar samma body-format som POST — varje fält valfritt. Använd det för att pausa en endpoint ({"active": false}), begränsa dess prenumeration eller rotera signeringshemligheten.
Rotera signeringshemligheten
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 nya hemligheten returneras exakt en gång i svarets body, samma format som create-anropet. Både gamla + nya hemligheterna är giltiga de närmaste 24 h för att ge din mottagare tid att driftsätta — därefter återkallas den gamla.
Inspektera leveransförsök
GET /api/v1/public/webhook-events — scope webhooks:read
De senaste 100 leveransförsöken för uppgiftens organisation. Filtrera med ?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
} Omförsöksrytm
Misslyckade leveranser görs om enligt detta schema och släpps sedan:
- +30 sekunder
- +5 minuter
- +1 timme
- +6 timmar
- +24 timmar
- därefter →
dropped(syns i leveransloggen)
Vanliga fel
| Status | Kod | När |
|---|---|---|
| 400 | validation_error | Icke-HTTPS-URL, okänd event-typ eller onåbar endpoint vid skapandet. |
| 403 | permission_denied | Uppgiften saknar scopet. |
| 404 | not_found | Endpointen finns inte i uppgiftens organisation. |
| 409 | endpoint_paused | Försök att skicka en testutlösning till en active=false-endpoint. |