Webhook endpoints live under Settings in the sidebar, on the Webhooks page. Each endpoint is a URL plus the list of events you want sent to it. This article walks through creating one, testing it, and managing it afterwards.
Creating an endpoint
- 1
Open the Webhooks page
Click Webhooks in the sidebar, under the Settings section. If you are on a free plan you will see an upgrade prompt instead of the endpoint list. - 2
Click New endpoint
Use the New endpoint button in the top right, or the button in the middle of the page if you have not added any endpoints yet. - 3
Enter your URL
Paste the full https URL that should receive the events, for examplehttps://example.com/webhooks/booklink. Booklink checks the URL before saving and refuses anything that is not a public https address. - 4
Add a description
Optional, but useful once you have more than one endpoint. Something like "CRM sync" or "Slack alerts" makes the list readable at a glance. - 5
Tick the events you want
Select at least one event. Only tick what you actually handle. Every extra event is another request your server has to answer, and unhandled events that return an error count against the endpoint’s failure streak. - 6
Save and copy the signing secret
When you save, Booklink shows the signing secret once. Copy it and store it somewhere safe such as your environment variables or a password manager. It is not shown again.
The secret is shown once
If you close the dialog without copying the secret, you cannot retrieve it. Use Regenerate secret on the endpoint to get a new one, and remember that the old secret stops working the moment the new one is issued.Sending a test ping
Click Test on any endpoint to send a signed ping straight from Booklink. The toast tells you exactly what status code your server returned, so you can confirm the URL is reachable and your signature check passes before real bookings start flowing.
The ping uses the same envelope and the same signature header as a real event, with type set to ping and no data:
{
"id": "evt_4Lm7QxT2kR9pVcNb",
"type": "ping",
"created": "2026-08-29T09:10:00.118Z",
"data": null
}If Booklink cannot reach the URL at all, you get an error on the URL field rather than a status code. If it reaches your server and your server answers 500, the toast shows Endpoint responded 500. Both are useful signals: the first is a networking or DNS problem, the second is a bug in your handler.
Handle the ping event
Make your handler accept an unknowntype gracefully and still return 200. Otherwise the test ping fails even though your real event handling is fine.Editing, pausing, and deleting
Each endpoint card carries its own actions:
- Edit
- Change the URL, the description, the event list, or the active toggle. Turning an endpoint off stops delivery without deleting it or losing the secret.
- Test
- Send the signed ping described above.
- Deliveries
- Expand the recent delivery log for that endpoint. See deliveries and retries.
- Regenerate secret
- Issue a new signing secret and show it once. Retries of already queued deliveries are signed with the new secret, so update your server promptly.
- Delete
- Remove the endpoint permanently. Any queued deliveries for it are dropped.
Endpoint status
The badge on each card tells you where the endpoint stands:
| Badge | Meaning |
|---|---|
| Active | Receiving events normally. |
| Disabled | You switched it off with the active toggle. No events are sent. |
| Auto-disabled | Booklink switched it off after a long run of failures. See deliveries and retries. |