The Query Reservation Detail API allows distributors to retrieve detailed information about existing bookings, including the current status of the reservation. The possible statuses include confirmed, modified, or cancelled, helping distributors track the progress and changes to the booking. This API provides a comprehensive view of individual reservations, allowing distributors to access key details such as guest information, room types, booking dates, and other important data. This API is essential for efficient reservation management, giving distributors the ability to stay informed about the status and details of each booking, enabling them to take appropriate actions when necessary.

POST /reservations HTTP/1.1
URL: {BookingUSB-Endpoint}/reservations
Authorization: 53ac07777cdffac2d53000002d698728ce964432d7167596bc005c5fc
Accept-Encoding: gzip
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8

Reservation Details Request Schema

Request(METHOD: POST)

Level

Field Name

Data Type

Required

Description

Example

1

header

object

Y

 /

 /

2

@supplierId

string

Y

The ID of the hotel supplier in DerbySoft's system.

Max Length: 32

HILTON

2

@distributorId

string

Y

The ID of the distributor in DerbySoft's system

MaxLength: 32

GTA

2

@version

string

Y

Max Length: 20

Version of API

v4

2

@token

string

Y

A unique identifier is used for requests and responses, typically a UUID. MaxLength: 64

Note that this is an echo token, not an access token.

18393849028490234

1

reservationIds

object

Y

 /

 /

2

@distributorResId

string

Y

Distributor's reservation ID. Distributors should keep the ID unique on their system to avoid any potential issues caused by duplicate reservation IDs.

C2084DFL0

2

@derbyResId

string

N

Reservation ID in Derbysoft's system, it's a unique ID as DerbySoft would be splitting the reservation.

D15F893D34DF

2

@supplierResId

string

N

Reservation ID in supplier's system

89389494

Reservation Details Request Example

Reservation Details Request Example
{
    "header": {
      "supplierId": "HILTON",
      "distributorId": "GTA",
      "version": "v4",
      "token": "18393849028490234"
    },
    "reservationIds": {
      "distributorResId": "C2084DFL0",
      "derbyResId": "D15F893D34DF",
      "supplierResId": "89389494"
    }
  }

Reservation Details Response Schema

Response

Level

Field Name

Data Type

Required

Description

Example

1headerobjectY//
2@supplierIdstringY

The ID of the hotel supplier in DerbySoft's system.

Max Length: 32

HILTON
2@distributorIdstringY

The ID of the distributor in DerbySoft's system

MaxLength: 32

GTA
2@versionstringYMaxLength: 20 version of APIv4
2@tokenstringYA unique identifier is used for requests and responses, typically a UUID. MaxLength: 64
Note that this is an echo token, not an access token.
18393849028490234
1reservationsarray[object]N / /
2reservationIdsobjectN / /
3@distributorResIdstringYDistributor's reservation ID. Distributors should keep the ID unique on their system to avoid any potential issues caused by duplicate reservation IDs.C2084DFL0
3@derbyResIdstringYReservation ID in DerbySoft system, This is a unique ID as DerbySoft would be splitting the reservation.D15F893D34DF
3@supplierResIdstringYReservation ID in supplier's system89389494
2
iatastringN / /
2
hotelIdstringYHotel IDs provided by hotel suppliers, only the following characters are allowed. 1. Digits (0-9)  2. Uppercase letters (A-Z)  3. Hyphen ('-')100001 GATHI 00016 PEP-B3T2 B8W7
2
stayRangeobjectY / /
3
@checkinstringYCheck in date expressed YYYY-MM-DD2028-01-01
3@checkoutstringYCheck out date expressed YYYY-MM-DD2028-01-04
2roomCriteriaobjectY / /
3@roomCountintegerYTotal room count per request /
3@adultCountintegerYAdult count per room /
3@childCountintegerNChild count per room 
3@childAgesarrayNFor child ages each child, the array size MUST be the same as the child count. /
2connectionTypeenumNEnum: [Exchange, Standard] Indicates the connection type of products.  Notes: If the field is omitted, it means the Connection Type is Standard.Exchange
2totalobjectY / /
3@amountBeforeTaxnumberN /640
3@amountAfterTaxnumberN /700
2
commissionobjectNIf the Connection Type is "Exchange" and the Rate Model is "Retail", the node will be visible; otherwise, it will disappear./
3@valuenumberN/10
3@typeenumNCommission type Enum: [Percent, Amount]Percent
2
suggestedTotalPriceobjectNNotes: If the connection type is "Exchange" and "Net" Rate Model, the node will be visible; otherwise, it will not appear./
3@amountBeforeTaxnumberN/600
3@amountAfterTaxnumberN/700
2loyaltyAccountobjectN / /
3@programCodestringC
The loyalty program code of the supplierBW
3@accountIdstringC
Loyalty program account ID1234567890123457
2
corpAccountobjectN / /
3@corpProgramCodestringC
Corporate Hotel Program of hotel supplierCR
3@corpIdstringCCorporate ID in the program accountA-1232
2
promoteCodestringNThe promotion code is defined by the hotel, the promotion code is required if making a reservation under the promotion. /
2commentsarray[string]N

