Traveloka 3.4 Booking - BookingSummary API

The 3.4 Booking - BookingSummary API from Traveloka — 1 operation(s) for 3.4 booking - bookingsummary.

Documentation

Specifications

Other Resources

OpenAPI Specification

traveloka-3-4-booking-bookingsummary-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Traveloka Atlas 3.4 Booking - BookingSummary API
  version: ''
  description: "Traveloka Specification API for Accommodation Provider\n\n**General Notes**\n* Please ensure that the endpoint is configured to connect using **HTTPS via port 443.**\n* For fields with type \"String\", if there's no value, do not return empty string (e.g. \"\"), instead do not return the field at all\n\nThis API uses custom Basic Authentication.\n\nHow to get a token:\n- Combine username and password using a colon: [username:password]\n- Encode that using Base64\n- Example:\n  ```\n  echo -n 'user:pass' | base64\n  -> dXNlcjpwYXNz\n  ```\n\nThen use:\n```\nAuthorization: Basic dXNlcjpwYXNz\n```\n"
servers:
- url: http://localhost:8080
  description: Generated server url
security: []
tags:
- name: 3.4 Booking - BookingSummary
paths:
  /booking-summary:
    post:
      tags:
      - 3.4 Booking - BookingSummary
      summary: Get booking summary
      description: This operation is for Traveloka to retrieve the summary of a booking.
      operationId: bookingSummary
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookingSummaryRequest'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingSummaryResponse'
              examples:
                Success status response:
                  summary: Booking summary
                  description: Success status response
                  value:
                    uniqueId: 2342454-0
                    bookingToken: '1234567890'
                    providerHotelId: '1234567890'
                    status: NOT_BOOKED
                    providerRoomBookingSummaryList:
                    - availabilityToken: ROOM12345
                      providerHotelRoomId: '1234567890'
                      numAdults: 2
                      numChildren: 1
                      refundable: true
                      sellingRate:
                        currency: IDR
                        totalFare: 1000000
                        taxes: 100000
                        fees: 50000
                      additionalFees:
                        mandatoryFee:
                        - 5
                        mandatoryTax:
                        - 5
                        resortFee:
                        - 5
                        countryTaxFee:
                        - 5
                      cancellationPolicy:
                        cancellationPolicyDescription: string
                        providerCancellationPolicyInfoList:
                        - cancelDateTime: '2018-08-27T00:00:00.000+08:00'
                          cancellationFee: 120
                          currency: USD
                          nightCount: 0
                      breakfastIncluded: true
                      mealPlan:
                        code: RO
                        pax:
                          adults: 2
                          children: 1
                      wifiIncluded: true
                      roomBookingId: '1234567890'
                      status: NOT_BOOKED
                    totalRate:
                      currency: IDR
                      totalFare: 1000000
                      taxes: 100000
                      fees: 50000
                    guests:
                    - firstName: John
                      lastName: Doe
                      title: MR
                      passportNo: A12345678
                      passportCountryCode: ID
                Status 200 with error example:
                  summary: This example is using BOOKING_NOT_CONFIRMED error
                  description: Status 200 with error example
                  value:
                    requestId: requestId
                    status: FAILED
                    error:
                      errorId: BOOKING_NOT_CONFIRMED
                      errorMessage: Booking is not confirmed
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingSummaryErrorResponse'
              examples:
                Error 400 example:
                  summary: This example is using INVALID_REQUEST_FIELD error
                  description: Error 400 example
                  value:
                    requestId: requestId
                    status: FAILED
                    error:
                      errorId: INVALID_REQUEST_FIELD
                      errorMessage: Invalid request field
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingSummaryErrorResponse'
              examples:
                Error 401 example:
                  summary: This example is using AUTHENTICATION_FAILED error
                  description: Error 401 example
                  value:
                    requestId: requestId
                    status: FAILED
                    error:
                      errorId: AUTHENTICATION_FAILED
                      errorMessage: Authentication failed
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingSummaryErrorResponse'
              examples:
                Error 429 example:
                  summary: This example is using TOO_MANY_REQUESTS error
                  description: Error 429 example
                  value:
                    requestId: requestId
                    status: FAILED
                    error:
                      errorId: TOO_MANY_REQUESTS
                      errorMessage: Too many requests
        '500':
          description: Something went wrong
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingSummaryErrorResponse'
              examples:
                Error 500 example:
                  summary: This example is using UNKNOWN_SERVER_ERROR error
                  description: Error 500 example
                  value:
                    requestId: requestId
                    status: FAILED
                    error:
                      errorId: UNKNOWN_SERVER_ERROR
                      errorMessage: Unknown server error
      servers:
      - url: http://localhost:8080
        description: Generated server url
