---
title: "Get experience booking details"
method: GET
path: "/experiences/bookings/{bookingId}"
tags: ["Bookings"]
---

# Get experience booking details

`GET /experiences/bookings/{bookingId}`

## Request

- Base URL: `https://api.liteapi.travel/v3.0`
- URL: `https://api.liteapi.travel/v3.0/experiences/bookings/{bookingId}`
- Auth: API key in header `X-API-Key`

## Overview

Retrieve the current state of an experience booking by its booking ID, including status, pricing, and voucher details once available.

## When to Use

- **Poll for confirmation** - Check whether a booking has moved from `PENDING_CONFIRMATION` to `CONFIRMED`
- **Booking details page** - Display status, price, and voucher to the guest
- **Support queries** - Look up a booking's current state

## What You Get

- **`status`** - Current booking status (`PENDING_CONFIRMATION`, `CONFIRMED`, `FAILED`, `CANCELLED`)
- **`voucher`** - Ticket/reference details, once available
- **`price`** / **`commission`** / **`clientCommission`** - Your price and earnings for this booking
- **Cancellation details** - `refund`, `cancellationRequestedAt`, `cancelledAt`, `refundProcessedAt`, when applicable

## Quick Start

GET with the `bookingId` from `POST /experiences/bookings`. Poll until `status` is `CONFIRMED` (or use webhooks), or retrieve the voucher once available.

## Error codes

Product-operation codes are listed below. Shared authentication/access/rate-limit middleware can return common codes such as 401, 40301 or 4290. HTTP status and error code are separate; do not parse message text.

| Code | Meaning |
| --- | --- |
| 74001 | booking not found |
| 74002 | invalid booking retrieval request |
| 74003 | booking retrieval request is unauthorized |
| 74099 | failed to retrieve booking |

## Path parameters

- `bookingId` string, required

## Response `200`

Booking details

