booking.created error

My webhook subscription (booking.created, Production, App ID sq0idp-bs8eem0k477uCYs2W4RrzA) works correctly — “Send Test Event” returns 200 and my endpoint processes it fine.

However, real bookings created through my Square Online booking site (https://book.squareup.com/appointments/ckf2db4kzf9aww/location/LHQW5SZJA9802) never trigger this webhook — 0 delivery attempts logged, even though ListBookings confirms these bookings are visible to this same app.

Is there a known reason bookings from this specific Square Online booking site wouldn’t dispatch booking.created to a webhook subscription tied to a different app ID, even for the same merchant account? Is there a setting to link the booking site to this app for event purposes?

Webhooks only trigger for the specific App ID that owns the subscription. Since Square Online uses its internal App ID, external apps must monitor events via merchant account location mapping.

Receiving booking.created notifications for bookings made through your Square online booking site depends on the app’s permissions, not solely on which app created the booking.

The Bookings webhook documentation explains that:

  • Apps with buyer-level permissions receive notifications for bookings they created.
  • Apps with seller-level permissions receive notifications for any booking visible in the Bookings API, including bookings created through the seller’s online booking site or Square Dashboard.

If you’re using OAuth, receiving seller-level booking notifications requires both APPOINTMENTS_READ and APPOINTMENTS_ALL_READ.

Can you confirm whether you’re using OAuth or a personal access token? If OAuth, does the current authorization include both scopes?

You also mentioned that these bookings appear in ListBookings. Can you confirm that you’re retrieving those exact online-site bookings using credentials associated with the same production app and seller account as the webhook subscription?