> ## 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.refunded

> Fires when a booking is partially or fully refunded.

## When it fires

Way sends `booking.refunded` when a refund is processed for a booking, whether the refund is partial or full. The payload includes the amount of the refund that triggered the event along with the booking's full refund history, including refunds of add-on items.

Events arrive at your endpoint as a `POST` request with the body `{ "event": "booking.refunded", "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.                             |
| `refundHistory`                      | array \| null         | All refunds issued for the booking so far.                              |
| `refundHistory[].amount`             | number                | Amount of the refund.                                                   |
| `refundHistory[].refundedAt`         | string (ISO 8601)     | Timestamp when the refund was issued.                                   |
| `refundHistory[].refundedBy`         | string                | Identifier of the user who issued the refund.                           |
| `refundAmount`                       | number                | Amount of the refund that triggered this event.                         |
| `refundAt`                           | string (ISO 8601)     | Timestamp when the refund was processed.                                |

## Sample

```json theme={null}
{
   "event":"booking.refunded",
   "payload":{
      "bookingId":"cc234dac-e699-448f-8049-82d16aa30788",
      "experience":{
         "id":"53e7c7e3-37c2-4af1-ab9f-958af8d42ccc",
         "title":"Sunrise Surf & Swim",
         "startDateTime":"2022-12-07T12:00",
         "location":{
            "longitude":-97.7430608,
            "latitude":30.267153,
            "name":"Austin, TX, USA",
            "additionalInfo":"Please meet us in the lobby!",
            "timezoneId":"America/Chicago"
         },
         "duration":{
            "duration":"PT1H"
         }
      },
      "purchaser":{
         "fullName":"Alice Rivera",
         "emailAddress":"alice@example.com"
      },
      "metadata":null,
      "refundHistory":[
         {
            "amount":157.5,
            "refundedAt":"2022-11-18T19:25:11.796Z",
            "refundedBy":"8cf61735-042c-476a-a4c1-ad073d9dde2d"
         }
      ],
      "refundAmount":157.5,
      "refundAt":"2022-11-18T19:25:13.368Z"
   }
}
```

## Related endpoints

Retrieve the full booking with [Get Booking](/api-reference/bookings/get-booking).
