Setting one up
Add a webhook in the creditor portal under Developers → Webhooks, or with Create webhook. You give it a URL and the list of events you want. A webhook you create is bound to your creditor and only ever receives events for your own cases — there is nothing to filter on your side.Delivery
By default, every delivery is aPOST with a JSON body of the shape:
- Debbie sends an
X-Verification-Tokenheader with the token issued when the webhook was created. Verify it on every request before acting on the payload. - Any non-2xx response counts as a failure. The first delivery is attempted immediately; a failure is then retried up to 7 more times with exponential backoff — roughly 1, 3, 8, 21, 55, 149 and 404 minutes after the previous attempt, about eleven hours end to end.
- Respond quickly and process asynchronously. Acknowledge with 200 as soon as the payload is persisted rather than after your own downstream work has finished.
- Retries mean a delivery can arrive more than once with an unchanged body, so
make the handler idempotent. Key it on the identifiers the event carries:
billingIdforbillings.create, andcaseId— together withstatus— forcases.*.
Polling webhook items
For an integration that polls for events, use Create webhook withpull: true,
your creditorId and the events you need. A public HTTP(S) url is still
required when creating the webhook, but pull webhooks hold items in PENDING
without POSTing them to that URL.
Your API key needs read:webhooks to fetch items and write:webhooks to
acknowledge them. Both operations are restricted to your creditor’s webhooks.
-
Get webhook items with
state=PENDING. AddwebhookIdto poll a specific webhook:The response contains anitemsarray and paginationmeta. Each item has anid,hookId,event,dataandstate. Process the event payload initem.data. -
After successfully processing an item,
Patch webhook item using
that item’s
idand{"state":"SUCCESS"}:A successful update returns200with{}. The item no longer appears when filtering bystate=PENDING. -
Fetch page
0again after acknowledging the batch. Acknowledged items leave the pending results, so increasing the page number would skip items. Once no pending items remain, wait before polling again.
id: if processing
succeeds but acknowledgment fails, the item will appear again on the next
poll. Leave an item pending if processing fails, so it can be retried.
Events
These four are the only events a creditor webhook can subscribe to today.
There is no event for a payment landing on a case. Payments reach your books
through the settlement —
billings.create and the two endpoints in the
Settlements guide — and the creditor portal shows them
as they come in. If being notified per payment matters to your integration,
tell your debt collection partner.