Implementation Guide - Ratefox V2

🔧 Introduction

RateFox is an advanced solution built to empower travel companies by optimizing booking profitability in real time.

RateFox integrates seamlessly into your existing booking flow with a single API call, made just before the Booking Request. This implementation guide will walk you through each step required to successfully integrate RateFox into your system.

👍

Notes and Tips :

Recommended Guides prior to Implementation / Evaluation -

In this guide, you will find detailed information on:

  • ✅ Authentication Method
  • 🔄 Request and Response Structure
  • 🧾 Field Descriptions
  • 📘 Use Case Examples
  • 🧪 Evaluation and Integration Steps
  • 🧠 Best Practices for Optimal Performance

📘

Code Examples

For each code example provided, you’ll also find versions in multiple programming languages. Simply click “More Code Examples” below each section to view them :

  • Shell
  • Python
  • Node
  • Ruby
  • Objective-C
  • PHP
  • C
  • C++
  • C#
  • Clojure
  • Go
  • HTTP
  • Java
  • Javascript
  • JSON
  • Kotlin
  • PowerShell
  • OCaml
  • R
  • Swift

🔑 Authentication

The RateFox API uses HTTP Basic Authentication to securely authorize requests. Each API call must include a Base64-encoded username and password in the request header.

Authentication Format
To construct the Authorization header - Combine your username and password with a colon (:).

📘

Example :

If your Username is “api_user” and Password is “secret123”.

Combined string: “api_user:secret123”.

Base64 encoded: "YXBpX3VzZXI6c2VjcmV0MTIz

Header : Authorization : Basic YXBpX3VzZXI6c2VjcmV0MTIz

Code Example :

curl -X GET 'https://api.example.com/endpoint' \
-H 'Authorization: Basic YXBpX3VzZXI6c2VjcmV0MTIz'

More Code Examples


🛠️ Endpoint Reference

Base URL - https://api.ratefox.io - for all Ratefox API endpoints.

Ratefox API description in Swagger References - Click here.

Ratefox API Endpoints

MethodEndpointDescription
POST/hotels/ratefoxFinds a better price and books the hotel if successful.
POST/hotels/prefetchOptimizes RateFox flow performance (Prefetch mode only).
Post Booking Requests
POST/hotels/cancel/{segmentId}Cancels the RateFox segment reservation with the specified segmentId.
POST/hotels/checkstatus/{segmentId}Checks the status of a RateFox segment reservation with the specified segmentId
GET/hotels/orderdata/{orderId}Returns details of the RateFox segment reservation with the specified orderId

✅ POST /hotels/ratefox

Standard Mode Ratefox API request for booking the specified hotel room at a better price.

👍

Notes and Tips :

Special Parameters :

  • Room Id:
    Under the "Rooms" field, each "Id" - should be a unique (per reach room), self-generated GUID.
  • Passenger Id:
    Under the "LeadPassenger" and "AdditionalPassengers" fields - each passenger "Id" should be unique (per reach passenger), self-generated GUID.
  • Allocation:
    Under the "LeadPassenger" and "AdditionalPassengers" fields - each passenger's "Allocation" should be the respective room "Id" which was generated in the "Rooms" field.

Request Parameters

FieldDescriptionFormatMandatory
SupplierHotelobjectYes
SupplierIdSupplier’s ID in Ratefox. Integrated suppliers list https://documentation.hsp.gimmonix.com/docs/hsp-hotels-integrated-suppliersIntegerYes
SupplierHotelIdSupplier’s HotelID - the corresponding supplier's Hotel key / Id, used to identify the desired property.StringYes
CheckInCheck-in dateString - Unix Epoch timeYes
CheckOutCheck-out dateString - Unix Epoch timeYes
ResidencyThe lead passenger residency.String (2) ISO Country Code (Ex: US, CZ, IL)Yes
PriceobjectYes
BookingPriceThe price from client’s booking flow. Taxes, fees and commission from the request will be applied to the BookingPrice to obtain “clear” price for comparison with alternative packages’ prices. See examples below the table.

