This article is for studio managers who send bsport events to other tools. It covers creating, testing, pausing and updating webhooks in Settings. For API keys, see "Manage your API keys".
Overview
A webhook tells another tool when something happens in bsport. When a client books a class or an invoice is created, bsport sends the details to a web address you choose. Your reporting tool, CRM or automation platform can then react right away, without checking bsport again and again.
Manage all your webhooks from one page: Settings > Webhooks (listed under Integrations).
The page is called Webhooks & APIs and has two tabs: Webhooks and API. This article covers the Webhooks tab.
Webhooks come in versions:
V2 is the current version and the one you create.
V1 and Legacy are older versions that still send events until you replace them (see "Older webhooks: V1 and Legacy" below).
Who can use it: managers whose role has the Webhook permission. Ask your studio's administrator to turn it on for your role.
What you can do
Create a webhook for one event and one endpoint URL.
Edit the event or the URL of a webhook.
Send a test to check that your tool receives events.
Pause a webhook and resume it later.
Copy or rotate the signing secret of a webhook.
Replace older webhooks (V1 and Legacy) with V2 webhooks.
Filter the list by All, Active or Paused.
Common use cases
How to send new bookings to another tool
Go to Settings > Webhooks and select Create webhook.
In Event, search for and choose
booking.created.In Endpoint URL, enter the address of your tool, for example
https://example.com/webhooks/bsport.Select Create webhook.
The webhook is active right away. Create one webhook per event: to follow bookings that change or are deleted, add booking.updated and booking.deleted.
How to check that your tool receives events
Select the send icon (Test webhook) on the webhook's row. bsport sends one sample delivery with placeholder data to your URL and shows the result:
Result | What it means |
Delivered | Your tool answered with a success status. |
The receiver answered with an error | Your tool received the sample but replied with an error status. The status code is shown. |
No response | bsport got no answer: the tool timed out, couldn't be reached, the URL doesn't point to a public address, or its certificate was refused. |
If you test too often, bsport asks you to wait a minute before the next test.
How to pause a webhook
Pause a webhook to stop bsport sending its event to your tool, without deleting it. Its event, URL and signing secret stay saved.
Use it while your tool is down or being updated, or after you replace a V1 webhook with a V2 one.
To pause, turn off the Active switch on the webhook's row (On a phone, select Pause webhook instead)
Nothing is sent while the webhook is paused.
To start again, turn the switch back on, or select Resume webhook.
How to protect your tool from fake events
Each webhook has a Signing secret, shown masked with its last 4 characters. Your tool uses it to check that an event really comes from bsport. Select the copy icon to copy the secret into your tool.
To replace the secret, select the rotate icon (Rotate secret) and confirm. The current secret stops working immediately, retries included. Update your tool with the new secret straight away.
How it works
Setup. Create a webhook with an event and a public URL. Use an address that starts with
https://orhttp://. Local and private addresses are refused.Normal use. Each time the event happens in bsport, bsport sends the event name, its date and the event data to your URL. The list of events and the content of each delivery are in the Webhooks documentation (also linked at the top right of the page).
Changes. Edit the event or URL with the pencil icon (Edit webhook), then select Save changes.
Pause or secret change. Pause to stop deliveries. Rotate the secret if you think it leaked.
Events you can choose
The event list can change. The Webhooks documentation is always up to date and describes each event and what bsport sends. Check it before you choose an event.
28 events across 11 resources. Each event name has the resource, then what happened.
Resource | Events |
Booking |
|
Class |
|
Client |
|
Teacher |
|
Invoice |
|
Appointment |
|
Service |
|
Venue |
|
Class pass |
|
Client class pass |
|
Product |
|
Important behaviors
One active webhook per event and URL
bsport refuses a second active webhook that sends the same event to the same URL. To resume a paused webhook that would duplicate an active one, pause the active one first.
Older webhooks: V1 and Legacy
Your list can show older webhooks next to V2 ones. A yellow banner counts the older webhooks that still send events ("to update"). They will stop working soon, so move each one to V2.
Type | Where it appears | What you can do |
V2 | Webhooks table, Version V2 | Test, edit, pause, copy or rotate the secret. |
V1 | Webhooks table, Version V1 | Pause, or Update to V2. No secret rotation. |
Legacy | Legacy webhooks table | Update to V2, or Turn off. No pause, no signing secret. |
To move a V1 webhook:
Select Update to V2 on its row. The form opens with the matching V2 event and the same URL.
Choose Which webhook should receive events?
Pause V1: the new V2 webhook receives events.
Keep V1 running: the new V2 webhook starts paused. Resume it when your tool is ready.
Select Create webhook.
To move a Legacy webhook: select Update to V2 and create the V2 webhook. The Legacy webhook keeps running until you select Turn off.
Turn off is final. It deletes the Legacy webhook for good, and its event stops being sent. To receive that event again, create a V2 webhook.
No V2 replacement. Billing plan events have no V2 event, so Update to V2 is disabled for them. See the Legacy webhooks migration guide and the V1 webhooks migration guide.
Who sees what
Anyone with the Webhook permission sees the Webhooks tab. The API tab is separate and limited to Owners and Admins. See "Manage your API keys".
FAQ
I don't see Settings > Webhooks. Why?
Your role doesn't have the Webhook permission. Ask your studio's administrator to add it to your role.
Can I delete a V2 webhook?
No. Pause it instead. A paused webhook sends nothing.
Why is my URL refused?
The URL must be public and start with
https://orhttp://. Local and private addresses, such aslocalhost, are refused.
The test says "No response". What should I check?
Check that your tool is running, that the URL is public and that its certificate is valid. Then test again.
Can I see the signing secret in full?
The table shows the last 4 characters only. Use the copy icon to copy the full secret.
Why can't I rotate the secret of a V1 webhook?
Rotation is for V2 webhooks. Create a V2 webhook to get a rotatable secret.
