Webhooks are a great way for your system to receive near real-time updates from Hyfin without the need to constantly polling. When enabled, your system will be notified as soon as an event is trigger within Hyfin.
Webhooks can be enabled on a per site or per invoice basis by assigning a webhook URL when calling the associated endpoints. Here is an example of the json data required to enable webhooks for each endpoint.
{
"externalId": "12345678",
"webhook": {
"active": true,
"url": "https://mysoftware.com/webhook"
}
}
{
"_id": "39772921",
"webhookUrl": "https://mysoftware.com/webhook/{invoice_id}"
}
When a webhook URL is configured, the following messages will be sent.
Your webhook URL must answer with a successful HTTP status code (any 2xx) and should do so within 10 seconds. A non-2xx status, or a connection that cannot be made at all, counts as a failed delivery and the message is re-sent using the following schedule.
There are three retry attempts at most. Each delay in the table is measured from the previous attempt rather than from the initial webhook, so the third and last attempt is made about three hours after it. If that one also fails the message is not re-sent again.