- The Supplier Buying Price.
DoubleYes
CurrencyThe currency of the BookingPrice. Rates in response will be in this currency.String (3) ISO Currency Code (Ex: USD, EUR)Yes
TotalTaxobject
AmountAmount of taxesDoubleYes
IsIncludedAre taxes included in the BookingPrice. If false -excluded, BookingPrice will be increased by Tax Amount before comparing with alternative packages’ prices. When true does not affect.BooleanYes
CurrencyIf not provided (NULL), then Price Currency is used.String (3) ISO Currency Code
TotalFeeobject
AmountAmount of feesDoubleYes
IsIncludedAre fees included in the BookingPrice. If true - included, BookingPrice will be reduced by Fee Amount before comparing with alternative packages’ prices. When false does not affect.BooleanYes
CurrencyIf not provided (NULL), then Price Currency is usedString (3) ISO Currency Code
Commissionobject
AmountAmount of client’s commission. BookingPrice will be reduced by Commission Amount before comparing with alternative packages’ prices.DoubleYes
CurrencyIf not provided (NULL), then Price Currency is usedString (3) ISO Currency Codes
RefundableUntilRefundability deadline. (If Non-Refundable, specify the same date of the request). String Unix Epoch timeYes
RoomsArray of objects. (Max. Rooms - 4)ArrayYes
IdRoom Id inside the request. Self-generated GUID. Should be a unique per each room in the array. GUIDYes
RoomNameThe name of the requested room (as it used by supplier from SupplierID). Examples: "Standard Room", "Double with sea view", "Triple", "Family Room", etc.StringYes
RoomBasisThe meal-plan, ”Board” (as it used by supplier from SupplierID).
Possible Values : Room Only, Bed and Breakfast, Half Board, Full Board, All Inclusive.
StringYes
AdultsCountNumber of adults in the room. (Max. Adults - 8).IntegerYes
KidsAgesArray of kids ages. Each value must be between 0 and 17. If empty, there are no kids in the room.Array of integer
WorkModeDefines the WorkMode for the request.
Possible values: “live”. Can be used only by the client which is set “live” in Gimmonix.
“evaluation”. The mode for testing and evaluation. The request in this mode doesn’t produce the real booking.
More Information - Click Here.
StringYes
LeadPassengerObject. The main passenger from the bookingYes
IdLead passenger’s Id inside the request. Self-generated GUID. Should be a unique per each passenger in the request. GUID Yes
AllocationThe Allocation of the Pax from the RoomId/s from Rooms array. Identifies the room for the LeadPassenger. GUID Yes
NameobjectYes
GivenNameFirst name. Use English characters only, otherwise the booking might fail on the supplier side.String(50)Yes
NamePrefixMr, Mrs, Ms etc. If not provided, “Mr” is used.String
SurnameLast name. Use English characters only, otherwise the booking might fail on the supplier side.String(50)
TypeMust be “adult” for the LeadPassengerStringYes
AgeLead passenger's age.Integer
PhoneNumberPassenger’s phone number to specify in the booking.String(50)
CustomerEmailPassenger’s email to specify in the booking.String(254)
Addressobject. Address details to specify in the booking
CountryCodeThe country code of the passenger.String(2) ISO Country Code (Ex: US, CZ, IL)
AddressLineThe address of the passenger.String(254)
StateProvString(20)
PostalCodeString(20)
AdditionalPassengersArray of objects. All passengers (adults and kids) except LeadPassenger must be described in this array.Array
IdPassenger’s Id inside the request. Self-generated GUID. Should be a unique per each passenger in the request GUID Yes
AllocationThe Allocation of the Pax from the RoomId/s from Rooms array. Identifies the room for the AdditionalPassengers. GUID Yes
NameobjectYes
GivenNameFirst name. Use English characters only, otherwise the booking might fail on the supplier side.String(50)
NamePrefixMr, Mrs, Ms etc. If not provided, “Mr” is used.String
SurnameLast name. Use English characters only, otherwise the booking might fail on the supplier side.String(50)
Type“adult” or “child”.StringYes
AgeMandatory in case the passenger’s type is ”child”. The value must be between 0 and 17 and match one of the KigsAges array’s values.Integer
LeadPaxRoomIdId from Rooms array. Identifies the room of the LeadPassenger GUID Yes
LanguageOnly “en” is currently supportedStringYes
RoomsRemarksFree text remarks to be sent to the supplier within booking. Collection of "Key" : "Value” pairs, where Key is room Id from the Rooms array. Only suppliers that support this feature will receive the remarks.
InternalAgentRef1Agent reference of the booking.String
CustomBookingReferenceClient reference.String
PointOfSaleDefines the sales environment. Possible values:

