Webhooks
Een Webhook is een uitgaand HTTP-verzoek dat Frappe doet bij een documentgebeurtenis. Te gebruiken om externe systemen te informeren — Slack, eigen services, integraties — zonder polling.
Instellen
Open Webhook → New:
| Veld | Voorbeeld |
|---|---|
| Webhook DocType | Verkoopfactuur |
| Webhook DocEvent | Na indienen |
| Request URL | https://hooks.slack.com/services/T0/B0/XYZ |
| Request Method | POST |
| Request Structure | Form URL-Encoded / JSON |
| Conditie | doc.grand_total > 10000 (optioneel) |
Payload
De standaardbody is het document als JSON. Om aan te passen: voeg Webhook Data-rijen toe die velden naar uw gewenste sleutels mappen — handig wanneer het ontvangend systeem een specifieke vorm verwacht (Slack-berichten, eigen API-formaten).
Voor volledige controle gebruikt u Webhook → Request Body Template met Jinja:
{
"channel": "#sales",
"text": "Factuur {{ doc.name }} voor {{ doc.customer_name }} ter waarde van {{ doc.grand_total }} zojuist ingediend."
}
Headers
Voeg Authorization, content-type of custom headers toe in Webhook Headers. Bearer tokens horen hier.
Fouten en retries
Frappe logt elke call in Webhook Request Log met statuscode en respons. Fouten worden niet automatisch herhaald — bekijk de log en trigger handmatig, of bouw retry-logica aan ontvangerszijde.
Beveiliging
- Webhook-URL's worden encrypted op schijf opgeslagen als ze secrets in querystrings bevatten.
- Voor inkomende webhooks (Mollie, GoCardless, PEPPOL): gebruik de dedicated webhook-receiver-endpoints — zie de specifieke integratiedocumentatie.
Wanneer toch de API
Webhooks pushen notificaties naar u. De API laat een consument data on demand ophalen. Kies passend bij de richting.