LIVE · AUDIT-KÆDE · EU-HOSTET
SYSTEM · 99,99 % OPPETID
v 1.0 ↗ FREMSTILLET I EU

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

FeltTypePåkrævetNoter
urlHTTPS URLjaSkal være tilgængelig + svare 2xx inden for 10 s. HTTP afvises.
descriptionstringnejFritekst-label. Nyttig når du har flere endpoints pr. org.
event_typesstring[]nejAbonné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

StatusKodeHvornår
400validation_errorIkke-HTTPS-URL, ukendt event-type eller utilgængeligt endpoint ved oprettelse.
403permission_deniedCredential mangler scope.
404not_foundEndpoint findes ikke i credentialens org.
409endpoint_pausedForsøg på at sende en test-fire til et active=false-endpoint.