- “web” - rates that are available to be sold through desktop websites,
- ”mobileapp” - rates that are available to be sold through mobile apps/websites,
- ”cug” - Closed User Group. Discounted rates which are sold to ‘members-only’ groups,
- ”b2b” - rates which are intended to be sold by travel agents, operating under a B2B booking engine. Suppliers forbid selling B2B rates in B2C channels.
String

Response parameters

FieldDescriptionFormatMandatory
Resultobject. Filled in if Ratefox has made the bookingYes
GimmonixHotelIdRatefox internal Hotel Id.IntegerYes
OrderIdRatefox internal Order Id once a Booking is created.
(Used to fetch bookings data in a separate post-booking request.)
IntegerYes
SupplierNameRatefox internal Supplier Name (The supplier from the booking was made by Ratefox)String
ContractIdId of the contract between Client and Supplier in RatefoxIntegerYes
SupplierIdSupplier’s ID in RatefoxIntegerYes
RequestPriceThe requested price. BookingPrice from the Request after applying Taxes, Fees and Commission (see request description above)

- The Supplier Buying Price.
DoubleYes
RequestedCurrencyThe currency requested. String ISO Currency Code
FinalPriceFinal Price of the booking made by Ratefox.DoubleYes
Revenue[RequestPrice - FinalPrice] - the profit increase occurred by deducting the requested and final prices. DoubleYes
SegmentsArray of objects. Depending on the supplier multi-room booking may have one or several segmentsArray
SegmentIdRatefox Segment Id.
(Used to cancel / Check-status in a separate post-booking request.)
IntegerYes
StatusSegment status. Possible statuses list: https://documentation.hsp.gimmonix.com/docs/orders-and-segments-statuses#segment-statuses. Note: in Evaluation mode Segment status is “EV” (successful Ratefox request doesn’t result real booking)String
RoomsArray of objects.Array
RoomNameThe name of the booked room.String
MealPlanThe Basis / meal-plan of the booked room.String
TotalPriceobject
CommissionCommission amountDoubleYes
CommissionInSupplierCurrencyCommission amount in SupplierCurrencyDoubleYes
CurrencyCurrency specified in the request in Price.String ISO Currency CodeYes
FinalPriceThe final price of the booking in CurrencyDoubleYes
FinalPriceInSupplierCurrencyThe price of the booking in Suppliers CurrencyDoubleYes
SupplierCurrencyThe currency in which the price were originally received from the supplier.String ISO Currency Code
TaxesAndFeesArray of objectsarray
FeeTitlethe tax or fee title as returned by the supplierString
IsIncludedInPriceis this tax or fee included in the FinalPriceBoolean
IsMandatoryis the tax or fee mandatory to be paid. For instance, 'resort fees' are typically mandatory, while 'wifi fee' might be not.Boolean
CurrencyCurrency specified in the request in Price.CurrencyString ISO Currency Code
UnitTyperepresents the category of the tax or fee: “Other” (not specified), “NotApplicable” (the supplier specified that this tax/fee is not applicable for the selected room), “NotSpecified”, “PerOccurrence” (of the fee title), “PerItem” (eg.: number of speedboats), “PerReservation” (the tax/fee will be applied per the entire reservation), “PerChild”, “PerAdult”, “PerNight”, “PerRoom”, “PerStay”, “PerPerson”.String
FrequencyTyperepresents the repetitive type of tax or fee: “Other”, ”NotApplicable”, “NotSpecified”, “PerMinute”, “PerHour”, ”PerHalfDay”, “PerNight”, “PerWeek”, “PerStay”.String
Valuethe decimal value of the taxes and feesString
IsValuePercentageis the tax or fee a percentage value or an absolute valueBoolean
Remarksthe tax or fee description as the supplier returnedString
SupplierReservationDetailsobject
BookingIDSupplier’s booking confirmation IdString
BookingReferenceSupplier’s booking referenceString
BookingRemarksSupplier’s booking remarksString
SupplierVoucherIdSupplier’s voucher IdString
PostBookingPriceChangeTrue if supplier changed the price (reduced or increased) while booking action was proceed.Boolean
CancellationPoliciesArray of objectsArray
CancellationFeeSame approach to detail CancellationFee as for the TotalPrice object aboveYes
CommissionDoubleYes
CommissionInSupplierCurrencyDoubleYes
CurrencyString ISO Currency Code
FinalPriceThe charge amount in case of cancellationDoubleYes
FinalPriceInSupplierCurrencyThe charge amount in case of cancellation in supplier currencyDoubleYes
SupplierCurrencyString ISO Currency Code
DateFromfirst date and time of the cancellation policy. Time is GMT. Please be aware that we won't be able to service complaints on a cancellation fee that was charged by the supplier because of time-zone differences between the supplier cancellation policy time to your timeString Unix Epoch timeYes
DateToend date and time for the policy. Time is GMT.String Unix Epoch timeYes
Descriptionpolicy description as returned from the supplier.String
ErrorsArray of error codes and messages.Array
Messageerror descriptionString
ErrorCodeList of possible error codes with description https://documentation.hsp.gimmonix.com/docs/error-code-handlingString
ErrorTextshort error messageString

