Webhooks > Introduction

Webhooks are a great way for your system to receive near real-time updates from Centz without the need to constantly polling. When enabled, your system will be notified as soon as an event is trigger within Centz .

Enabling webhooks

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.


Endpoint
Sample JSON
Add/Update Site
When adding or editing a new site, you can enable a webhook at the site level. If a site level webhook is enabled you will receive all invoice and payment notifications for the site.
			
{
  "externalId": "12345678",
  "webhook": {
    "active": true,
    "url": "https://mysoftware.com/webhook"
  }
}


		
Add/Update Invoice
When adding or editing an invoice, you can enable a webhook at the invoice level and you will receive all notifications related to the invoice.
			
{
  "_id": "39772921",
  "webhookUrl": "https://mysoftware.com/webhook/{invoice_id}"
}


		

Webhook Events

When a webhook URL is configured, the following messages will be sent.

Action
Detail
Payment
A successful payment is made on an invoice
Notification
An email failed to deliver, was successfully delivered, the customer clicked the link, etc.

Retries

The webhook URL must return a successful HTTP response code (200) within 10 seconds or it will be considered to have failed to receive it. If this happens, all webhook messages will be re-sent using the following schedule.

Retry attempt
Re-sent at
#1
5 minutes after initial webhook
#2
1 hour later
#3
2 hours later

There are three retry attempts at most. If the third one also fails the message is not re-sent again, so the last attempt any message receives is about two hours after the initial webhook.