- ExperienceBookingResponse
  - `data` ExperienceBookingData, required
    - `bookingId` string: LiteAPI booking identifier.
    - `prebookId` string: LiteAPI prebook session that created this booking.
    - `status` 'PENDING_CONFIRMATION' | 'CONFIRMED' | 'FAILED' | 'CANCELLED'
    - `providerStatus` string: Detailed booking status, when available.
    - `cartId` string: Shopping cart identifier from the provider checkout session.
    - `experienceBookingId` string: Internal booking identifier from the provider checkout session.
    - `providerBookingId` string: Provider-side booking reference hash.
    - `providerBookingReference` string: Booking reference, when available. Retained after cancellation.
    - `tourId` integer: Provider tour identifier.
    - `optionId` integer: Chosen tour option from booking-options.
    - `dateTime` string, date-time: Booked slot start time.
    - `price` number: Price charged via Stripe and persisted on the booking.
    - `commission` number: Your earnings on this booking.
    - `clientCommission` number: Your earnings on this booking.
    - `currency` string: ISO 4217 currency code for all monetary amounts on this booking.
    - `voucherCode` string: Discount voucher code applied to this booking, if any.
    - `voucherTotalAmount` number: Amount covered by the discount voucher. Zero when no voucher was applied.
    - `paymentStatus` string: Stripe payment lifecycle status (e.g. `succeeded`, `requires_capture`).
    - `paymentTransactionId` string: Stripe PaymentIntent transaction identifier.
    - `cancellationRequestedAt` string, date-time, nullable: When cancellation was requested on this booking, if any.
    - `cancelledAt` string, date-time, nullable: When this booking was fully cancelled, if applicable.
    - `refundProcessedAt` string, date-time, nullable: When the refund for this booking's cancellation was processed, if applicable.
    - `refund` ExperienceCancellationRefundResponse
      - `cancellationFee` number
      - `refundAmount` number
      - `refundType` string
      - `estimateConfidence` string
      - `currency` string
      - `sellingPrice` number
    - `customTags` object: Optional bag of up to 5 user-defined key/value labels persisted with the booking. Keys must match `^[A-Z0-9_-]+$`; values are strings up to 255 characters.
    - `voucher` object, nullable: Provider voucher payload available after the booking is confirmed. Structure varies by provider; known fields for the current provider are listed below, but treat this object as provider-dependent.
      - `bookingReference` string
      - `ticketUrl` string
      - `ticketHash` string
      - `supplierEmergencyPhoneNumber` string: Supplier's emergency contact phone number. Not the traveler's phone number.
      - `supplierEmergencyEmail` string: Supplier's emergency contact email. This is not, and must never be treated as, the traveler's/customer's email address.
      - `supplierBookingCodes` object[]: One entry per ticket, when the provider issues per-ticket codes.
        - `ticketHash` string
        - `label` string
        - `type` string
        - `code` string
        - `pricingCategoryId` integer
    - `experienceSnapshot` object, nullable: Versioned, provider-neutral snapshot of the tour/booking as it looked at booking time, for rendering post-booking pages (confirmation, manage-booking) without re-fetching the tour. `version: 2` is the active schema below. Deprecated `version: 1` top-level fields (`title`, `rating`, `media`, `startingLocation`, `schedule`, `guide`, `payment`, `cancellationPolicy`) may still appear on bookings made before the V2 migration — read them for old data, don't rely on them for new integrations.
      - `version` integer: Snapshot schema version. `2` is current.
      - `capturedAt` string, date-time, nullable
      - `contentLanguage` string, nullable
      - `isPartial` boolean: True if this snapshot is missing data (e.g. captured before all tour content was available).
      - `product` object, nullable
        - `title` string, nullable
        - `optionTitle` string, nullable
        - `primaryImageUrl` string, nullable
        - `rating` object, nullable
          - `value` number, nullable
          - `scale` number, nullable
          - `count` integer, nullable
      - `selection` object, nullable
        - `serviceType` 'driver' | 'guide' | 'host' | 'instructor' | 'audio_guide' | 'other', nullable
        - `language` object, nullable
          - `mode` string, nullable
          - `code` string, nullable
        - `participants` object[]
          - `ticketCategory` string
          - `label` string
          - `quantity` integer
      - `fulfilment` object, nullable
        - `meetingPoint` object, nullable
          - `instructions` string, nullable
          - `latitude` number, nullable
          - `longitude` number, nullable
          - `coordinatePrecision` string, nullable
        - `pickup` object, nullable: Present when the guest selected a pickup location during checkout.
          - `selectedAddress` string, nullable
          - `latitude` number, nullable
          - `longitude` number, nullable
          - `instructions` string, nullable
        - `dropOffInstructions` string, nullable
      - `customerInstructions` object, nullable
        - `additionalInformation` string[]
        - `itemsToBring` string[]
        - `notAllowed` string[]
        - `notSuitableFor` string[]
        - `inclusions` string[]
        - `exclusions` string[]
      - `cancellationTerms` object, nullable
        - `cancellable` boolean, nullable
        - `refundable` boolean, nullable
        - `partlyRefundable` boolean, nullable
        - `feeUnit` string, nullable
        - `feeValue` number, nullable
        - `offsetMinutes` integer, nullable
        - `summary` string, nullable
        - `freeCancellationUntil` string, nullable
      - `supplierEmergencyContact` object, nullable: Supplier's emergency contact for this booking. Not the traveler's/customer's contact details.
        - `email` string, nullable
        - `phone` string, nullable
        - `capturedAt` string, date-time, nullable
        - `source` 'provider_voucher' | 'provider_booking', nullable

## Other responses

- `400`: Invalid booking retrieval request. Code 74002.
- `401`: Authentication failed. Shared API-key middleware uses code 401; product handlers can use their operation-specific unauthorized code listed on the endpoint.
- `403`: Access denied. Shared access middleware uses common codes; product-specific forbidden codes are listed on the endpoint.
- `404`: Booking not found or does not belong to this account. Code 74001.
- `429`: Shared Dispatcher request limit exceeded. Code 4290; this is not an Experiences operation code.
- `500`: Failed to retrieve the locally stored booking. Code 74099.

---

[API](https://skmtc.dev/liteapi/apis/api-experiences.md) - [All operations](https://skmtc.dev/liteapi/apis/api-experiences/llms.txt) - [OpenAPI document](https://skmtc.dev/liteapi/apis/api-experiences/revisions/40074513d3a2?raw)