Example Request

{
  "SupplierHotel": {
    "SupplierId": 1077,
    "SupplierHotelId": "60055"
  },
  "CheckIn": "2025-03-20T09:36:37.099Z",
  "CheckOut": "2025-03-21T09:36:37.099Z",
  "Residency": "IL",
  "Price": {
    "BookingPrice": 261,
    "Currency": "USD",
    "TotalTax": {
      "Amount": 10,
      "IsIncluded": true,
      "Currency": "USD"
    },
    "TotalFee": {
      "Amount": 10,
      "IsIncluded": false,
      "Currency": "USD"
    },
    "Commission": {
      "Amount": 100,
      "Currency": "USD"
     }
    },
  "RefundableUntil": "2025-02-25T09:36:37.099Z",
  "Rooms": [
    {
      "AdultsCount": 2,
      "Id": "7e6f9032-fe51-4759-b88a-22c5c75a7070",
      "RoomBasis": "room only",
      "RoomName": "Standard",
      "KidsAges": [1]
    }
  ],
  "WorkMode": "Evaluation",
  "LeadPassenger": {
    "Id": "7e6f9032-fe51-4759-b88a-22c5c75a825e",
    "Allocation": "7e6f9032-fe51-4759-b88a-22c5c75a7070",
    "Name": {
                    "GivenName": "Aras",
                    "NamePrefix": "Mr",
                    "Surname": "Akkar"
    },
    "Type": "Adult"
  },
"AdditionalPassengers": [
    {
      "Id": "0f741b1e-5e59-4fa9-ba61-84f5ecdd9988",
      "Allocation": "7e6f9032-fe51-4759-b88a-22c5c75a7070",
      "Name": {
        "GivenName": "Nadu",
        "NamePrefix": "Ms",
        "Surname": "Akkar"
      },
      "Type": "Adult",
      "Age": 21
    },
    {
      "Id": "1f2c479a-354c-46a8-ade2-7b34927cadc6",
      "Allocation": "7e6f9032-fe51-4759-b88a-22c5c75a7070",
      "Name": {
        "GivenName": "Kain",
        "NamePrefix": "Mr",
        "Surname": "Akkar"
      },
      "Type": "Child",
      "Age": 1
    }
  ],
  "LeadPaxRoomId": "7e6f9032-fe51-4759-b88a-22c5c75a7070",
  "Language": "en"
}

More Code Examples

Example Response

