Events
Webhook events
The event payloads the API delivers to your endpoint.
Each delivery is a JSON envelope with a typed event inside it. This page is a placeholder for the event reference.
Envelope#
POST
/v1/webhooks/deliveriesThe shape your endpoint receives. Verlix calls you; you do not call this path.
{
"id": "evt_01H...",
"type": "invoice.issued",
"createdAt": "2026-09-24T10:00:00Z",
"data": { "invoiceId": "inv_01H..." }
}Verify every delivery
Treat an unverified delivery as hostile. Verify the signature over the raw body before you parse it.
Event catalogue#
| Type | Data |
|---|---|
customer.created | customerId |
invoice.issued | invoiceId, amountDue |
invoice.paid | invoiceId, paidAt |
payment.failed | paymentId, failureCode |
Process a delivery#
Verify
Recompute the signature and reject a mismatch with a 401.
Deduplicate
Store the event id and skip a delivery you have already processed.
Acknowledge
Return a 2xx quickly, then process the event in a background job.
type Event = { id: string; type: string; data: Record<string, string> };
function handle(event: Event): void {
switch (event.type) {
case "invoice.issued":
return void enqueue("sync-invoice", event.data.invoiceId);
case "payment.failed":
return void enqueue("dunning", event.data.paymentId);
default:
return;
}
}