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

# Get Booking Details

> Retrieve the complete itinerary, rooms, guests, pricing, supplier information, and booking timeline.

Use this endpoint when your application needs the complete booking record:
itinerary pages, confirmation emails, support tools, customer history, and
finance reconciliation.

## Request Example

<RequestExample>
  ```bash theme={null}
  curl "$UNIFYSTAYS_BASE_URL/hotels/book/ubk_eGQ0dW9uV1Vi/details" \
    -H "x-api-key: $UNIFYSTAYS_API_KEY" \
    -H "language: en"
  ```
</RequestExample>

## Use the Detail Record

The response includes:

* Unified `status` and `is_terminal`.
* Hotel information and stay dates.
* Rooms, guests, pricing, cancellation information, and supplier details.
* Polling information, timeline events, booking attempts, failure fields, and
  timestamps.

For polling an in-progress request, prefer the lighter
[Get Booking Status](/api-reference/get-booking-status) endpoint and fetch this
detail record when your UI needs itinerary content.

<Warning>
  Booking details can contain guest personal data and supplier confirmation
  information. Limit access to trusted backend services and authorized support
  users.
</Warning>

The OpenAPI section below provides the complete booking detail schema.


## OpenAPI

````yaml reference/openapi.json GET /hotels/book/{booking_id}/details
openapi: 3.0.0
info:
  title: Unifystays API
  description: >-
    One unified hotel API across suppliers. Integrate once, then enable and
    manage suppliers from the Unifystays portal.
  version: '1.0'
  contact: {}
servers:
  - url: https://api-sandbox.unifystays.com
    description: Sandbox
  - url: https://api.unifystays.com
    description: Production
security:
  - x-api-key: []
tags: []
paths:
  /hotels/book/{booking_id}/details:
    get:
      tags:
        - Hotels
      summary: Get full booking details
      description: >-
        Returns booking status, hotel info, rooms, guests, provider details, and
        pricing.
      operationId: HotelBookingController_getBookingDetail
      parameters:
        - name: booking_id
          required: true
          in: path
          schema:
            type: string
            example: ubk_eGQ0dW9uV1Vi
        - name: language
          description: Enter language code(ex. en)
          in: header
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HotelBookingDetailResponseDto'
        '404':
          description: Booking not found.