{
    "result": {
        "gimmonixHotelId": 4137826,
        "orderId": 3861446,
        "supplierName": "HB2",
        "contractId": 14821,
        "supplierId": 1123,
        "requestPrice": 161.0,
        "requestedCurrency": "USD",
        "finalPrice": 150.87,
        "profit": 9.09,
        "revenue": 10.129999999999999,
        "segments": [
            {
                "segmentId": 3888217,
                "status": "EV",
                "totalPrice": {
                    "commission": 0.0,
                    "commissionInSupplierCurrency": 0.0,
                    "currency": "USD",
                    "finalPrice": 150.87,
                    "finalPriceInSupplierCurrency": 150.87,
                    "supplierCurrency": "USD",
                    "taxesAndFees": []
                },
                "supplierReservationDetails": {
                    "bookingID": null,
                    "bookingReference": null,
                    "bookingRemarks": " .  Car park YES (With additional debit notes).Check-in hour 16:00-.",
                    "supplierVoucherId": null
                },
                "postBookingPriceChange": false,
                "rooms": [
                    {
                        "roomName": "DOUBLE STANDARD",
                        "mealPlan": "ROOM ONLY"
                    }
                ],
                "cancellationPolicies": [
                    {
                        "cancellationFee": {
                            "commission": 0.0,
                            "commissionInSupplierCurrency": 0.0,
                            "currency": "USD",
                            "finalPrice": 150.87,
                            "finalPriceInSupplierCurrency": 150.87,
                            "supplierCurrency": "USD"
                        },
                        "dateFrom": "2025-03-09T00:00:00",
                        "dateTo": "9999-12-31T00:00:00",
                        "description": null
                    }
                ]
            }
        ]
    },
    "errors": []
}

Response Codes :

  • 200 - OK
  • 403 - Forbidden.
  • 500 - Internal Server Error.

✅ POST /hotels/prefetch

Prefetch Mode Ratefox API request (pre-loading data, no booking is made). To proceed with the booking, a subsequent Ratefox API call is required.

👍

Notes and Tips :

  • The Prefetch Request will store room information for period of time specified in Client configurations.
  • For the Ratefox API request to recognize the prefetch results, the information must be identical to the previous Prefetch request (including Room Name, Basis, Cancellation Policy, Check-in/out dates, number of Adults and Kids, Booking price, Hotel, etc.). Otherwise the Ratefox API request will proceed detached.

Request Parameters

FieldDescriptionFormatMandatory
SupplierHotelobjectYes
SupplierIdSupplier’s ID in Ratefox. Integrated suppliers list: https://documentation.hsp.gimmonix.com/docs/hsp-hotels-integrated-suppliersIntegerYes
SupplierHotelIdSupplier’s HotelID - the corresponding supplier's Hotel key / Id, used to identify the desired property.StringYes
CheckInCheck-in dateString Unix Epoch timeYes
CheckOutCheck-out dateString Unix Epoch timeYes
ResidencyThe lead passenger residencyString(2) ISO Country Code (Ex: US, CZ, IL)Yes
PriceobjectYes
BookingPriceThe price from client’s booking flow. Taxes, fees and commission from the request will be applied to the BookingPrice to obtain “clear” price for comparison with alternative packages’ prices. See examples below the /hotels/ratefox endpoint request parameters table .

- The Supplier Buying Price.
DoubleYes
CurrencyThe currency of the BookingPrice. Rates in response will be in this currencyString(3) ISO Currency Code (Ex: USD, EUR)Yes
TotalTaxobject
AmountAmount of taxesDoubleYes
IsIncludedAre taxes included in the BookingPrice. If false - excluded, BookingPrice will be increased by Tax Amount before comparing with alternative packages’ prices. When true does not affect.BooleanYes
CurrencyIf not provided (NULL), then Price Currency is usedString(3) ISO Currency Code
TotalFeeobject
AmountAmount of feesDoubleYes
IsIncludedAre fees included in the BookingPrice. If true - included, BookingPrice will be reduced by Fee Amount before comparing with alternative packages’ prices. When false does not affect.BooleanYes
CurrencyIf not provided (NULL), then Price Currency is usedString(3) ISO Currency Code
Commissionobject
AmountAmount of client’s commission. BookingPrice will be reduced by Commission Amount before comparing with alternative packages’ prices.DoubleYes
CurrencyISO Currency Codes. If not provided (NULL), then Price Currency is usedString(3) ISO Currency Codes
RefundableUntilRefundability deadlineString Unix Epoch timeYes
RoomsArray of objects. Possible room quantity is between 1 and 4ArrayYes
IdRoom Id inside the request. Is generated by client GUID. Should be a unique per each room in the array GUID Yes
RoomNameThe name of the requested room (as it used by supplier from SupplierID). Examples: "Standard Room", "Double with sea view", "Triple", "Family Room", etc.StringYes
RoomBasisThe meal-plan, ”Board” (as it used by supplier from SupplierID).Examples: "Room Only", "Bed and Breakfast", "Half Board", "Full Board", "All Inclusive".StringYes
AdultsCountNumber of adults in the room. The value must be between 1 and 8IntegerYes
KidsAgesArray of kids ages. Each value must be between 0 and 17. If empty, there are no kids in the roomArray of integer
WorkModeDefines the WorkMode for the request.
Possible values: “live”. Can be used only by the client which is set “live” in Gimmonix. The request in this mode produces the real booking;
“evaluation”. The mode for testing and evaluation. The request in this mode doesn’t produce the real booking but full description of Ratefox found alternative is steal returned. This mode can be used by both clients connected to Ratefox as "evaluation" (new clients before the certification stage is completed) and those who are set "live". More about evaluation mode - link .
StringYes
Language Only “en” is currently supportedStringYes

