POST with a JSON body. The body has the same top-level shape for every event. Only data, and the presence of model and error, depend on the event.
Headers
A retry resends the same headers, including the same
webhook-timestamp.
Body
webhook
connector
data
On a data event, data is an array of the Bindbee IDs of the records the sync created or updated. It holds every changed record of that model, with no limit on its length:
ids filter on the model’s endpoint - see Filters. The IDs are the same id values the API returns. The response is paginated like any other read: page_size defaults to 50 and goes up to 200, so follow cursor to get the records past the first page.
On a connector event, data describes the connector’s sync state:
last_sync_start_time is null on connector.linked and connector.relinked when the connector hasn’t synced yet.
sync
error
failed_at equals the event’s occurred_at. detail is {} when there is nothing more to add. Show message to your team rather than branching on it, since the text can change.
Sample payloads
hris.employee.created
hris.employee.created
Every data event has this shape. Only
event, model, webhook.event, the connector’s category and integration, and the IDs differ.connector.sync.started
connector.sync.started
connector.sync.completed
connector.sync.completed
connector.sync.failed
connector.sync.failed
connector.relink_needed
connector.relink_needed
connector.linked
connector.linked
connector.relinked has the same shape, with "event": "connector.relinked".Related
- Webhook events - when each event fires
- Verify webhook signatures - check the headers before trusting the body
- Delivery and retries - deduplicating on
idand ordering onsequence - Migrate from version 1 - how each version 1 field maps to this body