Fired when a booking is cancelled and its deposit refunded.
When: a booking is cancelled and its deposit refunded, by a GreenLeaze admin, by the shop from its dashboard, or automatically when the booking expires (bookingCancelAfterHours). Sent once (atomic state change).
Destinations: webhook subscriptions, plus every active external app with a webhookCancelBookingUrl.
order_booked payload, with externalOrderId set to the shop-side order id when one was recorded and booking.bookedAt always null (the booking is cleared before the payload is built), plus:
| Field | Type | Description |
|---|---|---|
cancellation.cancelledAt | string | When the booking was cancelled. |
cancellation.source | "admin" | "shop" | "auto" | Who cancelled it. |
cancellation.refundedAmountTTC | number | Amount actually refunded, € TTC. Lower than booking.bookingDepositAmountTTC when a refund failed. |
When the booking had already been pushed to the shop (externalOrderId set), an order_cancelled with isBooking: true follows.
{
"…": "order_booked fields",
"externalOrderId": "6171224457361",
"cancellation": {
"cancelledAt": "2026-04-21T10:00:00.000Z",
"source": "auto",
"refundedAmountTTC": 89.9
}
}