Example Request

{
  "SupplierHotel": {
    "SupplierId": 1077,
    "SupplierHotelId": "60055"
  },
  "CheckIn": "2025-01-21T12:30:03.205Z",
  "CheckOut": "2025-01-21T12:30:03.205Z",
  "Residency": "IL",
  "Price": {
    "BookingPrice": 261,
    "Currency": "USD",
    "TotalTax": {
      "Amount": 8,
      "IsIncluded": true,
      "Currency": "USD"
    },
    "TotalFee": {
      "Amount": 6.2,
      "IsIncluded": true,
      "Currency": "USD"
    },
    "Commission": {
      "Amount": 0,
      "Currency": "USD"
    }
  },
  "RefundableUntil": "2025-01-21T12:30:03.205Z",
  "Rooms": [
    {
      "Id": "7e6f9032-fe51-4759-b88a-22c5c75a7070",
      "RoomName": "Standard Room with See View",
      "RoomBasis": "Bed and Breakfast",
      "AdultsCount": 2,
      "KidsAges": [
        3
      ]
    }
  ],
  "Language": "en",
  "WorkMode": "Evaluation"
}

More Code Examples

Example Response

{
	"result": {
		"success": true
	},
	"errors": []
}

Post Booking

✅ POST /hotels/cancel/{segmentId}

Cancel the Ratefox segment reservation with specified ID.

👍

Notes and Tips :

Multi-Room Reservations

  • There are suppliers that return a single booking confirmation id for all rooms together - on HSP all rooms will be under single Segment ID.
  • There are suppliers that return for each room a unique booking confirmation id - on HSP each room will have his own Segment ID (correlated with supplier).

'Cancel Book' request supports single Segment ID only.

For case (1): all rooms will be cancelled at once.
For case (2): requires to send a 'Cancel Book' request per each SegmentID. Or cancel part of the rooms by relevant SegmentIDs.

Request Parameters

  • segmentId - Integer.
    (The segmentId is returned as part of Ratefox Response)

Response parameters

FieldDescriptionFormat
BookCancelIDCancellation IDString
CancellationCommentCancellation CommentString
CancellationFeeCancellation FeeDouble
CurrencyCurrency of the cancellation feeString ISO Currency Code
StatusCancellation Status. Possible statuses list: https://documentation.hsp.gimmonix.com/docs/orders-and-segments-statuses#segment-cancellation-statusesString
ErrorsArray of error codes and messages.Array
Messageerror descriptionString
ErrorCodeList of possible error codes with description https://documentation.hsp.gimmonix.com/docs/error-code-handlingString
ErrorTextshort error messageString

Example Request

curl --request POST \
     --url https://example.com/hotels/cancel/454974 \
     --header 'accept: application/json' \
     --header 'authorization: Basic VGVzdFVzZXJOYW1lOmFzZGFkc2E='

More Code Examples

Example Response

{
  "Result": {
    "BookCancelID": "string",
    "CancellationComment": "string",
    "CancellationFee": 0,
    "Currency": "string",
    "Status": "string"
  },
  "Errors": [
    {
      "Message": "string",
      "ErrorCode": "string",
      "ErrorText": "string"
    }
  ]
}

✅ POST /hotels/checkstatus/{segmentId}

Check status of the Ratefox segment reservation with specified ID.

Request Parameters

  • segmentId - Integer.
    (The segmentId is returned as part of Ratefox Response)

Response parameters

