Weergave
Webhook payloads
Als een monitor matcht, POST Persmonitor JSON naar jouw webhook-URL. Dit zijn voorbeeldpayloads (zoals bij een testmelding). Configureer het kanaal in de Monitor (Instellingen → Kanalen).
Header: X-Persmonitor-Webhook-Version: 1 of 2 (gelijk aan de payload-versie van het kanaal).
Nieuwe webhook-kanalen gebruiken standaard versie 2. Bestaande kanalen zonder payloadVersion blijven op versie 1.
Versie 2 (aanbevolen)
Versioned envelope: version, type, timestamp (UTC ISO-8601), test, data.
json
{
"version": 2,
"type": "p2000.message.created",
"timestamp": "2026-03-18T12:34:56Z",
"test": true,
"data": {
"id": "test-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"message": "[TEST] Persmonitor testmelding voor dit kanaal. A1 Damrak Amsterdam",
"sentAt": "2026-03-18T12:34:56Z",
"capcodes": ["13101"],
"disciplines": ["ambulance"],
"urgencies": ["spoed"],
"cities": ["Amsterdam"],
"streets": ["Damrak"],
"url": "https://112hub.nl/…",
"ai": {
"title": "Optionele AI-titel",
"body": "Optionele AI-tekst"
}
}
}ai staat alleen in de payload als AI voor het kanaal aan staat.
Urgentie in v2: data.urgencies is een array van urgentie-slugs (spoed, gepaste-spoed), dezelfde waarden als filter.urgencies in GraphQL. De testmelding hierboven krijgt ["spoed"]. Op P2000Message staat urgentie als nullable object urgency { uuid, slug, name } (of null). Zie Urgentiewaarden.
Event-types (veld type)
type | Wanneer |
|---|---|
p2000.message.created | Nieuwe P2000-melding |
p2000.nl_alert.created | NL-Alert gekoppeld aan dossier |
p2000.dossier.item.created | Dossier-RSS item |
p2000.status.updated | Statusupdate dossier |
p2000.escalation.created | Escalatie |
Andere monitor-typen (aircraft, KNMI, …) gebruiken dezelfde envelope met een ander type en andere data-velden.
Versie 1 (legacy)
Root is altijd { "content": … }. Bij P2000 lijkt content op het oude Gwingo/staging-formaat. sended is Unix-tijd in milliseconden.
json
{
"content": {
"uuid": "test-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"id": "test-aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"message": "[TEST] Persmonitor testmelding voor dit kanaal. A1 Damrak Amsterdam",
"sended": 1742296496000,
"replaced_message": "De ambulance is met spoed uitgerukt naar de Damrak in Amsterdam.",
"street": {
"name": "Damrak",
"city": { "name": "Amsterdam" }
},
"capcodes": {
"data": [{ "capcode": "13101" }]
},
"discipline": { "name": "ambulance" },
"urgency": { "name": "spoed" },
"test": true
}
}Urgentie in v1: content.urgency is een object { "name": "<urgentie-slug>" } (hier "spoed").
Wat jouw endpoint moet doen
- Accepteer
POSTmetContent-Type: application/json. - Antwoord met HTTP
2xxbij succes (anders retries volgens kanaalinstelling). - Behandel
test: trueals testmelding (niet als echte incident-feed).
Webhooks stel je in in de Monitor. GraphQL mutations voor kanalen staan niet in de publieke docs.
Zie ook: P2000 meldingen · Aan de slag