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

# review.completed

> Fires when a review is submitted for a booking.

## When it fires

Way sends `review.completed` when a review is created for a booking - that is, when a guest submits their rating and feedback for an experience they attended.

Events arrive at your endpoint as a `POST` request with the body `{ "event": "review.completed", "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                                                    |
| --------------------------- | ----------------- | -------------------------------------------------------------- |
| `id`                        | string (UUID)     | Unique identifier of the review.                               |
| `bookingId`                 | string (UUID)     | Unique identifier of the reviewed booking.                     |
| `rating`                    | number            | Star rating given in the review.                               |
| `recommendability`          | number            | Recommendability score given in the review.                    |
| `text`                      | string            | Text of the review.                                            |
| `reviewedAt`                | string (ISO 8601) | Timestamp when the review was submitted.                       |
| `experiencedDate`           | string (ISO 8601) | Start date and time of the reviewed booking's session.         |
| `experience.id`             | string (UUID)     | Unique identifier of the experience.                           |
| `experience.title`          | string            | Title of the experience.                                       |
| `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.        |
| `reviewer.id`               | string (UUID)     | Unique identifier of the reviewer.                             |
| `reviewer.fullName`         | string            | Full name of the reviewer.                                     |
| `reviewer.emailAddress`     | string            | Email address of the reviewer.                                 |
| `reviewer.loyaltyMemberId`  | string \| null    | Loyalty member identifier associated with the booking, if any. |

## Sample

<Note>Illustrative payload derived from the event schema.</Note>

```json theme={null}
{
  "event": "review.completed",
  "payload": {
    "id": "6f2c1b8e-4d3a-4f5b-9e07-1a2b3c4d5e6f",
    "bookingId": "a4b16eba-f47a-49da-be4f-b6f9e1c01dec",
    "rating": 5,
    "recommendability": 10,
    "text": "The guided hike was the highlight of our stay. Beautiful views and a great guide!",
    "reviewedAt": "2026-02-23T18:05:12.331Z",
    "experiencedDate": "2026-02-21T14:00:00.000Z",
    "experience": {
      "id": "7a78a18a-aa8f-456b-9fef-b43e0814401d",
      "title": "Guided Coastal Hike"
    },
    "brand": {
      "id": "8e12bfdc-a74c-48e2-8a76-2996a359c10c",
      "name": "The Seaside Hotel",
      "tier": "growth",
      "currency": "USD",
      "countryCode": "US",
      "externalReferenceId": "ABC"
    },
    "reviewer": {
      "id": "f0d9c8b7-a6e5-4d43-b2c1-0e9f8a7b6c5d",
      "fullName": "Alice Rivera",
      "emailAddress": "alice@example.com",
      "loyaltyMemberId": null
    }
  }
}
```

## Related endpoints

List an experience's reviews with [Get Experience Reviews](/api-reference/experiences/get-experience-reviews).