FieldDescriptionFormatMandatory
StatusSegment Status. Possible statuses list: https://documentation.hsp.gimmonix.com/docs/orders-and-segments-statuses#segment-statusesString
ErrorsArray of error codes and messages.Array
Messageerror descriptionString
ErrorCodeList of possible error codes with description https://documentation.hsp.gimmonix.com/docs/error-code-handlingString
ErrorTextshort error messageString

Example Request

curl --request POST \
     --url https://example.com/hotels/checkstatus/545647 \
     --header 'accept: application/json' \
     --header 'authorization: Basic VGVzdFVzZXJOYW1lOmFzZGFkc2E='

More Code Examples

Example Response

{
  "Result": {
    "Status": "OK"
  },
  "Errors": [
    {
      "Message": "string",
      "ErrorCode": "string",
      "ErrorText": "string"
    }
  ]
}

✅ GET /hotels/orderdata/{orderId}

Provide description of the Ratefox order (booking) reservation with specified ID.

Request Parameters

  • orderid - Integer.
    (The orderid is returned as part of Ratefox Response)

Response parameters

FieldDescriptionFormatMandatory
Resultobject
OrderIdRatefox internal Id of the bookingIntegerYes
SupplierIdSupplier’s ID in RatefoxIntegerYes
SupplierNameRatefox internal Supplier Name (supplier from the booking made by Ratefox)StringYes
HotelIdRatefox Hotel IdStringYes
ContractIdId of the contract between Client and Supplier in RatefoxIntegerYes
RequestPriceBookingPrice from the Request after applying Taxes, Fees and Commission (see Ratefox API request description above)DoubleYes
RequestCurrencyPrice.Currency from the requestString ISO Currency CodeYes
FinalPricePrice from the booking made by RatefoxDoubleYes
RevenueRequestPrice - FinalPriceDoubleYes
CheckInString Unix Epoch timeYes
CheckOutString Unix Epoch timeYes
SegmentsArray of objects
SegmentIdRatefox Segment IdIntegerYes
StatusSegment status. Possible statuses list: https://documentation.hsp.gimmonix.com/docs/orders-and-segments-statuses#segment-statuses. Note: in Evaluation mode Segment status is “EV” (successful Ratefox request doesn’t result real booking)StringYes
RoomsArray of objects
RoomNameThe name of the booked room in supplier termsStringYes
MealPlanThe meal-plan name of the booked room in supplier termsStringYes
TotalPriceobject
CommissionCommission amountDoubleYes
CommissionInSupplierCurrencyCommission amount in SupplierCurrencyDoubleYes
CurrencyCurrency specified in the request in Price.CurrencyString ISO Currency CodeYes
FinalPricethe price of the booking in CurrencyDoubleYes
FinalPriceInSupplierCurrencythe price of the booking in SupplierCurrencyDoubleYes
SupplierCurrencyThe currency in which the price were originally received from the supplierString ISO Currency Code
TaxesAndFeesArray of objectsarray
FeeTitlethe tax or fee title as returned by the supplierString
IsIncludedInPriceis this tax or fee included in the FinalPriceBoolean
IsMandatoryis the tax or fee mandatory to be paid.Boolean
CurrencyCurrency specified in the request in Price.CurrencyString ISO Currency Code
UnitTyperepresents the category of the tax or fee: “Other” (not specified), “NotApplicable” (the supplier specified that this tax/fee is not applicable for the selected room), “NotSpecified”, “PerOccurrence” (of the fee title), “PerItem” (eg.: number of speedboats), “PerReservation” (the tax/fee will be applied per the entire reservation), “PerChild”, “PerAdult”, “PerNight”, “PerRoom”, “PerStay”, “PerPerson”.String
FrequencyTyperepresents the repetitive type of tax or fee: “Other”, ”NotApplicable”, “NotSpecified”, “PerMinute”, “PerHour”, ”PerHalfDay”, “PerNight”, “PerWeek”, “PerStay”.String
Valuethe decimal value of the taxes and feesString
IsValuePercentageis the tax or fee a percentage value or an absolute valueBoolean
Remarksthe tax or fee description as the supplier returnedString
SupplierReservationDetailsobject
BookingIDSupplier’s booking confirmation IdString
BookingReferenceSupplier’s booking referenceString
BookingRemarksSupplier’s booking remarksString
SupplierVoucherIdSupplier’s voucher IdString
CancellationPoliciesArray of objectsArray
CancellationFeeDoubleYes
CancellationFeeInSupplierCurrencyDoubleYes
CurrencyString ISO Currency Code
SupplierCurrencyString ISO Currency Code
DateFromfirst date and time of the cancellation policy. Time is GMT. Please be aware that we won't be able to service complaints on a cancellation fee that was charged by the supplier because of time-zone differences between the supplier cancellation policy time to your timeString Unix Epoch timeYes
DateToend date and time for the policy. Time is GMT.String Unix Epoch timeYes
Descriptionpolicy description as returned from the supplier.String
ErrorsArray of error codes and messages.
Messageerror descriptionString
ErrorCodeList of possible error codes with description https://documentation.hsp.gimmonix.com/docs/error-code-handlingString
ErrorTextShort error messageString