components:
  schemas:
    HotelBookingDetailResponseDto:
      type: object
      properties:
        success:
          type: boolean
          example: true
        message:
          type: string
          example: Booking details retrieved.
        data:
          $ref: '#/components/schemas/BookingDetailDataDto'
      required:
        - success
        - message
        - data
    BookingDetailDataDto:
      type: object
      properties:
        booking_id:
          type: string
          example: ubk_eGQ0dW9uV1Vi
        status:
          type: string
          enum:
            - PROCESSING
            - CONFIRMED
            - ON_HOLD
            - FAILED
            - CANCELLATION_PENDING
            - CANCELLED
          example: CONFIRMED
        is_terminal:
          type: boolean
          example: true
        hotel:
          $ref: '#/components/schemas/BookingHotelInfoDto'
        stay:
          $ref: '#/components/schemas/BookingStayDto'
        rooms:
          type: array
          items:
            $ref: '#/components/schemas/BookingRoomDetailDto'
        pricing:
          $ref: '#/components/schemas/BookingPricingDto'
        provider:
          $ref: '#/components/schemas/BookingProviderInfoDto'
        polling:
          $ref: '#/components/schemas/BookingPollingDto'
        timeline:
          type: array
          items:
            $ref: '#/components/schemas/BookingTimelineEventDto'
        attempts:
          type: array
          items:
            $ref: '#/components/schemas/BookingAttemptSummaryDto'
        metadata:
          type: object
          additionalProperties: true
          nullable: true
        failure_code:
          type: object
          nullable: true
        failure_message:
          type: object
          nullable: true
        created_at:
          type: string
          example: '2026-04-15T12:12:11.000Z'
        updated_at:
          type: string
          example: '2026-04-15T12:12:11.000Z'
        completed_at:
          type: object
          example: '2026-04-15T12:15:11.000Z'
          nullable: true
        total_payable_now:
          type: number
          example: 604577
          deprecated: true
        next_poll_after_ms:
          type: object
          nullable: true
          deprecated: true
      required:
        - booking_id
        - status
        - is_terminal
        - hotel
        - stay
        - rooms
        - pricing
        - provider
        - polling
        - timeline
        - attempts
        - created_at
        - updated_at
        - total_payable_now
    BookingHotelInfoDto:
      type: object
      properties:
        hotel_id:
          type: string
          example: '13553916'
        hotel_name:
          type: string
          example: Ramada Plaza by Wyndham Dubai Deira
        address:
          type: object
          example: Corner Of Abu Baker Al Siddique Street
          nullable: true
        city:
          type: object
          example: Dubai
          nullable: true
        state:
          type: object
          example: Dubai
          nullable: true
        country:
          type: object
          example: United Arab Emirates
          nullable: true
        postal_code:
          type: object
          example: '00000'
          nullable: true
        phone:
          type: object
          example: +971 4 XXX XXXX
          nullable: true
        email:
          type: object
          example: info@ramada.com
          nullable: true
        stars:
          type: object
          example: 4
          nullable: true
        latitude:
          type: object
          example: 25.2698
          nullable: true
        longitude:
          type: object
          example: 55.3095
          nullable: true
        chain:
          type: object
          example: Wyndham
          nullable: true
        hotel_type:
          type: object
          example: Hotel
          nullable: true
        main_image_url:
          type: object
          example: https://cdn.unifystays.com/hotels/13553916/main.jpg
          nullable: true
        checkin_policy:
          type: object
          additionalProperties: true
          nullable: true
      required:
        - hotel_id
        - hotel_name
    BookingStayDto:
      type: object
      properties:
        check_in:
          type: object
          example: '2026-05-26'
          nullable: true
        check_out:
          type: object
          example: '2026-05-28'
          nullable: true
        nights:
          type: object
          example: 2
          nullable: true
        rooms_count:
          type: object
          example: 1
          nullable: true
        guests_count:
          type: object
          example: 2
          nullable: true
        adults_count:
          type: object
          example: 2
          nullable: true
        children_count:
          type: object
          example: 0
          nullable: true
    BookingRoomDetailDto:
      type: object
      properties:
        room_ref:
          type: string
          example: '1'
        unifystays_room_id:
          type: string
          example: '1321374576'
        guests:
          type: array
          items:
            $ref: '#/components/schemas/BookingGuestDto'
      required:
        - room_ref
        - unifystays_room_id
        - guests
    BookingPricingDto:
      type: object
      properties:
        total_payable_now:
          type: number
          example: 604577
          description: Total payable at booking (minor units).
        currency:
          type: object
          example: INR
          nullable: true
      required:
        - total_payable_now
    BookingProviderInfoDto:
      type: object
      properties:
        code:
          type: string
          example: TRIPJACK
        booking_id:
          type: object
          example: TJ202487947162
          nullable: true
        provider_hotel_id:
          type: object
          example: hotel_h_13553916
          nullable: true
        raw_status:
          type: object
          example: SUCCESS
          nullable: true
        message:
          type: object
          nullable: true
        booking_code:
          type: object
          example: BC_abc123xyz
          nullable: true
        hotel_confirmation_number:
          type: object
          example: HCN-482910
          nullable: true
        hotel_confirmation_status:
          type: object
          example: Confirmed
          nullable: true
        hotel_confirmation_note:
          type: object
          nullable: true
        hotel_contact_phone:
          type: object
          nullable: true
        hotel_contact_name:
          type: object
          nullable: true
        cancellation_charge:
          type: object
          example: 29030
          description: Cancellation penalty in minor units.
          nullable: true
        cancellation_currency:
          type: object
          example: AED
          nullable: true
        post_booking_cancellation_policy:
          type: object
          additionalProperties: true
          nullable: true
      required:
        - code
    BookingPollingDto:
      type: object
      properties:
        next_poll_after_ms:
          type: object
          nullable: true
          example: 5000
        next_poll_at:
          type: object
          nullable: true
          example: '2026-04-15T12:12:16.000Z'
        poll_deadline_at:
          type: object
          example: '2026-04-15T12:15:11.000Z'
          nullable: true
        last_polled_at:
          type: object
          nullable: true
          example: '2026-04-15T12:12:14.000Z'
    BookingTimelineEventDto:
      type: object
      properties:
        event_type:
          type: string
          example: BOOKING_CREATED
        from_status:
          type: object
          nullable: true
          example: null
        to_status:
          type: object
          nullable: true
          example: PROCESSING
        message:
          type: object
          nullable: true
        created_at:
          type: string
          example: '2026-04-15T12:12:11.000Z'
        event_payload:
          type: object
          additionalProperties: true
          nullable: true
      required:
        - event_type
        - created_at
    BookingAttemptSummaryDto:
      type: object
      properties:
        attempt_type:
          type: string
          example: DISPATCH
        provider_code:
          type: string
          example: TRIPJACK
        success:
          type: boolean
          example: true
        raw_status:
          type: object
          nullable: true
        message:
          type: object
          nullable: true
        started_at:
          type: object
          nullable: true
          example: '2026-04-15T12:12:11.000Z'
        ended_at:
          type: object
          nullable: true
          example: '2026-04-15T12:12:14.120Z'
        duration_ms:
          type: object
          nullable: true
          example: 3120
          description: Duration milliseconds.
        created_at:
          type: string
          example: '2026-04-15T12:12:11.000Z'
      required:
        - attempt_type
        - provider_code
        - success
        - created_at
    BookingGuestDto:
      type: object
      properties:
        title:
          type: string
          example: Mr
        first_name:
          type: string
          example: Shubham
        last_name:
          type: string
          example: Gupta
        type:
          type: string
          example: Adult
        pan:
          type: object
          example: AAACA1111A
          nullable: true
        passport:
          type: object
          example: P1234567
          nullable: true
      required:
        - title
        - first_name
        - last_name
        - type
  securitySchemes:
    x-api-key:
      type: apiKey
      in: header
      name: x-api-key
      description: Environment-specific API key created in the Unifystays portal

````