components:
  schemas:
    HotelCancellationPolicy:
      type: object
      properties:
        cancellationPolicyDescription:
          type: string
          description: Description for cancellation policy
        providerCancellationPolicyInfoList:
          type: array
          description: List of cancellation policy information
          items:
            $ref: '#/components/schemas/HotelCancellationPolicyInfo'
    ChargeItem:
      required:
      - amount
      - currency
      type: object
      properties:
        currency:
          type: string
          description: Currency of the charge item, e.g., USD, IDR
          example: USD
        amount:
          type: number
          description: Amount of the charge item
          format: double
          example: 100
    BookingSummaryErrorResponse:
      required:
      - error
      - status
      - uniqueId
      type: object
      properties:
        uniqueId:
          type: string
          description: Traveloka Booking ID reference
          example: 2342454-0
        status:
          type: string
          description: "    Booking status. Expected output is one of the following:\n\n    FAILED → return FAILED if retrieving booking status is failed\n"
          example: FAILED
          enum:
          - FAILED
        error:
          allOf:
          - $ref: '#/components/schemas/Error'
          - description: For complete error enums, please check on FAQ > Error Object
    Error:
      type: object
      properties:
        errorId:
          type: string
        errorMessage:
          type: string
    HotelBookingSummaryResponse:
      required:
      - availabilityToken
      - numAdults
      - numChildren
      - providerHotelRoomId
      - refundable
      - sellingRate
      - status
      type: object
      properties:
        availabilityToken:
          type: string
          description: "  Token/ID for this room type/price. This is passed from room list search request.\n  Availability token does not depend on the number of rooms\n"
          example: ROOM12345
        providerHotelRoomId:
          type: string
          description: Provider hotel room ID
          example: '1234567890'
        numAdults:
          type: integer
          description: Number of adults that can stay in this room.
          format: int32
          example: 2
        numChildren:
          type: integer
          description: Number of children that can stay in this room.
          format: int32
          example: 1
        refundable:
          type: boolean
          description: Indicate yes if this room type is refundable upon cancellation.
          example: true
        sellingRate:
          allOf:
          - $ref: '#/components/schemas/HotelRoomRate'
          - description: Recommended price for this room type in currency provided by the request
        additionalFees:
          allOf:
          - $ref: '#/components/schemas/AdditionalFees'
          - description: The fees collected by the property. The values for each type of fee are the total for that type.
        cancellationPolicy:
          allOf:
          - $ref: '#/components/schemas/HotelCancellationPolicy'
          - description: Cancellation policy for this room type. Mandatory if refundable is true. Expected behavior is that all rooms have the same cancellation policy.
        breakfastIncluded:
          type: boolean
          description: Identifier is breakfast included in this room booking.
          example: true
          deprecated: true
        mealPlan:
          allOf:
          - $ref: '#/components/schemas/MealPlan'
          - description: Meal plan for this room booking.
        wifiIncluded:
          type: boolean
        roomBookingId:
          type: string
          description: Room Booking ID, this ID will be used for room cancellation in one booking.
          example: '1234567890'
        status:
          type: string
          description: "   Provider hotel room booking status. Expected output is one of the following:\n   BOOKED → Return BOOKED if the accommodation allotment for\n            this booking has been reserved and is awaiting payment.\n   ISSUED → return ISSUED if the issuance process succeed.\n   CANCELLED → return CANCELLED if the booking is canceled.\n   UNKNOWN → return UNKNOWN if the booking status failed.\n   PENDING → return PENDING if you are unable to confirm\n             if booking is successful/failed within one minute.\n"
          enum:
          - NOT_BOOKED
          - BOOKED
          - ISSUED
          - CANCELLED
          - UNKNOWN
          - PENDING
          - ATTENTION_NEEDED
    HotelCancellationPolicyInfo:
      required:
      - cancelDateTime
      - cancellationFee
      - currency
      type: object
      properties:
        cancelDateTime:
          type: string
          description: 'Date time which cancellation fee will start to take place.


            The allowed format is YYYY-MM-DDThh:mm:ss.nnnZ.


            Example:


            cancelDateTime: 2028-01-01T00:00:00.000Z


            cancellationFee: 120 (USD)


            means, cancellation after 01-Jan-2028 will impose $120 cancellation fee.

            '
          example: '2028-01-01T00:00:00.000Z'
        cancellationFee:
          type: number
          description: Cancellation fee for all rooms all nights
          format: double
          example: 120
        nightCount:
          type: integer
          description: 'Cancellation fee in room night.


            Example: nightCount = 1 means cancellation fee is one room night.


            This field is not mandatory if @cancellationFee is already filled in.


            But if @nightCount is filled in, @cancellationFee MUST also be filled in.

            '
          format: int32
        currency:
          type: string
          description: Currency of the cancellation fee
          example: USD
    MealPlan:
      required:
      - code
      - pax
      type: object
      properties:
        code:
          type: string
          description: Mealplan codes. See FAQ - Mealplan for all available enums.
          example: RO
          enum:
          - RO
          - BF
          - LU
          - DI
          - HB
          - HB_BF_LU
          - HB_BF_DI
          - HB_LU_DI
          - FB
          - AI
        pax:
          $ref: '#/components/schemas/PiMealPlanPax'
      description: Meal plan for this room, e.g. if the booking is for 2 rooms 3 night, the mealPlan should cover for 1 room 1 night
    PiMealPlanPax:
      required:
      - adults
      type: object
      properties:
        adults:
          type: integer
          description: "Number of adult pax. \n\nNote: Adult pax can be consumed by child guests. \n\nFor example, if the returned mealPax is 3 adults, and the guest consists of 2 adults and 1 child, it is permissible.\n"
          format: int32
          example: 2
        children:
          type: integer
          description: "Number of child pax\n\nNote: Child pax can not be consumed by adult guests. \n"
          format: int32
          example: 1
      description: Pax applicable to the mealPlan. Mandatory for all mealPlan, except Room Only.
    BookingSummaryRequest:
      type: object
      properties:
        uniqueId:
          type: string
          description: Traveloka booking ID. Will not be mandatory if already have issuanceId
          example: 20214324-0
        availabilityToken:
          type: string
          description: Provider availability token
          example: '12312312'
        bookingToken:
          type: string
          description: Provider booking token
          example: '12312312'
        issuanceId:
          type: string
          description: Provider issuance id (itinerary ID). This field will be mandatory if booking has been issued
          example: '12312312'
    AdditionalFees:
      type: object
      properties:
        mandatoryFee:
          allOf:
          - $ref: '#/components/schemas/ChargeItem'
          - description: Mandatory fees are collected by the property at check-in or check-out.
        mandatoryTax:
          allOf:
          - $ref: '#/components/schemas/ChargeItem'
          - description: Mandatory taxes are collected by the property at check-in or check-out.
        resortFee:
          allOf:
          - $ref: '#/components/schemas/ChargeItem'
          - description: Resort fees are charged for amenities and extras and collected by the property at check-in or check-out.
        countryTaxFee:
          allOf:
          - $ref: '#/components/schemas/ChargeItem'
          - description: Country tax fee is collected by the property at check-in or check-out.
    HotelBookingGuest:
      required:
      - firstName
      type: object
      properties:
        firstName:
          type: string
          description: First name of the guest
          example: John
        lastName:
          type: string
          description: Last name of the guest
          example: Doe
        title:
          type: string
          description: Title of the guest
          enum:
          - MR
          - MRS
          - MISS
          - OTHERS
        passportNo:
          type: string
          description: Passport number of the guest
          example: A12345678
        passportCountryCode:
          type: string
          description: Country code of the passport
          example: ID
      description: 'In the guest node, the following information must be included: firstName, lastName.'
    HotelRoomRate:
      required:
      - currency
      - fees
      - taxes
      - totalFare
      type: object
      properties:
        currency:
          type: string
          description: Currency code, e.g. IDR, USD
          example: IDR
        totalFare:
          type: number
          description: Total fare (including taxes, fees, and commission). If two rooms are requested in the specs, this totalFare will be for two rooms.
          format: double
          example: 1000000
        taxes:
          type: number
          description: Total taxes amount
          format: double
          example: 100000
        fees:
          type: number
          description: Total fees amount
          format: double
          example: 50000
    BookingSummaryResponse:
      required:
      - bookingToken
      - guests
      - providerHotelId
      - providerRoomBookingSummaryList
      - status
      - totalRate
      - uniqueId
      type: object
      properties:
        uniqueId:
          type: string
          description: Traveloka Booking ID reference
          example: 2342454-0
        bookingToken:
          type: string
          description: Provider booking token
          example: '1234567890'
        providerHotelId:
          type: string
          description: Provider hotel ID
          example: '1234567890'
        status:
          type: string
          description: "    Booking status. Expected output is one of the following:\n\n    BOOKED → Return BOOKED if the accommodation allotment for this booking has been reserved and is awaiting payment\n\n    ISSUED → return ISSUED if the issuance process succeed\n\n    CANCELLED → return CANCELLED if the booking is canceled\n\n    FAILED → return FAILED if the booking status failed\n\n    PENDING → return PENDING if you are unable to confirm if booking is successful/failed within one minute\n"
          enum:
          - NOT_BOOKED
          - BOOKED
          - ISSUED
          - CANCELLED
          - FAILED
          - PENDING
        providerRoomBookingSummaryList:
          type: array
          description: Booking status for each rooms in the booking
          items:
            $ref: '#/components/schemas/HotelBookingSummaryResponse'
        totalRate:
          allOf:
          - $ref: '#/components/schemas/HotelRoomRate'
          - description: Total rate for the booking
        guests:
          type: array
          description: List of guests in the booking
          items:
            $ref: '#/components/schemas/HotelBookingGuest'
        error:
          allOf:
          - $ref: '#/components/schemas/Error'
          - description: For complete error enums, please check on FAQ > Error Object
  securitySchemes:
    basicAuth:
      type: http
      description: 'Custom Basic Auth format:

        - Format: username:password

        - Encode with Base64

        - Send in header: Authorization: Basic base64(username:password)

        '
      scheme: basic
x-tagGroups:
- name: Traveloka Atlas API (1.0)
  tags:
  - 1.1 Content - Hotel & Room
  - 2.1 Search - HotelList
  - 2.2 Search - RoomList
  - 2.3 Search - BulkRoomList
  - 3.1 Booking - Book
  - 3.2 Booking - IssueCheck
  - 3.3 Booking - Issue
  - 3.4 Booking - BookingSummary
  - 3.5 Booking - Cancel