---
title: "Book the selected room and rate."
method: POST
path: "/api/v1/book"
tags: ["Booking"]
---

# Book the selected room and rate.

`POST /api/v1/book`

Book the selected rate for a given hotel, pass the token received in the price response as part of booking request

## Headers

- `api-key` string, required
- `customer-id` string, required
- `affiliate-id` string, required
- `user-ip` string, required
- `correlation-id` string, required

## Request body

- BookRequest
  - `hotelId` string, required — Priced rate hotel id
  - `priceResponseToken` string, required — Price Response Token
  - `bookingId` string, required — Booking Id as passed by consumer
  - `specialRequests` string[], nullable — Any special requests to be passed while booking rooms
  - `roomsAllocations` RoomAllocation[], required — Room Details to be booked
    - `roomId` string, required
    - `rateId` string, required
    - `guests` Passenger[], required
      - `title` string, nullable
      - `firstName` string, required
      - `lastName` string, required
      - `middleName` string, nullable
      - `suffix` string, nullable
      - `age` integer, required
      - `type` 'Adult' | 'Child', required
      - `email` string, nullable
      - `panCardNumber` string, nullable
      - `passportDetail` Passport
        - `passportNo` string, required
        - `passportIssueDate` string, date-time
        - `passportExpDate` string, date-time
  - `billingInformation` BillingInformation, required
    - `phone` string, required
    - `billingAddress` Address, required
      - `line1` string, required
      - `line2` string, nullable
      - `city` City, required
        - `name` string, nullable
        - `code` string, required
      - `state` State, required
        - `name` string, nullable
        - `code` string, required
      - `country` Country, required
        - `name` string, nullable
        - `code` string, required
      - `postalCode` string, required
    - `email` string, required
  - `leadPassenger` LeadPassenger, required
    - `title` string, nullable
    - `firstName` string, required
    - `lastName` string, required
    - `middleName` string, nullable
    - `suffix` string, nullable
    - `age` integer, required
    - `type` 'Adult' | 'Child', required
    - `panCardNumber` string, nullable
    - `passportDetail` Passport
      - `passportNo` string, required
      - `passportIssueDate` string, date-time
      - `passportExpDate` string, date-time
    - `email` string, email, required
  - `creditCard` CreditCard
    - `number` string, required — Credit card number
    - `nameOnCard` string, required — Name on the credit card
    - `issuer` string, required — Issuer of the credit card
    - `contactInfo` BillingInformation, required
      - `phone` string, required
      - `billingAddress` Address, required
        - `line1` string, required
        - `line2` string, nullable
        - `city` City, required
          - `name` string, nullable
          - `code` string, required
        - `state` State, required
          - `name` string, nullable
          - `code` string, required
        - `country` Country, required
          - `name` string, nullable
          - `code` string, required
        - `postalCode` string, required
      - `email` string, required
    - `cvv` string, required — CVV details of the card
    - `expiryMonth` string, required — Expiry month
    - `expiryYear` string, required — Expiry year
  - `checkInDate` string, date-time — Hotel Check in Date
  - `checkOutDate` string, date-time — Hotel Check out Date

## Response `200`

Success

- BookResponse
  - `bookingStatus` 'Confirmed' | 'Pending' | 'Failed' | 'Planned' | 'ConfirmationPending' | 'Created' | 'Initiated'
  - `bookingId` string — Unique booking identifier, to be used for retrieving, cancelling bookings
  - `providerConfirmationNumber` string — Confirmation number from provider
  - `hotelConfirmationNumber` string, nullable — Hotel conifrmation number
  - `roomConfirmation` RoomConfirmationInfo[] — Details of booked room(s)
    - `rateId` string
    - `roomId` string
    - `providerConfirmationNumber` string
    - `hotelConfirmationNumber` string, nullable
    - `bookingStatus` 'Confirmed' | 'Pending' | 'Failed' | 'Planned' | 'ConfirmationPending' | 'Created' | 'Initiated'
    - `guests` Passenger[]
      - `title` string, nullable
      - `firstName` string, required
      - `lastName` string, required
      - `middleName` string, nullable
      - `suffix` string, nullable
      - `age` integer, required
      - `type` 'Adult' | 'Child', required
      - `email` string, nullable
      - `panCardNumber` string, nullable
      - `passportDetail` Passport
        - `passportNo` string, required
        - `passportIssueDate` string, date-time
        - `passportExpDate` string, date-time
  - `cancellationToken` string — Token to be used in cancellation request

## Other responses

- `400` — ClientSideError
- `500` — ServerSideError

---

[API](https://skmtc.net/zentrumhub/apis/hotelcontent-api.md) · [All operations](https://skmtc.net/zentrumhub/apis/hotelcontent-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zentrumhub/hotelcontent-api/revisions/9fa4830db488/schema)
