> ## Documentation Index
> Fetch the complete documentation index at: https://docs.way.co/llms.txt
> Use this file to discover all available pages before exploring further.

# booking.cancelled

> Fires when a booking is partially or fully canceled.

## When it fires

Way sends `booking.cancelled` when a booking is canceled, whether the cancellation is partial or full and whether it is performed by the brand or by the guest.

Events arrive at your endpoint as a `POST` request with the body `{ "event": "booking.cancelled", "payload": { ... } }`. When a webhook secret is set, the `X-Way-Signature` header carries an HMAC of the request body - see [Verify signatures](/webhooks/verify-signatures).

## Payload

| Field                                | Type                  | Description                                                             |
| ------------------------------------ | --------------------- | ----------------------------------------------------------------------- |
| `brand.id`                           | string (UUID)         | Unique identifier of the brand.                                         |
| `brand.name`                         | string                | Display name of the brand.                                              |
| `brand.tier`                         | string                | Subscription tier of the brand.                                         |
| `brand.countryCode`                  | string                | Country code of the brand.                                              |
| `brand.currency`                     | string                | Currency code used by the brand.                                        |
| `brand.externalReferenceId`          | string \| null        | External reference identifier configured for the brand.                 |
| `addOns`                             | array                 | Add-ons purchased with the booking.                                     |
| `addOns[].id`                        | string (UUID)         | Unique identifier of the add-on item.                                   |
| `addOns[].label`                     | string                | Display label of the add-on.                                            |
| `addOns[].price`                     | number                | Unit price of the add-on.                                               |
| `addOns[].paidAmount`                | number                | Amount paid for the add-on.                                             |
| `addOns[].taxes[].id`                | string (UUID)         | Unique identifier of the applied tax entry.                             |
| `addOns[].taxes[].included`          | boolean               | Whether the tax is included in the price.                               |
| `addOns[].taxes[].paidAmount`        | number                | Tax amount paid.                                                        |
| `addOns[].taxes[].tax.id`            | string (UUID)         | Unique identifier of the tax.                                           |
| `addOns[].taxes[].tax.name`          | string                | Name of the tax.                                                        |
| `bookingId`                          | string (UUID)         | Unique identifier of the booking.                                       |
| `bookingConfirmationCode`            | string                | Human-readable confirmation code of the booking.                        |
| `cartId`                             | string (UUID) \| null | Identifier of the cart the booking was purchased in, if any.            |
| `cartConfirmationCode`               | string \| null        | Confirmation code of the cart, if any.                                  |
| `experience.id`                      | string (UUID)         | Unique identifier of the experience.                                    |
| `experience.title`                   | string                | Title of the experience.                                                |
| `experience.startDateTime`           | string                | Local start date and time of the booked session.                        |
| `experience.duration.duration`       | string                | Session duration in ISO 8601 format (for example, `PT1H`).              |
| `experience.location.id`             | string (UUID)         | Unique identifier of the location.                                      |
| `experience.location.name`           | string                | Display name of the location.                                           |
| `experience.location.additionalInfo` | string \| null        | Extra directions or meeting instructions.                               |
| `experience.location.city`           | string \| null        | City of the location.                                                   |
| `experience.location.state`          | string \| null        | State of the location.                                                  |
| `experience.location.country`        | string \| null        | Country of the location.                                                |
| `experience.location.latitude`       | number                | Latitude of the location.                                               |
| `experience.location.longitude`      | number                | Longitude of the location.                                              |
| `experience.location.timezoneId`     | string                | IANA time zone of the location.                                         |
| `participantsCount`                  | number                | Total number of participants on the booking.                            |
| `participants[].id`                  | string                | Unique identifier of the participant.                                   |
| `participants[].firstName`           | string                | First name of the participant.                                          |
| `participants[].lastName`            | string                | Last name of the participant.                                           |
| `participants[].priceTierName`       | string                | Name of the price tier the participant booked.                          |
| `participants[].priceTierId`         | string                | Identifier of the price tier the participant booked.                    |
| `participants[].emailAddress`        | string \| null        | Email address of the participant.                                       |
| `participants[].phoneNumber`         | string \| null        | Phone number of the participant.                                        |
| `participants[].answerIds`           | string\[]             | Identifiers of the participant's custom question answers, when present. |
| `participants[].bookingHistoryId`    | string \| null        | Identifier of the booking history entry that added the participant.     |
| `priceTiers[].id`                    | string                | Unique identifier of the price tier.                                    |
| `priceTiers[].name`                  | string                | Name of the price tier.                                                 |
| `priceTiers[].price`                 | number                | Unit price of the tier.                                                 |
| `priceTiers[].amount`                | number                | Total amount for the tier on this booking.                              |
| `priceTiers[].participantsCount`     | number                | Number of participants booked on the tier.                              |
| `purchaser.fullName`                 | string                | Full name of the purchaser.                                             |
| `purchaser.firstName`                | string                | First name of the purchaser.                                            |
| `purchaser.lastName`                 | string                | Last name of the purchaser.                                             |
| `purchaser.emailAddress`             | string                | Email address of the purchaser.                                         |
| `purchaser.phoneNumber`              | string \| null        | Phone number of the purchaser.                                          |
| `metadata`                           | object \| null        | Custom metadata attached to the booking at checkout.                    |
| `loyaltyMemberId`                    | string \| null        | Loyalty member identifier of the purchaser, if any.                     |
| `externalAnalyticsUserId`            | string \| null        | External analytics user identifier, if any.                             |
| `cancelledAt`                        | string (ISO 8601)     | Timestamp when the booking was canceled.                                |

## Sample

```json theme={null}
{
   "event":"booking.cancelled",
   "payload":{
      "bookingId":"e0bec7d5-5263-4191-a61c-c4c948223fe4",
      "experience":{
         "id":"53e7c7e3-37c2-4af1-ab9f-958af8d42ccc",
         "title":"Sunrise Surf & Swim",
         "startDateTime":"2022-11-21T09:00"
      },
      "participantsCount":2,
      "participants":[
         {
            "lastName":"Rivera",
            "firstName":"Alice",
            "emailAddress":"alice@example.com",
            "priceTierName":"Adult"
         },
         {
            "lastName":"Rivera",
            "firstName":"Susan",
            "priceTierName":"Child"
         }
      ],
      "priceTiers":[
         {
            "name":"Adult",
            "price":100,
            "amount":100,
            "participantsCount":1
         },
         {
            "name":"Child",
            "price":50,
            "amount":50,
            "participantsCount":1
         }
      ],
      "purchaser":{
         "fullName":"Alice Rivera",
         "emailAddress":"alice@example.com"
      },
      "metadata":null,
      "cancelledAt":"2022-11-18T19:30:52.787Z"
   }
}
```

## Related endpoints

Retrieve the full booking with [Get Booking](/api-reference/bookings/get-booking), or cancel bookings programmatically with [Cancel Booking](/api-reference/bookings/cancel-booking).