Any preference or comment can be communicated in this field

[ "no smoking", "high floor" ]
2
roomRatesarray[object]YMin Item: 1 Max Item: 1 Meal plan, fee, and cancel policy are optional fields as some distributors do not support these in the API. /
3
@roomIdstringYRoom ID in supplier's system10000101
3@rateIdstringYRate ID in supplier's system123456
3@currencystringYCurrency code [ISO-4217]USD
3@amountBeforeTaxarray[number]NThe daily amount rate without tax and fee[ 100, 100, 120 ]
3@amountAfterTaxarray[number]NThe daily amount of rate with tax and fee[ 110, 110, 130 ]
3@mealPlanstringNMeal plan code, refer to the standard meal plan code list.RO
3
@paymentTypeenumNIndicates the product is prepaid to the hotel (PayNow) or pay at the hotel (PayLater).
Enum: [ PayLater, PayNow ]
PayNow
3guaranteeobjectNGuarantee information for this room rate. /
4@guaranteeTypestringC
The type of guarantee method, refers to the standard guarantee type list.CCG
3
feesarray[object]NFee or tax by date range. /
4
dateRangeobjectC
 / /
4@startDatestringCStart date of date range, format with yyyy-MM-dd2028-01-01
5@endDatestringCEnd date of date range, format with yyyy-MM-dd2028-01-04
4
feeobjectC
 / /
5
@namestringCpattern: \w[\w\d]+ starts with a word character (letter, number, or underscore) followed by one or more word characters or digits.Service Charge
5@typeenumCIndicates if the fee or tax is included in the amount before tax or not. Enum: [ Inclusive, Exclusive ]Exclusive
5@amountnumberCAmount value of fee or tax10
5@amountTypestringCIndicates how to charge the tax, 10% per room per night in this example Enum: [ Fix, Percent ]Percent
5@chargeTypestringCEnum: [ PerRoomPerNight, PerPersonPerNight, PerRoomPerStay, PerPersonPerStay ]PerRoomPerNight
5@paymentTypeenumNEnum: [ PayLater, PayNow ] Indicates if the fee is prepaid to hotels(PayNow) or paid at the hotel(PayLater).  Note: The 'paymentType' field will be replaced by 'collectBy' and removed from the API in the future.PayNow
5@collectByenumNEnum: [Distributor, Property] Indicates that the fee (e.g., City Tax, Tourist Tax) should be collected by the hotel(Property) at check-in or by distributors when guests make a reservation(Distributor).

Distributor
5@effectivePersonnumber NIt indicates the fee will be charged starting from which occupancy, such as the "Extra Person Charge" fee. The EffectivePerson is 3, meaning an extra fee will be applied from the third person onward. /
2cancelPolicyobjectNCancellation policy defines what penalty will be charged when a guest cancels the booking at a certain advance time range.  The penalty is related to No-show or a time range before No-show. /
4
@codestringC
Max Length: 128 Code of cancel policyAD100P_100P
4@descriptionstringNMax Length: 1024 The description of the cancellation policyNon Refundable
4cancelPenalties array[object]C
Details about the canceled Penalty /
5@noShowbooleanC
If true, it means the penalty charge applied for No-Show, and the cancellable, cancelDeadline will NOT exist. /
5@cancellablebooleanNIndicates if cancellation is allowed or not. If false, it cannot be canceled. If true, the cancellation deadline will exist. /
5cancelDeadlineobjectN / /
6
@offsetTimeDropTypeenumNEnum: [ BeforeArrival ] An enumerated type indicates when the deadline drop time goes into effect. /
6@offsetTimeUnitenumNEnum: [ D, H ]   /
6@offsetTimeValuenumberNThe number of offset times with the time unit. /
6@deadlinestringNLocal deadline times allowed for cancellation, like 4 PM or 6 PM. /
5penaltyChargeobjectN / /
6@chargeBaseenumNEnum: [ FullStay, NightBase ] If FullStay, it will be a percentage or amount. If NightBase, the nights are required. /
6@nightsnumberNIt exists if the penalty charge is based on the night, like the first night. /
6@amountnumberNIt exists if the penalty charge is a flat charge, like USD 30.00. /
6@percentnumberNIt exists if the penalty charge is percent, like 15.5 means 15.5% /
2bookingChannelstringNSub-distributor ID/
2productAddonsarray[object]NOnly available for some suppliers/
3@typestringC
/DisneyTicket
3@codestringC//
3@datestringCExpressed as YYYY-MM-DD2022-01-01
3@quantityintegerC/1
3@officeIdstringNspecific distributor office/
3rateobjectNOnly available for some suppliers/
4
ageQualifyingTypeobjectN//
5@typeenumCEnum: [Adult, Child]Adult
5@minAgeintegerC/18
5@maxAgeintegerC/18
3currencystringC/USD
3amountBeforeTaxnumberN/123.23
3amountAfterTaxnumberN/134.34
2statusenumYEnum: [ Confirmed, Modified, Cancelled ]
The latest status of the reservation
  • Confirmed - New reservation 
  • Modified -  Modification Reservation
  • Cancelled - Cancellation Reservation
