Webhooks

Setting Up a Webhook Endpoint

Create a webhook endpoint, choose its events, save the signing secret, and send a test ping.

Last updated

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. 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. 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. 3

    Enter your URL

    Paste the full https URL that should receive the events, for example https://example.com/webhooks/booklink. Booklink checks the URL before saving and refuses anything that is not a public https address.
  4. 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. 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. 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 unknown type 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:

BadgeMeaning
ActiveReceiving events normally.
DisabledYou switched it off with the active toggle. No events are sent.
Auto-disabledBooklink switched it off after a long run of failures. See deliveries and retries.

Was this article helpful?

Still need help?

Our support team is happy to help you get the most out of Booklink.

Contact support