What is a webhook?
A webhook is a URL you own that bookto sends data to. When a checkout order event happens, bookto makes an HTTP POST request to that URL with order details as JSON. Webhook settings are account-level and can serve more than one bookto tool; this guide covers checkout order events. See Connect bookto to Zapier and other tools for the shared setup and booking webhooks for appointment events.
Use a webhook when you want to send orders to your own server, or to an automation tool that accepts a custom webhook trigger — such as Make, n8n, or webhook.site.
Webhook or Zapier? If you just want to connect a well-known app without code, Zapier is easier. Choose a raw webhook URL when you run your own server, or when your automation tool gives you a webhook URL to paste in.
What you need
- A bookto account on the Flow plan
- A URL that can receive a
POSTrequest (your own endpoint, or one from Make / n8n / webhook.site)
Step 1 — Get a webhook URL
If you use a tool like Make or n8n, create a new scenario with a custom webhook trigger — it gives you a URL to copy. If you run your own server, use any endpoint that accepts a POST. Not sure where to start? Open webhook.site and copy the unique URL it shows you — perfect for a first test.
Step 2 — Add the URL in bookto
- Open Integrations in the bookto app.
- Open the API key & webhooks section.
- Paste your URL under Webhooks and click Add
That's it — no API key is needed for a raw webhook URL. Select the checkout order events that URL should receive.
Step 3 — Test it safely
A payment made in test mode also fires a webhook, marked with "is_test_order": true in the payload. That lets you run the whole flow without taking a real payment.
- Place a test order on your own checkout page.
- Check your webhook URL (or your webhook.site tab) — the order should appear within seconds.
- Confirm the fields you need are present before going live.
What you receive
Each webhook is a single POST with a JSON body. It contains everything an invoice or bookkeeping tool needs: order number, the full amount breakdown (incl./excl. VAT, VAT rate, currency), the product name and description, the buyer (name, company, VAT number, address, country), and any custom_fields the buyer filled in.
The payload shape is stable, so you can rely on it. For the full JSON example and every field, see Integrations & webhooks.
Build it with AI (no code)
Don't want to write the handler yourself? On the Integrations page, open the Build your own integration card. It gives you a ready-to-paste prompt for an AI coding tool like Cursor or Claude — the prompt already includes the webhook payload shape and how to verify the signature, so the AI needs no prior bookto knowledge. Paste it in, describe what you want it to do (for example "add the buyer to a Google Sheet"), and let the tool build the handler for you.
Keep your signing secret safe. The prompt contains a
<your-signing-secret>placeholder. Replace it with your real secret from the API key & webhooks card in your own editor — never paste the real signing secret into a shared AI chat.
Good to know
- Delivered once. Each paid order reaches your webhook exactly once, even if the payment provider repeats its own notification behind the scenes — you won't get duplicates.
- Returning buyers. Every payload includes a stable
buyer.match_refkey so your automation can find-or-create a contact instead of creating a duplicate each time. See the find-or-create pattern in Integrations & webhooks. - Verify the sender (optional). If you build your own server, you can confirm each request genuinely came from bookto by checking the signature header. The step-by-step, with code, is in Integrations & webhooks.
- Manage & monitor. In the webhook settings, each URL shows its last delivery status and can be disabled or deleted. Use this to pause an endpoint or check whether bookto is reaching your server.
Flow plan required. Webhooks are available on the Flow plan. View plans →