Please combine the status and result fields to determine whether the reservation whether successful, combination examples are as follows:
  • Confirmed + Successful = Booking is successful
  • Confirmed + Failed = Booking is failed
  • Modified + Successful = Modification is successful
  • Modified + Failed = Modification is failed
  • Cancelled + Successful = Cancellation is successful
  • Cancelled + Failed = Cancellation is failed
 /
2cancellationIdstringNCancellation confirmation number in suppliers' systemC89389494
2resultenumYEnum: [ Successful, Failed, Processing ] result of the reservation to send to the supplier /
2failCauseobjectNNote: If the reservation fails, the node will be visible; otherwise, it will not appear. /
3@errorCodestringY

Error Code Appendix

 /
3@supplierErrorCodestringNError code from the supply system /
3@errorMessagestringYError message /

Reservation Details Response Example

Success Response (HTTP Status 200)
{
  "header": {
    "supplierId": "HILTON",
    "distributorId": "GTA",
    "version": "v4",
    "token": "18393849028490234"
  },
  "reservations": [
    {
      "reservationIds": {
        "distributorResId": "C2084DFL0",
        "derbyResId": "D15F893D34DF",
        "supplierResId": "89389494"
      },
      "iata": "string",
      "hotelId": "GATHI",
      "stayRange": {
        "checkin": "2028-01-01",
        "checkout": "2028-01-04"
      },
      "roomCriteria": {
        "roomCount": 2,
        "adultCount": 1,
        "childCount": 2,
        "childAges": [
          4,
          8
        ]
      },
      "connectionType": "Exchange",
      "total": {
        "amountBeforeTax": 640,
        "amountAfterTax": 700
      },
      "commission": {
        "value": 10,
        "type": "Percent"
      },
      "suggestedTotalPrice": {
        "amountBeforeTax": 600,
        "amountAfterTax": 700
      },
      "loyaltyAccount": {
        "programCode": "BW",
        "accountId": "1234567890123457"
      },
      "corpAccount": {
        "corpProgramCode": "CR",
        "corpId": "A-1232"
      },
      "promoteCode": "string",
      "comments": [
        "no smoking",
        "high floor"
      ],
      "roomRates": [
        {
          "roomId": "K1D",
          "rateId": "ODAD01",
          "currency": "USD",
          "amountBeforeTax": [
            100,
            100,
            120
          ],
          "amountAfterTax": [
            110,
            110,
            130
          ],
          "mealPlan": "RO",
          "paymentType": "PayNow",
          "guarantee": {
            "guaranteeType": "CCG"
          },
          "fees": [
            {
              "dateRange": {
                "startDate": "2028-01-01",
                "endDate": "2028-01-04"
              },
              "fee": {
                "name": "Service Charge",
                "type": "Exclusive",
                "amount": 10,
                "amountType": "Percent",
                "chargeType": "PerRoomPerNight",
                "paymentType": "PayNow",
                "collectBy": "Distributor",
                "effectivePerson": 0
              }
            },
            {
              "dateRange": {
                "startDate": "2028-01-01",
                "endDate": "2028-01-04"
              },
              "fee": {
                "name": "City Tax",
                "type": "Exclusive",
                "amount": 5,
                "amountType": "Fix",
                "chargeType": "PerPersonPerNight",
                "paymentType": "PayLater",
                "collectBy": "Property",
                "effectivePerson": 0
              }
            }
          ],
          "cancelPolicy": {
            "code": "AD100P_100P",
            "description": "Non Refundable",
            "cancelPenalties": [
              {
                "noShow": true,
                "cancellable": true,
                "cancelDeadline": {
                  "offsetTimeDropType": "BeforeArrival",
                  "offsetTimeUnit": "D",
                  "offsetTimeValue": 0,
                  "deadline": "string"
                },
                "penaltyCharge": {
                  "chargeBase": "FullStay",
                  "nights": 0,
                  "amount": 0,
                  "percent": 0
                }
              }
            ]
          }
        }
      ],
      "bookingChannel": "string",
      "productAddons": [
        {
          "type": "DisneyTicket",
          "code": "code",
          "date": "2028-01-01",
          "quantity": 1,
          "officeId": "string",
          "rate": {
            "ageQualifyingType": {
              "type": "Adult",
              "minAge": 18,
              "maxAge": 18
            },
            "currency": "USD",
            "amountBeforeTax": 123.23,
            "amountAfterTax": 134.34
          }
        }
      ],
      "status": "Confirmed",
      "cancellationId": "C89389494",
      "result": "Successful",
      "failCause": {
        "errorCode": "string",
        "supplierErrorCode": "string",
        "errorMessage": "string"
      }
    }
  ]
}
Error Response (HTTP Status 403)
{
  "error": "Key not authorized"
}

Error Response (HTTP Status 500)
{
  "errorCode": "InvalidField",
  "errorMessage": "Invalid Message"
}