---
title: "Events · API-documentatie | Faillissement.app"
description: "Documentatie van de Faillissement.app API: authenticatie, scopes, herkomst, credits, fouten, endpoints en webhooks."
canonical_url: "https://faillissement.app/ontwikkelaars/docs/webhooks"
locale: nl
meta:
  "og:description": "Documentatie van de Faillissement.app API: authenticatie, scopes, herkomst, credits, fouten, endpoints en webhooks."
  "og:title": "Events · API-documentatie | Faillissement.app"
---

**API-documentatie**

**v1.0.0**

[openapi.json](https://faillissement.app/api/v1/openapi.json) [Prijzen](https://faillissement.app/ontwikkelaars) [API-sleutels](https://faillissement.app/account/api)

# Events

Webhooks krijgen events van dossiers die een teamlid volgt en waarvoor webhooklevering aan staat, plus nieuwe faillissementen en portefeuilletreffers.

Events

| **Event** | **Wanneer** |
| --- | --- |
| `case.created` | Nieuw faillissement of nieuwe surseance |
| `case.status_changed` | Opheffing, beëindiging of andere statuswijziging |
| `report.published` | Nieuw of vervangen openbaar verslag |
| `report.processed` | Het verslag is verwerkt; wijzigingen zijn beschikbaar |
| `value.corrected` | Een gegeven is gecorrigeerd na een melding |
| `value.conflict` | Bronnen spreken elkaar tegen over een gegeven |
| `portfolio.hit` | Een KvK-nummer uit uw portefeuille is failliet (alleen exacte matches) |
| `auction.linked` | Een veiling is aan een gevolgd dossier gekoppeld |

## **Levering**

Elke levering is een POST met JSON. De headers Faillissement-Delivery en Faillissement-Event geven het id en het event.

```
POST /hooks/faillissement HTTP/1.1
Content-Type: application/json
Faillissement-Delivery: 01M3MRB2Q8W5Y1T6V9X3Z7C4N0
Faillissement-Event: report.published
Faillissement-Signature: t=1790592000,v1=5f2b…9a1c

{
  "id": "01M3MRB2Q8W5Y1T6V9X3Z7C4N0",
  "event": "report.published",
  "created_at": "2026-09-26T09:40:12+02:00",
  "data": {
    "case": {
      "id": "01M3MR667REBMJEMXA8R6NS3YZ",
      "name": "Jansen Bouw B.V.",
      "kvk_number": "12345678",
      "insolvency_number": "F.05/25/184",
      "status": "active",
      "links": { "self": "https://api.faillissement.app/api/v1/cases/01M3MR667REBMJEMXA8R6NS3YZ" }
    },
    "event": { "id": "01M3MR69…", "type": "report_published", "occurred_at": "2026-09-26T09:40:00+02:00", "details": {} }
  }
}
```

## **Handtekening controleren**

De header Faillissement-Signature bevat t (Unix-tijd) en v1 (de handtekening), gescheiden door een komma. De handtekening is HMAC-SHA256 over de tijd, een punt en de ruwe body, met het geheim van de webhook. Controleer altijd de ruwe body en weiger tijdstippen ouder dan vijf minuten.

```
import { createHmac, timingSafeEqual } from 'node:crypto'

function verify(rawBody, header, secret) {
  const parts = Object.fromEntries(header.split(',').map(part => part.split('=')))
  if (!Number.isFinite(Number(parts.t)) || !/^[a-f0-9]{64}$/.test(parts.v1 ?? '')) return false
  if (Math.abs(Date.now() / 1000 - Number(parts.t)) > 300) return false
  const expected = createHmac('sha256', secret).update(`${parts.t}.${rawBody}`).digest('hex')

  return timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1 ?? ''))
}
```

## **Opnieuw afleveren**

Antwoordt uw server niet binnen 10 seconden met een 2xx-status, dan proberen we het nog 5 keer, met oplopende tussenpozen tot 6 uur. Na 20 mislukte leveringen achter elkaar schakelen we de webhook uit en mailen we u. Gebruik het delivery-id om dubbele leveringen te herkennen.