Sabre Hotel Booking API

Reservation management

OpenAPI Specification

sabre-hotel-booking-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Sabre Bargain Finder Max Air Shopping Hotel Booking API
  description: Sabre Bargain Finder Max (BFM) API provides low-fare search capabilities for air shopping, returning optimal flight itineraries with pricing across Sabre's global airline content inventory. Supports one-way, round-trip, and multi-city searches with ATPCO, LCC, and NDC content.
  version: 4.0.0
  contact:
    name: Sabre Developer Support
    url: https://developer.sabre.com/support
  license:
    name: Sabre Developer Agreement
    url: https://developer.sabre.com/
servers:
- url: https://api.sabre.com
  description: Sabre Production API
security:
- BearerAuth: []
tags:
- name: Hotel Booking
  description: Reservation management
paths:
  /v2.0.0/hotels/reservations:
    post:
      operationId: createHotelReservation
      summary: Create a hotel reservation
      description: Books a hotel room and creates a reservation record in Sabre GDS. Returns a confirmation number and hotel-specific PNR locator.
      tags:
      - Hotel Booking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HotelReservationRequest'
      responses:
        '201':
          description: Reservation created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HotelReservationResponse'
        '400':
          description: Bad request or invalid room/rate combination
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2.0.0/hotels/reservations/{confirmationId}:
    get:
      operationId: getHotelReservation
      summary: Retrieve hotel reservation details
      description: Returns full details for an existing hotel reservation.
      tags:
      - Hotel Booking
      parameters:
      - name: confirmationId
        in: path
        required: true
        schema:
          type: string
        description: Hotel reservation confirmation number
      responses:
        '200':
          description: Hotel reservation details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HotelReservationResponse'
        '404':
          description: Reservation not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      operationId: cancelHotelReservation
      summary: Cancel a hotel reservation
      description: Cancels an existing hotel reservation subject to property cancellation policy.
      tags:
      - Hotel Booking
      parameters:
      - name: confirmationId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Reservation cancelled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancellationResponse'
        '404':
          description: Reservation not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    GuestInfo:
      type: object
      required:
      - FirstName
      - LastName
      - Email
      properties:
        Title:
          type: string
        FirstName:
          type: string
        LastName:
          type: string
        Email:
          type: string
          format: email
        Phone:
          type: string
        LoyaltyProgramNumber:
          type: string
    Rate:
      type: object
      properties:
        Amount:
          type: number
          format: double
        CurrencyCode:
          type: string
          example: USD
    CancellationResponse:
      type: object
      properties:
        CancellationNumber:
          type: string
        Status:
          type: string
          enum:
          - CANCELLED
        CancellationFee:
          $ref: '#/components/schemas/Rate'
    HotelReservationRequest:
      type: object
      required:
      - HotelCode
      - RoomTypeCode
      - RatePlanCode
      - CheckIn
      - CheckOut
      - GuestInfo
      properties:
        HotelCode:
          type: string
        RoomTypeCode:
          type: string
        RatePlanCode:
          type: string
        CheckIn:
          type: string
          format: date
        CheckOut:
          type: string
          format: date
        GuestInfo:
          $ref: '#/components/schemas/GuestInfo'
        PaymentInfo:
          $ref: '#/components/schemas/PaymentInfo'
        SpecialRequests:
          type: string
    PaymentInfo:
      type: object
      properties:
        CardType:
          type: string
          enum:
          - VI
          - MC
          - AX
          - DS
        CardNumber:
          type: string
        ExpiryDate:
          type: string
        CardholderName:
          type: string
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
        errorCode:
          type: string
        message:
          type: string
        timeStamp:
          type: string
          format: date-time
    HotelReservationResponse:
      type: object
      properties:
        ConfirmationNumber:
          type: string
        HotelConfirmationNumber:
          type: string
        Status:
          type: string
          enum:
          - CONFIRMED
          - PENDING
          - CANCELLED
        HotelCode:
          type: string
        CheckIn:
          type: string
          format: date
        CheckOut:
          type: string
          format: date
        TotalCost:
          $ref: '#/components/schemas/Rate'
        GuestInfo:
          $ref: '#/components/schemas/GuestInfo'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token obtained from /v2/auth/token