Example Request

curl --request GET \
     --url https://example.com/hotels/orderdata/456787 \
     --header 'accept: application/json' \
     --header 'authorization: Basic VGVzdFVzZXJOYW1lOmFzZGFkc2E='

More Code Examples

Example Response

{
 "Result": { 
   "HotelId": 0,
   "OrderId": 0,
   "SupplierName": "string",
   "ContractId": 0,
   "SupplierId": 0,
   "RequestPrice": 0,
   "RequestedCurrency": "string",
   "FinalPrice": 0,
   "Profit": 0,
   "CheckIn": "2025-01-21T12:43:38.569Z",
   "CheckOut": "2025-01-21T12:43:38.569Z",
   "Segments": [
    {
      "SegmentId": 0,
      "Status": "string",
      "Rooms": [
        {
          "RoomName": "string",
          "MealPlan": "string"
        }
      ],
      "TotalPrice": {
        "Commission": 0,
        "CommissionInSupplierCurrency": 0,
        "Currency": "string",
        "FinalPrice": 0,
        "FinalPriceInSupplierCurrency": 0,
        "SupplierCurrency": "string",
        "TaxesAndFees": [
          {
            "FeeTitle": "string",
            "IsIncludedInPrice": true,
            "IsMandatory": true,
            "Currency": "string",
            "UnitType": "string",
            "FrequencyType": "string",
            "Value": "string",
            "IsValuePercentage": true,
            "Remarks": "string"
          }
        ]
      },
      "SupplierReservationDetails": {
        "BookingID": "string",
        "BookingReference": "string",
        "BookingRemarks": "string",
        "SupplierVoucherId": "string"
      },
      "CancellationPolicies": [
        {
          "CancellationFee": 0,
          "CancellationFeeInSupplierCurrency": 0,
          "Currency": "string",
          "SupplierCurrency": "string",
          "DateFrom": "2025-01-21T12:43:38.569Z",
          "DateTo": "2025-01-21T12:43:38.569Z",
          "Description": "string"
        }
      ]
    }
  ]
 }
}

🔗 Resources

  • Hotel Identification: Each request requires a valid SupplierID and the corresponding supplier hotel key. To view the full list of suppliers and their IDs - Click here.
  • Orders and Segments: Learn more about how orders and segments work, including possible statuses - Click here.
  • Error Handling and Messages: For information on error codes, informative messages, and handling guidance - Click here.

✔️ Check-List for Starting the Evaluation / Integration

  • Credentials for RateFox have been obtained.
  • Access to Grafana - RateFox Monitoring and Insights tool has been granted.
  • IP Whitelisting: When operating in Evaluation mode with a Live supplier, RateFox IPs must be whitelisted in the supplier's system.

📊 RateFox - Monitoring and Insights

For more information - Click here.

RateFox provides clients with visibility into their request flow, including a breakdown of Winning, Losing, and Invalid cases. This enables clients to better understand their integration, identify failure points, and ensure proper handling—ultimately helping them implement and optimize RateFox more effectively.

📞 Support & During and after Integration.

Our support team is committed to providing support for swift and effective integration, as well as ongoing assistance post-integration.

Should you need help, have questions, or seek clarification either during or after the integration process, you have two options for support:

  • Search in our Documentation for the information you need. (Recommended)
  • Submit a ticket to our dedicated support team.