Airhob API provides a REST based web service over HTTPS, using JSON to encode service request and response data. We use an SSL secured channel to transmit data from client to the service
apikey – Your sandbox or production API key
mode - sandbox or production
Content-Type - application/json
There are two environments available for the developers:
a) The TESTING environment for the integration and testing purposes. It's usually slower than the LIVE environment.
b) The LIVE environment is activated after successful integration in the sandbox environment and verification of Go Live steps.
This API gives you the real-time availability with best fares based on the requested search parameters.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/flights/v2/search
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
apikey: Your sandbox or production API key
mode: sandbox or production
Content-Type: application/json
This API is used to look/price a specific flight. Using this API, you're just diving into the airline inventory and letting the airline know that you're looking at this specific flight. Nice eh?
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/flights/v2/look
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
See Look request here
To form this request, you need to take some parameters from Search API's response. This table can help you taking parameters from Search API's response.
Look API Request Parameters | Equivalent Search API Response Parameters |
---|---|
TrackId | OneWayAvailabilityResponse > TrackId |
ItinearyDetails > Segments > TrackId | OneWayAvailabilityResponse > ItinearyDetails > Items > TrackId |
ItinearyDetails > Segments > FareIds | OneWayAvailabilityResponse > ItinearyDetails > Items > FareDescription > PaxFareDetails > FareId |
ItinearyDetails > Segments > fareSellKey | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > SegmentKey |
ItinearyDetails > Segments > ValidatingCarrier | OneWayAvailabilityResponse > ItinearyDetails > Items > ValidatingCarrier |
ItinearyDetails > Segments > Price | OneWayAvailabilityResponse > ItinearyDetails > Items > FareDescription > PaxFareDetails[0] > OtherInfo > GrossAmount |
ItinearyDetails > Segments > item > EquipmentType | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > AirEquipType |
ItinearyDetails > Segments > item > Baggage | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > Baggage |
ItinearyDetails > Segments > item > ArrivalDateTime | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > ArrivalDateTime |
ItinearyDetails > Segments > item > Destination | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > Destination |
ItinearyDetails > Segments > item > Origin | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > Origin |
ItinearyDetails > Segments > item > Meal | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > MealCode > MealCode |
ItinearyDetails > Segments > item > MarriageGroup | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > MarriageGroup |
ItinearyDetails > Segments > item > ClassCode | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > ClassCode |
ItinearyDetails > Segments > item > OrgTerminal | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > OrgTerminal |
ItinearyDetails > Segments > item > DepartureDateTime | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > DepartureDateTime |
ItinearyDetails > Segments > item > OperatingCarrierId | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > CarrierCode |
ItinearyDetails > Segments > item > Duration | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > Duration |
ItinearyDetails > Segments > item > AircraftType | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > AirCraftType |
ItinearyDetails > Segments > item > DestTerminal | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > DesTerminal |
ItinearyDetails > Segments > item > CarrierId | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > CarrierCode |
ItinearyDetails > Segments > item > FlightID | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > FlightID |
ItinearyDetails > Segments > item > FlightNum | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > FlightNum |
ItinearyDetails > Segments > item > ApiProvider | OneWayAvailabilityResponse > ItinearyDetails > Items > ApiProvider |
ItinearyDetails > Segments > item > IsStopAirport | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > IsStopAirport |
ItinearyDetails > Segments > item > MajorClassCode | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > MajorClassCode |
ItinearyDetails > Segments > item > Rph | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > Rph |
ItinearyDetails > Segments > item > ProviderCode | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > ProviderCode |
ItinearyDetails > Segments > item > AvailabilityDisplayType | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > AvailabilityDisplayType |
ItinearyDetails > Segments > item > ParticipantLevel | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > ParticipantLevel |
ItinearyDetails > Segments > item > LinkAvailability | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > LinkAvailability |
ItinearyDetails > Segments > item > PolledAvailabilityOption | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > PolledAvailabilityOption |
ItinearyDetails > Segments > item > FareBasisCode | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > FareBasisCode |
ItinearyDetails > Segments > item > BookingCode | OneWayAvailabilityResponse > ItinearyDetails > Items > FlightDetails > ClassCode |
This API is used to fetch ancillaries made available by the airline like meals, baggage, etc.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/flights/v1/ancillaries
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{
"SellRequestId": "DEcpbvYP3mp5q91H7+7VpQ==",
"PassengerRef":"ADT1"
}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
SellRequestId | string | DEcpbvYP3mp5q91H7+7VpQ== | REQUIRED | Pass value of this parameter as it is received in the response of Look API |
PassengerRef | string | REQUIRED | Pass value of FareDescription>PaxFareDetails>PaxType parameter as it is received in the response of Look API, and then concate it with the passenger index. For eg. ADT1/ADT2/CHD1/CHD2, etc. |
This API is used to fetch the seat map of the airline. Please note that you can book free and paid seats for all supported Low Cost Carriers, but only free seats for Full Service Carriers. The booking of paid seats for Full Service Carriers isn't supported yet.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/flights/v1/seat
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{
"SellRequestId": "WGIpLaKt6hxAUbrYo0nbXQ==",
"Origin": "DEL",
"Destination": "AMD"
}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
SellRequestId | string | WGIpLaKt6hxAUbrYo0nbXQ== | REQUIRED | Pass value of this parameter as it is received in the response of Look API |
Origin | string | REQUIRED | Pass value of the origin's IATA code for the sector (segment>item) you wish to fetch the seat map for. | |
Destination | string | REQUIRED | Pass value of the destination's IATA code for the sector (segment>item) you wish to fetch the seat map for. | |
AllPassengers | List | OPTIONAL | Includes passenger details for each passenger. This information may not be required for all airlines, but it's advised to pass in all requests. | |
AllPassengers > PassengerType | string | OPTIONAL | ADT/CHD/CNN/INF (Please use the passenger type returned in the Look API response. | |
AllPassengers > Title | string | OPTIONAL | Pass the title like Mr/Mrs/Ms/Miss/Mstr, etc. | |
AllPassengers > FirstName | string | OPTIONAL | The first name of the passenger | |
AllPassengers > LastName | string | OPTIONAL | The last name of the passenger. |
This API is used to store traveler details, ancillaries, and seat information. This API will also create a PNR (Passenger Name Record) in case of a full-service carrier.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/flights/v2/price
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
See Price request here
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
sellRequestId | string | a6/1dz3ky170II+YoeHsag== | REQUIRED | Pass value of this parameter as it is received in the response of Look API |
customer | JSONObject | REQUIRED | Contains details of customers/travellers for an itinerary | |
PhoneNumber | string | 999999999 | REQUIRED | Phone number of lead traveller |
CountryCode | string | 91 | REQUIRED | Cellular country code of lead traveller |
string | youremail@mail.com | REQUIRED | Email id of lead traveller | |
GstCity | string | New Delhi | OPTIONAL | GST city of lead traveller. |
GstCompanyAddress | string | 7, Race Course Road | OPTIONAL | GST company address of lead traveller. |
GstCompanyName | string | Airhob | OPTIONAL | GST company name of lead traveller. |
GstEmailID | string | support@airhob.com | OPTIONAL | GST email id of lead traveller. |
GstMobileNumber | string | 919069103251 | OPTIONAL | GST mobile phone number of lead traveller. |
GstNo | string | 27AABCT6166A1ZJ | OPTIONAL | GST number of lead traveller. |
GstPincode | string | 110011 | OPTIONAL | GST pincode of lead traveller. |
GstState | string | Delhi | OPTIONAL | GST state of lead traveller. |
CustomerDetails | JSONArray | REQUIRED | Contains list of all traveller's details for an itinerary. | |
CustomerDetails > PassengerType | string | ADT / CNN / CHD / INF | OPTIONAL | Type of passenger. ADT for adult passengers. CNN and CHD for child passengers. INF for infant passengers |
CustomerDetails > Title | string | Mr. / Mrs. / Ms. / Miss. / Mstr. | REQUIRED | Title of a traveller |
CustomerDetails > FirstName | string | John | REQUIRED | First name of a traveller |
CustomerDetails > LastName | string | Doe | REQUIRED | Last name of a traveller |
CustomerDetails > NationalityCountry | string | IN | REQUIRED for international journey | Nationality of a traveller |
CustomerDetails > DOB | JSONObject | REQUIRED | Traveller's date of birth | |
DOB > Day | string | 23 | REQUIRED | Day of DOB |
DOB > Month | string | 12 | REQUIRED | Month of DOB |
DOB > Year | string | 1990 | REQUIRED | Year of DOB |
CustomerDetails > PassportNumber | string | H7666777 | REQUIRED for international journey | Passport number of a traveller |
CustomerDetails > IssueCountry | string | IN | REQUIRED for international journey | Passport issuing country |
CustomerDetails > PassportExpiryMonth | string | 12 | REQUIRED for international journey | Expiry Month of passport |
CustomerDetails > PassportExpiryDay | string | 23 | REQUIRED for international journey | Expiray day of a traveller's passport |
CustomerDetails > PassportExpiryYear | string | 2030 | REQUIRED for international journey | Expiry year of a traveller's passport |
CustomerDetails > ExtraAncillaryServices | Array | [] | REQUIRED if ancillaries are chosen | Each object will be for a unique ancillary chosen for this passenger. Please understand what values to pass in this object for below specific parameters, while for the rest of the parameters (mentioned in the Price API request sample), you can use the Ancillaries response and pass them as it is. |
CustomerDetails > ExtraAncillaryServices > ServiceId | string | aKVFKtVqWDKA/M+MBAAAAA==$$$CKMUIRxS | REQUIRED | Pick from AncillaryServiceList>AncillaryServiceData>code |
CustomerDetails > ExtraAncillaryServices > ServiceName | string | Fast Forward | REQUIRED | Pick from AncillaryServiceList>AncillaryServiceData>description |
CustomerDetails > ExtraAncillaryServices > OfferItemId | string | MiFNQ0ZCUkZRLSFQ TVRVISFBTUQhUVA hNjM4MjQ5NzYwM DAwMDAwMDAwIURF TCE0NTAzISA- | REQUIRED | Pick from AncillaryServiceList>AncillaryServiceData>offeritemid |
CustomerDetails > ExtraAncillaryServices > ServiceType | string | Baggage | REQUIRED | Pick from AncillaryServiceList>type |
CustomerDetails > AssignedSeats | Array | [] | REQUIRED if seats are chosen | Each object will be for a unique seat chosen for this passenger. Please refer to the request sample, and note that all parameters are required to be passed. You can use the Seats response to understand what values to pass in this object. |
CustomerDetails > FFPProgram | Array | [] | REQUIRED if loyalty program details are to be passed | You can pass the FF membership details here. |
CustomerDetails > FFPProgram > MemberShipId | string | 1930490294 | REQUIRED if loyalty program details are to be passed | Pass the FF membership number here |
CustomerDetails > FFPProgram > AirlineIata | string | LH | REQUIRED if loyalty program details are to be passed | Pass the airline IATA code that relates to the membership number being passed |
CustomerDetails > IdentityDocs | Array | [] | OPTIONAL | Pass relevant traveler identity documents like known traveler numbers, etc. |
CustomerDetails > IdentityDocs > DocType | string | known_traveler_number | REQUIRED | Currently only known_traveler_number is supported. |
CustomerDetails > IdentityDocs > DocIdentifier | string | 123456789 | REQUIRED | Pass the unique document identifier |
CustomerDetails > IdentityDocs > IssuingCountry | string | US | REQUIRED | Two letter country code of document issuance |
CustomerDetails > IdentityDocs > ExpiryDate | string | 22 | REQUIRED | Date in DD format |
CustomerDetails > IdentityDocs > ExpiryMonth | string | 06 | REQUIRED | Month in MM format |
CustomerDetails > IdentityDocs > ExpiryYear | string | 2006 | REQUIRED | Year in YYYY format |
This API is used for finally issuing the ticket and creating the ticket number for each traveler.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/flights/v2/issue
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"sellRequestId":"/6KfDIH/TmET9niBEWuzuQ=="}
Issue API Request Parameters | Equivalent Look API Response Parameter |
---|---|
sellRequestId | sellRequestId |
This API is used for retrieving the flight itinerary that has been booked. We would recommend to call this API after 'Issue API' to retrieve all details against the ticket.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/flights/v1.1/itinerary?tripid=86133583
The HTTP verb to be used is GET.
Data is to be supplied in the body of the request as JSON encoded value.
See Itinerary response here
This API is used to cancel the booking
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/flights/v1/cancel
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{
"SellRequestId": "E+450ql9Y++9zOE5oM2DHA=="
}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
SellRequestId | string | a6/1dz3ky170II+YoeHsag== | REQUIRED | Pass value of this parameter as it is received in the response of Look API |
Before giving live access with production URLs, we need to verify and check if the integration is working properly. We request you to please make below bookings in the sandbox environment and share the BOOKING IDs with us.
1. Oneway flight with ApiProvider as PT with origin and destination in the same country. e.g. BOM-DEL
2. Oneway flight with ApiProvider as AB with origin and destination in the same country, with one ancillary. eg. CGK-SUB
3. Oneway flight with ApiProvider as 1AN with origin and destination in the same country, with one ancillary and seat. e.g. DEL-BLR
4. Oneway flight with ApiProvider as PT/DA with origin and destination in the different countries. e.g. DEL-DXB
5. Roundtrip flight with ApiProvider as PT with origin and destination in the different countries. e.g. DEL-DXB or KUL-DMK
6. Roundtrip flight with ApiProvider as DA with origin and destination in the different countries. e.g. SIN-JFK or DEL-SYD
7. Cancel the first three bookings.
Once we verify these use cases, we’ll get back to you with the confirmation or the problems if there are any. After these test cases are certified, our team will want to get access to your test environment for making one or two test bookings to make sure the integration is healthy.
Post this, we'll move forward with the activation of the production environment.
Click here to get list of popular airports around the world.
Error Code | Message |
---|---|
E_C_11 | Your API key has expired |
E_C_12 | Your IP address doesn't match |
E_C_13 | Invalid apikey sent in header |
E_C_14 | You don't have access to flights API. |
E_C_15 | You don't have access to tours API. |
E_C_16 | You don't have access to stays API. |
E_C_17 | You don't have access to activities API. |
E_C_18 | You don't have access to europass API. |
E_C_19 | You don't have access to trains API. |
E_C_20 | Something went wrong in authenticating product rights. |
E_C_21 | Your endpoint is of sandbox environment but you have passed mode as 'production'. Please pass mode as 'sandbox'. |
E_C_22 | Incorrect mode sent in header. For Sandbox environment pass 'sandbox' and for production environment pass 'production' |
E_C_23 | Your account is currently inactive. Please contact Airhob support team at api@airhob.com |
E_C_24 | You don't have enough balance in your Airhob Wallet. If you want us to add some dummy balance in your Airhob Wallet for sandbox environment, please write an email to api@airhob.com and we’ll do the rest. |
E_C_25 | Incomplete Header |
E_C_26 | Your endpoint is of production but you have passed mode as 'sandbox'. Please pass mode as 'production'. |
Error Code | Message |
---|---|
E_F_11 | You can't use this API for Indian domestic round-trip flights. Pass TripType as 'O' and hit this API twice. So you'll need to use the domestic one-way API twice, once for onward flight and once for return flight. The subsequent API's below of Look, Price and Issue will also be separately called for each onward and return flight. |
E_F_12 | 'OriginDestination' must have two elements for round-trip |
E_F_13 | 'OriginDestination' must have one element for one-way. To search a round-trip Flight, pass TripType as 'R'. |
E_F_14 | Invalid 'TripType'. Kindly pass 'O' for one-way and 'R' for round-trip. Make sure it's in Upper Case. |
E_F_15 | Invalid 'ClassType'. Possible values for ClassType are 'Economy', 'PremiumEconomy', 'Business' and 'First'. |
E_F_16 | Invalid 'Currency'. Please refer the Airhob API Documentation to see our supported currencies. |
E_F_17 | No flights found for your search criteria. Try passing different 'Destination' or 'TravelDate' or 'Origin'. |
E_F_18 | You can't use this API for non-Indian domestic round-trip flights. |
E_F_19 | Invalid 'TripType'. Kindly pass 'R' for round-trip. Make sure it's in Upper Case. |
E_F_20 | TrackId is missing. |
E_F_21 | Invalid TrackId. |
E_F_22 | Your TrackId has expired. |
E_F_23 | Bad request. |
E_F_24 | ItineraryDetails is missing. |
E_F_25 | Segments is missing. |
E_F_26 | item is missing. |
E_F_27 | FlightID is missing. |
E_F_28 | CarrierId is missing. |
E_F_29 | Origin is missing. |
E_F_30 | Destination is missing. |
E_F_31 | DepartureDateTime is missing. |
E_F_32 | ArrivalDateTime is missing. |
E_F_33 | There's not enough balance in Airhob Wallet to price this flight. If you want us to add some dummy balance in your Airhob Wallet for sandbox environment, please write an email to api@airhob.com and we’ll do the rest. |
E_F_34 | SellRequestId is missing. |
E_F_35 | Invalid SellRequestId |
E_F_36 | Your SellRequestId has expired. |
E_F_37 | Email is missing. |
E_F_38 | CountryCode is missing. |
E_F_39 | PhoneNumber is missing. |
E_F_40 | CustomerDetails is missing. |
E_F_41 | Passenger count does not match. |
E_F_42 | PassengerType is missing. |
E_F_43 | Invalid PassengerType. It should be ADT or CNN or INF |
E_F_44 | Title is missing. |
E_F_45 | FirstName is missing. |
E_F_46 | FirstName can only have alphabets. Special characters and numbers are not accepted. |
E_F_47 | LastName is missing. |
E_F_48 | LastName can only have alphabets. Special characters and numbers are not accepted. |
E_F_49 | PassportExpiryDay is missing. |
E_F_50 | PassportExpiryMonth is missing. |
E_F_51 | PassportExpiryYear is missing. |
E_F_52 | PassportNumber is missing. |
E_F_53 | IssueCountry is missing. |
E_F_54 | NationalityCountry is missing. |
E_F_55 | Invalid IssueCountry. |
E_F_56 | Invalid NationalityCountry. |
E_F_57 | Invalid DOB passed for a passenger |
E_F_58 | DOB is missing. |
E_F_59 | Day is missing in DOB. |
E_F_60 | Month is missing in DOB. |
E_F_61 | Year is missing in DOB. |
E_F_62 | Infant age should be less than 2 years. |
E_F_63 | Child age should be greater than 1 and less than 12 years. |
E_F_64 | Adult age should be greater than 11 years. |
E_F_65 | Invalid Title. For adult paasenger, title should be Mr or Ms or Mrs |
E_F_66 | Invalid Title. For child or infant paasenger, title should be Miss or Mstr |
E_F_67 | There's not enough balance in Airhob Wallet to book this flight. If you want us to add some dummy balance in your Airhob Wallet for sandbox environment, please write an email to api@airhob.com and we’ll do the rest. |
E_F_68 | Something went wrong. |
E_F_69 | Invalid api key |
E_F_70 | Currency is missing. |
E_F_71 | NoOfInfants must be less than or equal to NoOfAdults. |
E_F_72 | Summation of NoOfAdults and number of NoOfChilds must be less than 10. |
E_F_73 | NoOfAdults is missing. |
E_F_74 | TripId is missing. |
E_F_75 | Invalid TripId. |
E_F_76 | Invalid passport expiry date. |
E_F_77 | Timeout. Couldn't get any response from airline. Please try later. |
E_F_78 | FirstName must have at least two letters. |
E_F_79 | LastName must have at least two letters. |
Please make a note that these FAQs are listed as per the most updated version of all APIs.
1. How many number of passengers can be passed in Search API at minimum and maximum?
Minimum: 1 adult
Maximum: Summation of adult and child passengers should be equal or less than 9. Number of infants should be equal or less then number of adults. If this conditions are not satisfied, then you will get no flights.
2. What are the possible values for ClassType?
"Economy"/"PremiumEconomy"/"Business"/"First"
3. How can I get the IATA codes for Origin and Destination?
Please have a look at important assets(can be found at this page only) where you can find popular airports around the world with their IATA code.
4. How would I know if an Itinerary has connecting flights?
There is an element in response of Search and Look API named as "Connection". It has all the information for connecting flights. You could also use the FlightDetails element to understand the same.
5. Can you please let me know how to get Layover information in Search API between each flight?
The layover time needs to be calculated by subtracting the departure time of upcoming flight and the arrival time of the first flight.
6. In Price API request, what are the possible titles for passenger?
For Adult Passengers: Mr / Mrs / Ms
For Child and Infant passengers: Miss / Mstr
7. An itinerary has connecting flights, then will PNR and Eticket be different for connecting flights?
No. PNR and Eticket will be same because the validating carrier(issuing carrier) for all the connecting flights will be same.
8. Some destinations don't return flights with all API Providers. Are we doing anything wrong?
No. In the test environment, not every airline and API Provider will return proper data that can be booked. If this is affecting your GoLive process, please reach out to support and they should help you find the resolution.
9. Can we get help in how to integrate the API in our application?
Our support team is available over email for any queries with respect to our API, however we won't be able to help specific to your application and are limited only to the API we provide. We please recommend reading through the documentation in detail to understand the integration process.
Here is booking flow of Stays API.
1. Search API.
Search API lets you search hotels. We will send you all the available hotels with the minimum price of each hotel.
2. Properties API
This API gives you detailed information of the hotel along with all the possible room rates.
3. Price API
This API is used to save the room inventory you're trying to book. For your booking flow, it's recommended that you collect the payment of your customer after Price API is success and before Issue API is called.
4. Issue API
This API confirms your booking and gives you a booking ID (for any communications with us) and supplier reference which is the main confirmation number for the hotel to identify the booking.
Please click here to access a sample voucher that you need to create after Issue API is successful. This voucher must be sent to your customer as they will show this while check-in. You need to make sure that your voucher includes all information as shown on the sample voucher, to avoid any confusions.
This API is used for searching hotels based on a given city which returns basic property information along with its lowest price.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/stays/v2/search
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"City":"Manchester","Country":"GB","FromDate":"2024-04-22","ToDate":"2024-04-23","ClientNationality":"IN","Currency":"USD","Occupancies":[{"NoOfAdults":2,"ChildrenAges":[5,7]},{"NoOfAdults":2}]}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
City | string | Manchester | REQUIRED | Pass the city for which you want to fetch hotel rates. You need to make sure the city name matches with the city master data file, present under 'Important assets' below. |
Country | string | GB | REQUIRED | Pass the country code against the city passed above. You need to make sure the code matches with the master data file, present under 'Important assets' below. |
FromDate | string | 2024-06-23 | REQUIRED | Check-in date. Format must be yyyy/mm/dd. |
ToDate | string | 2024-06-24 | REQUIRED | Check-out date. Format must be yyyy/mm/dd. |
ClientNationality | string | IN | REQUIRED | Nationality of the guest. Two-letter ISO Country code. |
Currency | string | USD | REQUIRED | Preferred currency for the prices in the results. Three letter ISO Currency code. |
Occupancies | array of occupancy elements | REQUIRED | Contains details of occupancies. Number of elements in this array equals to number of rooms. Each element in this array represents a room. You can add a maximum 5 rooms with each room having a maximum of 4 guests. | |
NoOfAdults | string | 1 | Number of adults | |
ChildrenAges | array of children's ages | Ages of children. Number of elements in this array are equal to number of children guest. |
See response here
Parameter | Type | Example Value | Description |
---|---|---|---|
ErrorMessage | string | Holds error message, if any | |
Errors | element | Holds error information | |
ProductErrors > ErrorCode | string | E_C_13 | Unique error code |
ProductErrors > Message | string | Invalid apikey sent in header | Description of error |
hotelData | array of hotel elemets | three-letter ISO currency code | |
HotelCode | string | AH_277630 | Unique code for a hotel |
fullName | string | The Heart Apartments at MediaCity UK | Full name of hotel |
starCategory | integer | 4 | Star category of the hotel |
hotelAddresss | element | Contains hotel address | |
street | string | MediaCityUK Salford Quays | Street of hotel |
latitude | string | 53.4720737 | Latitude data for geolocation of hotel |
longitude | string | -2.3000156 | Longitude data for geolocation of hotel |
hotelFacilities | array of hotel facility elements | Contains falcilities provided by hotel | |
hotelFacilities title | string | dry cleaning / laundry service | Name of facility |
hotelImages | array of hotel images | Contains images of hotel | |
url | string | https://cdn.grnconnect.com/hotels/ images/eb/3f/ eb3f151dbe34f23bab229402f26f93fa0fc91017.jpg | Image URL |
minprice | integer | 365 | Minimum total price including taxes |
price | element | Contains details of price | |
key | string | 2 | Don't worry about it. This is used for internal purpose. |
price_details | element | Contains price details | |
GST | array of GST | Contains GST details | |
GST > name | string | Total | Name of charge |
GST > included | boolean | true / false | ‘true’ if the charge is already included in the price. |
GST > currency | string | USD | Three-letter ISO currency code |
GST > amount_type | string | value | Defines type of amount. 'value' represents flat fee. |
GST > amount | integer | 3 | amount of charge |
net | array of net | Net price excluding taxes | |
net > name | string | Net / CustomMarkup | Name of charge. You will receive amount for both 'net' and 'CustomMarkup'. net specifies the actual net fare of the hotel, while CustomMarkup specifies your markup amount. This will only contain a value if you've added markup percentage from the dashboard. This element will also mention "included='false'" which means the CustomMarkup is not already added in the minprice. You need to add it on your own. |
net > included | boolean | true / false | ‘true’ if the charge is already included in the price. |
net > currency | string | USD | Three-letter ISO currency code |
net > amount_type | string | value | Defines type of amount. 'value' represents flat fee. |
net > amount | string | 362 | amount of charge |
distance | array of distance | Distance between geolocation (Latitude and Longitude) passsed in request of this API and hotel geolocation. If geolocation is not passed in request of this API then by default API will grab the geolocation of City. | |
type | string | KM / MILE | Distance unit measurement |
distance | float | 5952.3 | Actual distance value |
distanceUnit | string | 0 / 1 | 0' for KM and '1' for MILE |
hotelDescription | string | Description of hotel | |
City | string | Manchester | City of hotel |
This API is used for getting detailed rates, for the requested property, along with all the information related to the property.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/stays/v2/properties
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"search_id":"cg5n53k7lepctl2dkd3loeze6y*BJ7rZNWL","HotelCodes":"1869723","FromDate":"2024-04-22","ToDate":"2024-04-23","Currency":"USD","Occupancies":[{"NoOfAdults":2,"ChildrenAges":[5,7]},{"NoOfAdults":2}],"ClientNationality":"IN","ProviderCode":"1G","HotelChain":"CP","Availability":"Available","HotelTransportation":"31","VendorLocationKey":"rYqrL4UqWDKA8VF2bAAAAA==","ReserveRequirement":"Guarantee"}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
HotelCodes | string | 1869723 | REQUIRED | Unique code for a hotel. This is equivalent to 'hotelData > HotelCode' from the Search API response. |
FromDate | string | 2024-06-23 | REQUIRED | Check-in date. Format must be yyyy/mm/dd. |
ToDate | string | 2024-06-24 | REQUIRED | Check-out date. Format must be yyyy/mm/dd. |
Currency | string | INR | REQUIRED | Preferred currency for prices in response. Three letter ISO Currency code. |
Occupancies | array of occupancy elements | REQUIRED | Contains details of occupancies. Number of elements in this array equals to number of rooms. Each element in this array represents a room. | |
NoOfAdults | string | 1 | REQUIRED | Number of adults |
ChildrenAges | array of children's ages | REQUIRED | Ages of childrens. Number of elements in this array is equal to number of children guest. | |
ClientNationality | string | IN | REQUIRED | Nationality of the guest. Two-letter ISO Country code. |
ProviderCode | string | 1G | REQUIRED | Required for internal reference. Please pick from the parameter with same name from the search response |
HotelChain | string | CP | REQUIRED | Required for internal reference. Please pick from the parameter with same name from the search response |
Availability | string | Available | REQUIRED | Required for internal reference. Please pick from the parameter with same name from the search response |
HotelTransportation | string | 31 | REQUIRED | Required for internal reference. Please pick from the parameter with same name from the search response |
VendorLocationKey | string | rYqrL4UqWDKA5mmnWAAAAA== | REQUIRED | Required for internal reference. Please pick from the parameter with same name from the search response |
ReserveRequirement | string | Other | REQUIRED | Required for internal reference. Please pick from the parameter with same name from the search response |
See response here
Parameter | Type | Example Value | Description |
---|---|---|---|
search_id | string | ub5gauftebuhrjewtem65tbvvu$3cd479ae-01ed-4 | Unique ID that uniquely identifies a request. It will be expired after some minutes. |
Errors | element | Holds error information | |
ProductErrors > ErrorCode | string | E_C_13 | Unique error code |
ProductErrors > Message | string | Invalid apikey sent in header | Description of error |
no_of_rooms | integer | 2 | Number of rooms |
no_of_nights | integer | 1 | Number of nights |
no_of_hotels | integer | 0 | Number of hotels |
no_of_children | integer | 2 | Number of childrens |
no_of_adults | integer | 3 | Number of adults |
hotel | element | Contains hotel details | |
ratetype | element | Contains different type of rates | |
bundledRates | array of bundled rates | Contains bundled rates. Bundled rate shows the prices of multiple rooms combinely. | |
supports_cancellation | boolean | true / false | true' if booking can be cancelled |
supports_amendment | boolean | true' if booking can be amended | |
rooms | array of rooms | Contains room details | |
rooms > room_type | string | Apartment, 2 Bedrooms | Type of room |
rooms > no_of_rooms | integer | 1 | Number of rooms |
rooms > no_of_children | integer | 1 | Number of childrens |
rooms > no_of_adults | integer | 2 | Number of adults |
rooms > description | string | Apartment, 2 Bedrooms | Description of room |
rooms > children_ages | array of children ages | Contains ages of children | |
room_code | string | Room code representing rooms in rate | |
rate_type | string | bookable | Possible values are ‘bookable’ , ‘refetch’ and ‘recheck’. |
rate_key | string | Unique key representing rate | |
rate_comments | string |
Object of dynamic key value
pairs. Eg: { “comments”: “Rate comments come here”, “checkin-Instruction”: “Checking details come here” } |
|
promotions_details | array of promotions (strings) | Contains promotions, if any | |
price_details | element | ||
GST | array of GST | Contains GST details | |
GST > name | string | Total | Name of charge |
GST > included | boolean | true / false | ‘true’ if the charge is already included in the price. |
GST > currency | string | USD | Three-letter ISO currency code |
GST > amount_type | string | value | Defines type of amount. 'value' represents flat fee. |
GST > amount | integer | 3 | amount of GST |
net | array of net | Net price excluding taxes | |
net > name | string | Net / CustomMarkup | Name of charge. You will receive amount for both 'net' and 'CustomMarkup'. net specifies the actual net fare of the hotel, while CustomMarkup specifies your markup amount. This will only contain a value if you've added markup percentage from the dashboard. This element will also mention "included='false'" which means the CustomMarkup is not already added in the convertedPrice. You need to add it on your own. |
Netprice > included | boolean | true / false | ‘true’ if the charge is already included in the price. |
Netprice > currency | string | USD | Three-letter ISO currency code |
Netprice > amount_type | string | value | Defines type of amount. 'value' represents flat fee. |
Netprice > amount | string | 362 | amount of net price |
convertedPrice | integer | 365 | Total price including taxes |
payment_type | array | AT_WEB | Allowed payment type. Possible Values: AT_WEB |
other_inclusions | array of other inclusions | Contains other inclusions , if available | |
non_refundable | boolean | true / false | true' if the rate is Non-refundable |
no_of_rooms | integer | 2 | Number of rooms included in this rate |
includes_wifi | boolean | true / false | true' if wi-fi is included in this rate |
includes_boarding | boolean | true / false | true' if boarding is included in this rate |
group_code | string | wsdbjylcxn4ufdya7kiw2hw74dnkrqy | Don't worry about it. This is used for internal purpose. |
currency | string | USD | Three-letter ISO currency code ofprice |
currsymbol | string | Currency symbol of price | |
cancellation_policy | element | Cancellation policy details | |
under_cancellation | boolean | true / false |
true' if the booking is
under cancellation, i.e. cancellation charges will apply should a cancellation be made later. |
details | array | List of cancellation windows and applicable charges | |
details > nights | integer | 1 | Charges in number of nights |
details > converted_from | string | 30-09-17 | Date from which the charge in this window applies |
details > converted_flat_fee | float | 0 | Charge applicable |
details > currency | string | USD | Three-letter ISO currency code |
details > percent | float | 0 | Charges in percentage |
converted_cancel_by_date | string | 30-09-17 | Last date for cancellation without charges |
amount_type | string | nights |
Defines the type of value
in details: value represents amount percent represents percentage nights represents charges in number of nights. For nights, in some cases, percentage is also returned. In those cases charges have to be calculated by taking (percentage x nights) value. |
allotment | integer | 5 | Number of rooms available for a particular room type |
cancellation_policy_code | string | uwird5tpwf3spucqu2nwigox4xmklqfm62zorvl63i | Unique ID for cancellation policy |
boarding_details | array of boarding details | Contains boarding details, if available | |
apiref | string | NRG / BH | Don't worry about it. This is used for internal purpose. |
NonbundRates | array of Non Bundled rates | Contains details of non bundled rates. Non Bundled rate shows the prices of rooms seperately. | |
rateKey | string | Internal rate key to be used for confirmation | |
rateClass | string | NOR |
Values: NOR = Normal NRF = Non-refundable SPE = Special OFE = Offer PAQ = Package NRP = Non-refundable package |
convertedNet | string | 3263 | Total price including taxes |
allotment | integer | 5 | Number of rooms available for a particular room type |
paymentType | string | AT_WEB | Allowed payment type. Possible Values: AT_WEB |
packaging | boolean | true / false | Identifies if the rate is for packaging |
boardName | string | BED AND BREAKFAST | Board name |
cancellationPolicies | array of policies elements | ||
convertedaAmount | float | Amount that will be charged after a certain date | |
convertedDate | string | Beginning date when the amount will be charged | |
rooms | integer | 1 | Number of rooms requested with the same occupancy |
adults | integer | 1 | Number of adults for the room |
children | integer | 1 | Number of children requested |
childrenAges | string | Children ages separated by commas | |
offers | array of offer elements | ||
offer | element | Contains offer details | |
offer > code | integer | Offer code | |
offer > offer | float | Offer amount | |
offer > name | string | Offer name | |
promotions | array | ||
rmcode | string | DBL.DX | Room code |
rmname | string | DOUBLE DELUXE | Room name |
apiref | string | NRG / BH | Don't worry about it. This is used for internal purpose. |
currency | string | INR | Three-letter ISO currency code |
currsymbol | string | Currency symbol of price | |
price_details | element | Contains price details | |
hotel_charges | array of hotel charges | Contains hotel charges | |
hotel_charges > name | string | Name of charge | |
hotel_charges > included | boolean | ‘true’ if the charge is already included in the price. | |
hotel_charges > currency | string | Three-letter ISO currency code | |
hotel_charges > amount_type | string | value | Defines the type of amount. 'value' represents flat fee. |
hotel_charges > amount | integer | amount of charge | |
images | string | Images of the hotel | |
hotel_code | string | 277630$H!0277630$0 | Unique code for a hotel |
hotelinfo | element | ||
hotelinfo > DBId | integer | 277630 | Don't worry about it. This is used for internal purpose. |
hotelinfo > fullName | string | The Heart Apartments at MediaCity UK | Full Name of hotel. |
hotelinfo > starCategory | integer | 4 | Star category of the hotel |
hotelinfo > cityname | string | Manchester | City of hotel |
hotelinfo > country | string | United Kingdom | Country of hotel |
hotelinfo > hotelAddresss | element | Contains hotel address | |
hotelAddresss > street | string | Salford Quays | Street of hotel |
hotelAddresss > streetNumber | string | Street number of hotel | |
hotelAddresss > city | string | Manchester | City of hotel |
hotelAddresss > zipCode | string | M50 2TJ | Zip code of hotel |
hotelAddresss > country | string | GB | Country of hotel |
hotelAddresss > latitude | string | 53.4720737 | Latitude of hotel |
hotelAddresss > longitude | string | -2.3000156 | Longitude of hotel |
hotelAddresss > addresslines | array of address lines | Contains adress of hotel | |
hotelinfo > hotelContacts | array of hotel contacts | ||
hotelContacts > phone_number | string | Phone number of hotel | |
hotelinfo > hotelEmails | array of hotel emails | Contains hotel email details | |
hotelEmails > emails | string | reservations@theheartapartments.co.uk | Email ID of hotel |
hotelinfo > hotelWebs | array of hotel web | Cotains hotel web details | |
hotelWebs > web_url | string | http://www.theheartapartments.co.uk/ | Web URL of hotel |
hotelinfo > hotelDescription | array of hotel descriptions | Contains description of hotel | |
hotelDescription > description | string | Description of hotel | |
hotelFacilities | array of hotel facilities | Contains hotel facilities | |
hotelFacilities > title | string | check-in hour | Hotel facility |
hotelinfo > hotelImages | array of hotel images | ||
checkout | string | 2018-04-24 | Check-out date. Format must be yyyy/mm/dd. |
checkin | string | 2018-04-23 | Check-in date. Format must be yyyy/mm/dd. |
currCurrency | string | INR | Searched currency |
errors | array of errors | Contains errors, if any | |
error > code | integer | 0 | Error code |
error > message | string | Error message |
This API is used for pricing the hotel room.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/stays/v2/price
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"apiref":"1G","groupcode":"xgirbylkwb6xtgj647fdssmex6nkls5j6226lvlq","rateKey":["4phfnmbw4yvc7fstusmwghos4li6hjxe6gzo3htz3zcbb67cl2yar67pibugleeqs5ffz6w4xj5rqpskxl6soo6s2grcry56v7ts7cgl46oafu2oqvrdooqwfe26mosex7bcvxtffabastvfw3dmyrhz5dd3mj7kbocunpsqrrhy3wp7aissbaa5sghgn6auppeqgxtsajisipw5xkaxnqrhvxhenz6sb3ot7buhfxqkcdgdgh7hku2sc3r2mkbw"],"search_id":"ft3eumscaistpbtswsx5f4yz4i*Sg7cPnXn$51ba5d2f-01f1-4","ProviderCode":"NRG","ParticipationLevel":"4","HotelLocation":"MAN","HotelChain":"CP","Availability":"Available","HotelTransportation":"31","VendorLocationKey":"rYqrL4UqWDKA5mmnWAAAAA==","ReserveRequirement":"Other"}
Price API Request Parameters | Equivalent Properties API Response Parameters |
---|---|
apiref | hotel > ratetype > bundledRates/NonbundRates > apiref |
groupcode | hotel > ratetype > bundledRates/NonbundRates > group_code |
rateKey | hotel > ratetype > bundledRates/NonbundRates > rate_key |
search_id | search_id |
See response here
Parameter | Type | Example Value | Description |
---|---|---|---|
sellRequestId | string | qSLeB1a7wbgSnjtYf8cEPA== | Sell Request ID that uniquely identifies a request. It will be expired after some minutes. |
Errors | element | Holds error information | |
ProductErrors > ErrorCode | string | E_C_13 | Unique error code |
ProductErrors > Message | string | Invalid apikey sent in header | Description of error |
dbstay | element | Contains stay details | |
name | string | Le Villé Hotel | Name of hotel |
currCurrency | string | INR | Three-letter ISO currency code of price |
rooms | array of rooms | Contains room details | |
roomid | string | ueltI2MKcWGOETKuH78pCQ== | Unique ID for a room |
roomname | string | Superior Double Room, 1 King Bed, Canal View | Room name |
roomcode | string | Don't worry about this. It is used for internal purpose. | |
noroom | integer | 1 | Number of rooms |
nonRefundable | boolean | 1 | true if the rate is Non-refundable. Otherwise, cancellation policies applicable |
adultCount | integer | 2 | Number of adult guests |
childCount | integer | 1 | Number of child guests |
cancellationPolicies | array of canellation policy | Conatins cancellation policy, if any | |
checkIn | string | 2018-04-23T00:00:00 | Check-in date and time |
checkOut | string | 2018-04-24T00:00:00 | Check-out date and time |
totalprice | string | 20857 | Total fare excluding taxes |
taxprice | string | 0 | Tax price |
finalprice | string | 20857 | Total fare including taxes |
exptime | string | 2017-08-17T07:04:08 | Don't worry about this. It is used for internal purpose. |
isTimevalid | string | true / false | Don't worry about this. It is used for internal purpose. |
apiref | string | NRG / BH | Don't worry about this. It is used for internal purpose. |
address | string | 38-42 Canal Street Manchester M1 3WD Canal Street | Hotel address |
city | string | City of hotel | |
customMarkup | string | 40 | This will only contain a value if you've added markup percentage from the dashboard. This customMarkup is not already added in the finalprice. You need to add it on your own. |
This API is used for finally booking the room and storing the traveler information.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/stays/v2/issue
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"sellRequestId":"q8glbzWtPfioqa3Bd2FX2Q==","holder":{"name":"John","surname":"Doe","email":"tech@zenmer.com","countryCode":"+91","phoneNumber":"9999999999","PanNumber":"ATEST1234K"},"rooms":[{"roomid":"bVXjmXIBkNDWb8c5O2qDUA==","passengerDetails":[{"age":"28","title":"Mr.","name":"John","surname":"Doe","type":"AD","lead":1},{"age":"35","title":"Mr.","name":"Steve","surname":"Baslin","type":"AD"},{"age":"7","title":"Ms.","name":"Mike","surname":"Paul","type":"CH"},{"age":"5","title":"Mstr.","name":"Mikey","surname":"Paul","type":"CH"}]},{"roomid":"+MbTruLfl/CTuKsvtU4wGg==","passengerDetails":[{"age":"28","title":"Mr.","name":"Inacio","surname":"Lee","type":"AD"},{"age":"28","title":"Mr.","name":"George","surname":"Walker","type":"AD"}]}],"specialRequest":"adjoining rooms"}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
sellRequestId | string | Xm86hRlEHlFvts5mUblHIw== | REQUIRED | Pass value of 'sellRequestId' from Price API response |
holder | element | REQUIRED | Contains Lead passenger information | |
holder > name | string | John | REQUIRED | First name of lead passenger |
holder > surname | string | Doe | REQUIRED | Last name of lead passenger |
holder > email | string | john@gmail.com | REQUIRED | Email address of lead passenger |
holder > countryCode | string | +1 | REQUIRED | Cellular country code of lead passenger |
holder > phoneNumber | string | 9999999999 | REQUIRED | Phone number of lead passenger |
holder > PanNumber | string | ATEST1234K | OPTIONAL | Pan number of lead passenger |
rooms > roomid | string | lyk/TrA8aIF38u0O20oOaw== | REQUIRED | ID of a room. Pass value of 'dbstay > rooms > roomid' from Price API response. |
rooms > passengerDetails > age | integer | 35 | REQUIRED | Age of passenger |
rooms > passengerDetails > title | string | Mr. / Mrs. | REQUIRED | Title of passenger. At the end of the title there has to be a dot. For example 'Mr.' and 'Mrs.' are correct but 'Mr' and 'Mrs' are incorrect. |
rooms > passengerDetails > name | string | Steve | REQUIRED | First name of passenger |
rooms > passengerDetails > surname | string | Baslin | REQUIRED | Last name of passenger |
rooms > passengerDetails > type | string | AD / CH | REQUIRED |
AD=Adult CH=Child |
rooms > passengerDetails > lead | int | 1 / 0 | REQUIRED | You need to pass at least one passenger as a lead passenger. Pass 1 to assign a passenger as a lead passenger. |
specialRequest | string | please give adjoining rooms, next to each other | OPTIONAL | Optional special request to be passed along to the hotel |
{"bookingId":"24207064","sellRequestId":"5DG8qPZHcJIfuUMh+FUBRg==","ProductErrors":{"ErrorCode":null,"Message":null},"reference":"mBZCRpYClXZRE87E","status":"CONFIRMED","errors":[]}
Parameter | Type | Example Value | Description |
---|---|---|---|
bookingId | string | 70511478 | Unique Booking ID for future use |
sellRequestId | string | G4SdRL2KodAW1CtKL8HBiQ== | Unique ID for internal purpose |
Errors | element | Holds error information | |
ProductErrors > ErrorCode | string | E_C_13 | Unique error code |
ProductErrors > Message | string | Invalid apikey sent in header | Description of error |
reference | string | wbpelwd6hghw3a4hs7kmccpbaq | Booking reference received from the supplier that is used to identify the booking by the hotel |
status | string | CONFIRMED / PENDING / FAILED | Status of booking. You will possibly receive above 3 statuses from us. In case of pending, our support will get back to you on the status of the booking within 1 hour. |
errors | array | errors, if any |
This API is used to cancel a stay booking that you've previously made.
The URL endpoint is https://dev-sandbox-api.airhob.com/sandboxapi/stays/v1/cancellation
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"sellRequestId": "4CVjYxyPnYXMBwlghKVA+A=="}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
sellRequestId | string | REQUIRED | Pass the sellRequestId received from the Price API |
{"ProductErrors":{"ErrorCode":null,"Message":null},"status":"CONFIRMED","cancellation_reference":"1GHKFE","cancellation_charges":{"currency":"INR","amount":500},"concancel_date":null,"booking_reference":"1039294","booking_price":{"currency":"INR","amount":5000},"booking_id":"89204822"}
Parameter | Type | Example Value | Description |
---|---|---|---|
status | string | CONFIRMED/FAILED | Status of your cancellation request |
cancellation_reference | string | G4SdRL2KodAW1CtKL8HBiQ== | Unique ID against the cancellation request, if provided by the supplier |
cancellation_charges | element | Holds cancellation charges, if provided by the supplier |
Before giving live access with production URL’s, we need to verify and check if the integration is working fine. We request you to please share with us the BOOKING ID and booking voucher of below use cases.
1. 2 nights stay in any property with 1 room. Occupancy is 2 adults
2. 2 nights stay in any property with 2 rooms. Occupancy is 2 adults and 1 child in room 1 and 2 adults and 2 child in room 2
3. 2 nights stay in any property with 4 rooms. Occupancies as below:
Room 1 - 2 adults and 1 child
Room 2 - 2 adults and 2 child
Room 3 - 2 adults
Room 4 - 3 adults
Once we verify these use cases within 1 working day, we’ll get back to you with the confirmation or the problems if there are any.
Click here to get list of cities with country code that needs to be passed in the Stays Search API.
Error Code | Message |
---|---|
E_C_11 | Your API key has expired |
E_C_12 | Your IP address doesn't match |
E_C_13 | Invalid apikey sent in header |
E_C_14 | You don't have access to flights API. |
E_C_15 | You don't have access to tours API. |
E_C_16 | You don't have access to stays API. |
E_C_17 | You don't have access to activities API. |
E_C_18 | You don't have access to europass API. |
E_C_19 | You don't have access to trains API. |
E_C_20 | Something went wrong in authenticating product rights. |
E_C_21 | Your endpoint is of sandbox environment but you have passed mode as 'production'. Please pass mode as 'sandbox'. |
E_C_22 | Incorrect mode sent in header. For Sandbox environment pass 'sandbox' and for production environment pass 'production' |
E_C_23 | Your account is currently inactive. Please contact Airhob support team at api@airhob.com |
E_C_24 | You don't have enough balance in your Airhob Wallet. If you want us to add some dummy balance in your Airhob Wallet for sandbox environment, please write an email to api@airhob.com and we’ll do the rest. |
E_C_25 | Incomplete Header |
E_C_26 | Your endpoint is of production but you have passed mode as 'sandbox'. Please pass mode as 'production'. |
Error Code | Message |
---|---|
E_S_11 | No hotels found. |
E_S_12 | Something went wrong. |
E_S_13 | Bad request. |
E_S_14 | Missing FromDate. |
E_S_15 | Invalid FromDate. |
E_S_16 | Missing ToDate. |
E_S_17 | Invalid ToDate. |
E_S_18 | Missing Currency |
E_S_19 | Invalid Currency |
E_S_20 | Invalid ClientNationality |
E_S_21 | Missing Occupancies |
E_S_22 | Occupancies count should be less than six. |
E_S_23 | NoOfAdults should be greater than zero for a room. |
E_S_24 | A room can have a maximum of 4 guests. Summation of NoOfAdults and number of children must be less than 5. |
E_S_25 | Missing HotelCodes |
E_S_26 | Invalid HotelCodes |
E_S_27 | Missing FromDate. |
E_S_28 | Invalid FromDate. |
E_S_29 | Missing ToDate. |
E_S_30 | Invalid ToDate. |
E_S_31 | Missing Currency |
E_S_32 | Invalid Currency |
E_S_33 | Invalid ClientNationality |
E_S_34 | Invalid Occupancies |
E_S_35 | Occupancies count should be less than six. |
E_S_36 | NoOfAdults should be greater than zero for a room. |
E_S_37 | A room can have a maximum of 4 guests. Summation of NoOfAdults and number of children must be less than 5. |
E_S_38 | An error has occured. |
E_S_39 | search_id is missing. |
E_S_40 | Invalid search_id. |
E_S_41 | Your search_id has expired. |
E_S_42 | Search ID has expired |
E_S_43 | apiref is missing. |
E_S_44 | Invalid apiref. |
E_S_45 | rateKey is missing. |
E_S_46 | groupcode is missing. |
E_S_47 | A single rateKey is required for apiref of NRG. |
E_S_48 | rateKey count does not match the number of requested rooms. |
E_S_49 | sellRequestId is missing. |
E_S_50 | Invalid sellRequestId. |
E_S_51 | Room count doesn't match |
E_S_52 | Invalid sellRequestId. |
E_S_53 | Your sellRequestId has expired. |
E_S_54 | Insufficient holder details. |
E_S_55 | Invalid holder details. |
E_S_56 | Insufficient room details. |
E_S_57 | rooms count should be equal to or less than 5. |
E_S_58 | roomid is missing. |
E_S_59 | Invalid roomid. |
E_S_60 | passengerDetails is missing. |
E_S_61 | A room can have a maximum of 4 guests. Summation of NoOfAdults and number of children must be less than 5. |
E_S_62 | Wrong roomid passed. |
E_S_63 | Insufficient passengerDetails. |
E_S_64 | age is missing in one of the passenger's details. |
E_S_65 | type is missing in one of the passenger's details. |
E_S_66 | Invalid passenger type sent in one of the passenger's details. Possible values are 'AD' for adult and 'CH' for child. |
E_S_67 | title is missing in one of the passenger's details. |
E_S_68 | At the end of the title, there has to be a dot. For example, 'Mr.' and 'Mrs.' are correct but 'Mr' and 'Mrs' are incorrect. |
E_S_69 | name is missing in one of the passenger's details. |
E_S_70 | name can only have alphabets. Special characters and numbers are not accepted. |
E_S_71 | surname is missing in one of the passenger's details. |
E_S_72 | surname can only have alphabets. Special characters and numbers are not accepted. |
E_S_73 | Invalid Title. For child paasenger, title should be Ms. or Mstr. |
E_S_74 | Invalid Title. For adult paasenger, title should be Mr. or Ms. or Mrs. or Mstr. |
E_S_75 | Supplier error |
Here is booking flow of Activities API.
1. Search API.
Search API lets you search activities. We will send you all the available activities with the minimum price of each activity.
2. Detail API
In response of Search API, you will get many activities. Out of many activities, you can select an activity to see it's detailed information. This API will help you see activity's detailed information.
3. Price API
This API is used for pricing the activity. For your booking flow, it's recommended that you collect the payment of your customer after Price API is success and before Issue API is called.
4. Issue API
This API confirms your booking and provide you unique booking ID.
This API is used for searching activities.
The URL endpoint is
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{
"currency": "USD",
"fromDate": "2018-04-23",
"toDate": "2018-04-23",
"itemperPage": 10,
"pageNo": 1,
"searchFilterItems": [
{
"type": "destination",
"value": "SIN"
},
{
"type": "segment",
"value": "1"
},
{
"type": "priceFrom",
"value": "1"
},
{
"type": "priceTo",
"value": "200"
},
{
"type": "text",
"value": "night"
}
]
}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
currency | string | INR | REQUIRED | Preferred currency for the prices in the results.Three letter ISO Currency code. |
fromDate | string | 2017-10-20 | REQUIRED | Beginning date of the activity. Date format must be yyyy-mm-dd. |
toDate | string | 2017-10-21 | REQUIRED | End date of the activity. Date format must be yyyy-mm-dd |
itemperPage | integer | 10 | OPTIONAL | Number of items per page |
pageNo | integer | 1 | OPTIONAL | Number of page |
searchFilterItems | array of filter items | REQUIRED | ||
searchFilterItems > type | string | destination / text / priceFrom / priceTo / segment | destination' is required. Rest all other filters are optional. |
Type of search filter. Here
is a list of possible search filters. 1. destination Three letter unique destination code eg. SIN 2. text A keyword to search activities like scuba. 3. priceFrom Minimum price for activities 4. priceTo Maximum price for activities 5. segment Click here to see possible values for this filter in JSON format. |
searchFilterItems > value | string | SIN / E-U02-HOPONCUTTY / 6460 / 1260 / 203 | Unique destination code |
See response here
This API is used for getting details of an activity, along with all the information related to an activity.
The URL endpoint is
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{
"currency": "USD",
"fromDate": "2018-04-23",
"toDate": "2018-04-23",
"activityCode": "E-SG1-SG-MSENTO"
}
{
"modalities": [
{
"code": "HB-HJEN@STANDARD||",
"name": "Tour and S.E.A Aquarium",
"duration": {
"value": 1,
"metric": "DAYS"
},
"destinationCode": null,
"amountsFrom": [
{
"paxType": "ADULT",
"ageFrom": 13,
"ageTo": 999,
"convertedAmount": 9245,
"convertedBoxOfficeAmount": 8894
},
{
"paxType": "CHILD",
"ageFrom": 3,
"ageTo": 12,
"convertedAmount": 5907,
"convertedBoxOfficeAmount": 5732
}
],
"cancellationPolicies": [
{
"dateFrom": "2017-10-18T00:00:00.000Z",
"convertedAmount": 9245
}
],
"amountUnitType": null,
"rates": null,
"supplierInformation": null,
"providerInformation": null,
"questions": null,
"comments": null
},
{
"code": "HB-HJNEN@STANDARD||",
"name": "Tour",
"duration": {
"value": 1,
"metric": "DAYS"
},
"destinationCode": null,
"amountsFrom": [
{
"paxType": "ADULT",
"ageFrom": 13,
"ageTo": 999,
"convertedAmount": 6420,
"convertedBoxOfficeAmount": 6226
},
{
"paxType": "CHILD",
"ageFrom": 3,
"ageTo": 12,
"convertedAmount": 4238,
"convertedBoxOfficeAmount": 4150
}
],
"cancellationPolicies": [
{
"dateFrom": "2017-10-18T00:00:00.000Z",
"convertedAmount": 6420
}
],
"amountUnitType": null,
"rates": null,
"supplierInformation": null,
"providerInformation": null,
"questions": null,
"comments": null
}
],
"errors": [],
"SearchReferenceId": "c9bbeb42-4407-4"
}
This API is used for pricing the activity.
The URL endpoint is
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{
"code": "HB-HJEN@STANDARD||",
"activityCode": "E-SG1-SG-MSENTO",
"fromDate": "2018-04-23",
"toDate": "2018-04-23",
"oldPrice": 0,
"nationality": "IN",
"SearchReferenceId": "c9bbeb42-4407-4",
"paxDetails": [
{
"age": 25,
"title": "Mr.",
"name": "John",
"surname": "Doe",
"type": "ADULT"
},
{
"age": 10,
"title": "Mr.",
"name": "Brian",
"surname": "Doe",
"type": "CHILD"
}
],
"holder": {
"name": "John",
"email": "john@gmail.com",
"surname": "Doe",
"countryCode": "+1",
"telephone": "9999999999"
}
}
{
"errors": [],
"sellRequestId": "lJRoqMYu",
"dbactivity": {
"name": "A morning at Sentosa island",
"modalities": {
"code": null,
"name": "Tour and S.E.A Aquarium",
"duration": {
"value": 1,
"metric": "DAYS"
},
"destinationCode": null
},
"paxes": [],
"cancellationPolicies": [
{
"dateFrom": "11-10-2017",
"convertedAmount": 7577
}
],
"questions": [
{
"code": "ARRIVHOTEL",
"text": "Please advise your hotel check in date",
"required": false
},
{
"code": "HOTEL",
"text": "Please advise the name of your hotel",
"required": false
},
{
"code": "PAX NAME",
"text": "PLEASE PROVIDE FULL FIRST NAME AND SURNAME OF ALL PASSENGERS TRAVELLING",
"required": false
}
],
"comments": [
{
"type": "CONTRACT_REMARKS",
"text": "VOUCHER INFORMATION\t\nActivity Type : \tExcursions with Hotel Pick up\nSupplier phone number\t6238 2672\nSupplier Language: \tEnglish \nSupplier Schedule: \tDaily\nRedeem type: \tPrinted Voucher\nRedeem point schedule: \tOn Tour Service Date\nMeeting point/ Pick-up location: \tHotel Lobby\nPick-up time: \t08:00AM \nDrop-off location: \tHotel Lobby\nDrop-off time: \t12:30PM\nOpening/ Start time: \t08:30AM\nClosing/ End time: \t12:30PM\nOpening days/period: \tDaily\nDuration: \t4 Hours\nGuide language: \tEnglish \nAlternative in case of conditions which affect the activity operation \tTour will operate on rain or shine conditions.Cable Car Rides may not operate due to bad weather. In the event of maintance, Cable car in sentosa island be replaced. Merlion may temporarily closed due to bad weather. \nDress-code: \tCasual\nID, licence, certificate, proofing documents: \tPassport is much required.\nMin. Age: \t0\nMax. Age: \t80\nVoucher validity: \t1 day\n"
}
],
"Datefrom": "2018-04-23T00:00:00",
"totalprice": 7578,
"taxprice": 0,
"finalprice": 7578,
"urls": {
"resource": "https://media.stage.activitiesbank.com/27204/ENG/B/27204_1.jpg"
},
"taxes": []
},
"IspriceChanged": true,
"OldPrice": 0,
"TotalPrice": 7578
}
This API is used for finally booking the activity.
The URL endpoint is
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{
"sellRequestId": "lJRoqMYu",
"answers": [
{
"answer": "2018-04-23",
"code": "ARRIVHOTEL"
},
{
"answer": "Adventure Cove Waterpark",
"code": "HOTEL"
},
{
"answer": "John Doe",
"code": "PAX NAME"
}
]
}
{
"bookingId": "55717796",
"reference": "256-2848569",
"status": "CONFIRMED",
"sellRequestId": "lJRoqMYu",
"errors": [],
"vouchers": []
}
This API is used for getting images of an activity.
The URL endpoint is
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{
"ActCode": "E-SG1-SG-MSENTO"
}
{
"images": [
{
"visualizationOrder": 1,
"mimeType": "image/jpeg",
"urls": [
{
"dpi": 72,
"height": 75,
"width": 100,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/S/27204_1.jpg",
"sizeType": "SMALL"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/XL/27204_1.jpg",
"sizeType": "XLARGE"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/B/27204_1.jpg",
"sizeType": "RAW"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/LPP/27204_1.jpg",
"sizeType": "RAW"
},
{
"dpi": 72,
"height": 200,
"width": 267,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/L/27204_1.jpg",
"sizeType": "LARGE"
},
{
"dpi": 72,
"height": 130,
"width": 173,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/M/27204_1.jpg",
"sizeType": "MEDIUM"
}
]
},
{
"visualizationOrder": 2,
"mimeType": "image/jpeg",
"urls": [
{
"dpi": 72,
"height": 75,
"width": 100,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/S/27204_2.jpg",
"sizeType": "SMALL"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/XL/27204_2.jpg",
"sizeType": "XLARGE"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/B/27204_2.jpg",
"sizeType": "RAW"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/LPP/27204_2.jpg",
"sizeType": "RAW"
},
{
"dpi": 72,
"height": 200,
"width": 267,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/L/27204_2.jpg",
"sizeType": "LARGE"
},
{
"dpi": 72,
"height": 130,
"width": 173,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/M/27204_2.jpg",
"sizeType": "MEDIUM"
}
]
},
{
"visualizationOrder": 3,
"mimeType": "image/jpeg",
"urls": [
{
"dpi": 72,
"height": 75,
"width": 100,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/S/27204_3.jpg",
"sizeType": "SMALL"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/XL/27204_3.jpg",
"sizeType": "XLARGE"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/B/27204_3.jpg",
"sizeType": "RAW"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/LPP/27204_3.jpg",
"sizeType": "RAW"
},
{
"dpi": 72,
"height": 200,
"width": 267,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/L/27204_3.jpg",
"sizeType": "LARGE"
},
{
"dpi": 72,
"height": 130,
"width": 173,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/M/27204_3.jpg",
"sizeType": "MEDIUM"
}
]
},
{
"visualizationOrder": 4,
"mimeType": "image/jpeg",
"urls": [
{
"dpi": 72,
"height": 75,
"width": 100,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/S/27204_4.jpg",
"sizeType": "SMALL"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/XL/27204_4.jpg",
"sizeType": "XLARGE"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/B/27204_4.jpg",
"sizeType": "RAW"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/LPP/27204_4.jpg",
"sizeType": "RAW"
},
{
"dpi": 72,
"height": 200,
"width": 267,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/L/27204_4.jpg",
"sizeType": "LARGE"
},
{
"dpi": 72,
"height": 130,
"width": 173,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/M/27204_4.jpg",
"sizeType": "MEDIUM"
}
]
},
{
"visualizationOrder": 5,
"mimeType": "image/jpeg",
"urls": [
{
"dpi": 72,
"height": 75,
"width": 100,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/S/27204_5.jpg",
"sizeType": "SMALL"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/XL/27204_5.jpg",
"sizeType": "XLARGE"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/B/27204_5.jpg",
"sizeType": "RAW"
},
{
"dpi": 72,
"height": 768,
"width": 1024,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/LPP/27204_5.jpg",
"sizeType": "RAW"
},
{
"dpi": 72,
"height": 200,
"width": 267,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/L/27204_5.jpg",
"sizeType": "LARGE"
},
{
"dpi": 72,
"height": 130,
"width": 173,
"resource": "http://media.stage.activitiesbank.com/27204/ENG/M/27204_5.jpg",
"sizeType": "MEDIUM"
}
]
}
],
"ErrorMessage": null
}
Before giving live access with production URL’s, we need to verify and check if the integration is working fine. We request you to please share with us the BOOKING ID of below use cases.
1. Any activity with 2 adults and 1 child
2. Any activity with 2 adults and 1 child that includes a special voucher. That would probably be Discovery Code in Orlando.
Once we verify these use cases within 1 working day, we’ll get back to you with the confirmation or the problems if there are any.
Error Code | Message |
---|---|
E_C_11 | Your API key has expired |
E_C_12 | Your IP address doesn't match |
E_C_13 | Invalid apikey sent in header |
E_C_14 | You don't have access to flights API. |
E_C_15 | You don't have access to tours API. |
E_C_16 | You don't have access to stays API. |
E_C_17 | You don't have access to activities API. |
E_C_18 | You don't have access to europass API. |
E_C_19 | You don't have access to trains API. |
E_C_20 | Something went wrong in authenticating product rights. |
E_C_21 | Your endpoint is of sandbox environment but you have passed mode as 'production'. Please pass mode as 'sandbox'. |
E_C_22 | Incorrect mode sent in header. For Sandbox environment pass 'sandbox' and for production environment pass 'production' |
E_C_23 | Your account is currently inactive. Please contact Airhob support team at api@airhob.com |
E_C_24 | You don't have enough balance in your Airhob Wallet. If you want us to add some dummy balance in your Airhob Wallet for sandbox environment, please write an email to api@airhob.com and we’ll do the rest. |
E_C_25 | Incomplete Header |
E_C_26 | Your endpoint is of production but you have passed mode as 'sandbox'. Please pass mode as 'production'. |
Error Code | Message |
---|---|
E_A_11 | No activities found. Try searching with different destination or text or priceFrom or priceTo or segment. |
E_A_12 | currency is missing. |
E_A_13 | Invalid currency. |
E_A_14 | fromDate is missing. |
E_A_15 | fromDate is not in correct format. |
E_A_16 | toDate is missing. |
E_A_17 | toDate is not in correct format. |
E_A_18 | searchFilterItems is missing. |
E_A_19 | The value provided for filter 'type' is not allowed. The allowed filters are: 'destination, priceFrom, priceTo, segment, text'. Please review the information provided and re-send your request. |
E_A_20 | value is missing. |
E_A_21 | destination is required and rest all other filters are optional. |
E_A_22 | Invalid value for segment. |
E_A_23 | Invalid value for destination. |
E_A_24 | Internal server error |
E_A_25 | No activities found. |
E_A_26 | activityCode is missing. |
E_A_27 | Invalid activityCode. |
E_A_28 | No result found for requested activity. |
E_A_29 | Something went wrong |
E_A_30 | nationality is missing |
E_A_31 | Invalid nationality. |
E_A_32 | SearchReferenceId is missing. |
E_A_33 | Invalid SearchReferenceId. |
E_A_34 | Your SearchReferenceId has expired. |
E_A_35 | code is missing. |
E_A_36 | holder is missing. |
E_A_37 | name is missing in holder. |
E_A_38 | name can only have alphabets. Special characters and numbers are not accepted. |
E_A_39 | surname is missing in holder. |
E_A_40 | surname can only have alphabets. Special characters and numbers are not accepted. |
E_A_41 | email is missing in holder. |
E_A_42 | countryCode is missing in holder. |
E_A_43 | telephones is missing in holder. |
E_A_44 | paxDetails are missing. |
E_A_45 | Please ensure that there is atleast one 'ADULT' passenger. |
E_A_46 | Holder must be one of the ADULT passengers. |
E_A_47 | age is missing for one of the passengers. |
E_A_48 | type is missing for one of the passengers. |
E_A_49 | Invalid type for one of the passengers. Please send 'ADULT' for Adult and 'CHILD' for child. |
E_A_50 | title is missing for one of the passengers. |
E_A_51 | surname is missing for one of the passengers. |
E_A_52 | name is missing for one of the passengers |
E_A_53 | Invalid Title. For child paasenger, title should be Ms. or Mstr. |
E_A_54 | Invalid Title. For adult paasenger, title should be Mr. or Ms. or Mrs. or Mstr. |
E_A_55 | We couldn't fetch any response. |
E_A_56 | sellRequestId is missing. |
E_A_57 | Invalid sellRequestId. |
E_A_58 | Your sellRequestId has expired. |
E_A_59 | answers are missing. |
E_A_60 | One or more answers are greater than questions. |
E_A_61 | One or more answer is missing. |
We've created an API for easy format validation of the GST number. Just pass us the GST number and the API will tell if the number is in the correct format.
The URL of the web method is
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"gstnumber":"27AABCT6166A1ZJ"}
true
This API gives currenct balance of your Wallet.
The URL of the web method is
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
No request is needed.
[
{
"Currency": "INR",
"Amount": 70232
},
{
"Currency": "USD",
"Amount": 1894
}
]
This API allows you to create a new traveler profile.
The URL endpoint can be shared with you once your API activation is completed
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"basic":{"firstName":"Vernon","lastName":"Bear","email":"vernon.bear@yourcompany.com"},"extraDetails":{"dateOfBirth":"22/07/1998","countryCode":"91","phoneNumber":"TMXQLDGpKAuCoTShq71sqg==","title":"Mr","designation":"VP Advertising","employeeId":"G6-04952","activation_type":"auto","clientId":"gnkjg-36-hte35535-542heth","customerId":"AGM-126"},"groupCategories":[{"categoryId":"6","categoryName":"Marketing"},{"categoryId":"36","categoryName":"VP LEVEL"},{"categoryId":"15","categoryName":"NYC"}]}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
firstName | string | Vernon | REQUIRED | This would be the first name of the traveler |
lastName | string | Bear | REQUIRED | This would be the last name of the traveler |
string | vernon.bear@yourcompany.com | REQUIRED | This would be the offical company email of the traveler | |
dateOfBirth | string | 22/07/1998 | REQUIRED | This would be the offical company email of the traveler in the format DD/MM/YYYY |
countryCode | string | 91 | REQUIRED | This would be the dialing country code of the traveler (without the preceding '+' sign) |
phoneNumber | string | 9999999999 | REQUIRED | This would be the mobile number of the traveler |
title | string | Mr | REQUIRED | Mr / Mrs / Ms |
designation | string | VP Advertising | OPTIONAL | This would be the company designation of the traveler |
employeeId | string | G6-04952 | OPTIONAL | This would be the company employee ID of the traveler |
activation_type | string | auto | REQUIRED | Pass 'auto' if you wish to activate the profile immediately. Pass 'self' if you wish the traveler to get an activation email that allows to set an account password as well. |
clientId | string | gnkjg-36-hte35535-542heth | REQUIRED | A unique ID identifying the employee's company |
customerId | string | AGM-126 | REQUIRED | A unique ID identifying the TMC |
groupCategories | array | OPTIONAL | Pass the custom fields that maps the traveler to the relevant company defined group categories. You can use the RetrieveGroupCategories API to fetch the list of all company defined group categories | |
groupCategories>categoryId | string | 6 | REQUIRED | The unique ID of the chosen group-category |
groupCategories>categoryName | string | Marketing | REQUIRED | The name of the chosen group-category |
{"status":registered,"Message":"You have successfully registered.","userId":"ouy-35920-gwrh93582-24jgnjr"}
Parameter | Type | Example Value | Description |
---|---|---|---|
status | string | registered | The status of the operation. The possible values are registered/already_exists/failed |
Message | string | You have successfully registered | This will have a message highlighting any information to help you understand the failure or success state. |
userId | string | ouy-35920-gwrh93582-24jgnjr | A unique user ID for any future reference |
This API allows you to retrieve an existing traveler profile using the unique userId.
The URL endpoint can be shared with you once your API activation is completed
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"userId":"gwrgj-76-rhtk29572-020ctbro","customerId":"AGM-126"}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
userId | string | gwrgj-76-rhtk29572-020ctbro | REQUIRED | The unique ID of the traveler returned in the CreateProfile API |
customerId | string | AGM-126 | REQUIRED | A unique ID identifying the TMC |
{"userDetails":{"UserId":"gwrgj-76-rhtk29572-020ctbro","FirstName":"Brad","LastName":"Bear","Email":"brad.bear6@yourcompany.com","ActiveStatus":1,"Gender":"Mr","DateOfBirth":" 1991-12-21","CountryCode":"+91","PhoneNumber":"8596478588","ProfileImage":"","Designation":"General Manager","EmployeeId":"145909"},"emergencyDetails":[],"travelDoc":[],"loyaltyPrograms":[],"groupCategories":[{"groupName":"Department","categoryName":"Marketing","categoryId":2},{"groupName":"Cost Center","categoryName":"Production","categoryId":29},{"groupName":"Grade","categoryName":"L6","categoryId":114},{"groupName":"Location","categoryName":"London","categoryId":74},{"groupName":"Position","categoryName":"EMT","categoryId":82}],"customProfileFields":[{"profName":"zip_code","profValue":"91789"},{"profName":"blood_group","profValue":"O+"}],"userPreferences":[],"userTravelArranger":[]}
This API allows you to update an existing traveler profile using the unique userId.
The URL endpoint can be shared with you once your API activation is completed
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"userId":"gwrgj-76-rhtk29572-020ctbro","FirstName":"Brad","LastName":"Bear","Email":"brad.bear6@yourcompany.com","Gender":"Mr","DateOfBirth":" 1991-12-21","CountryCode":"+91","PhoneNumber":"9999999999","Designation":"General Manager","EmployeeId":"145909","groupCategories":[{"groupName":"Department","categoryName":"Marketing","categoryId":2},{"groupName":"Cost Center","categoryName":"Production","categoryId":29},{"groupName":"Grade","categoryName":"L6","categoryId":114},{"groupName":"Location","categoryName":"London","categoryId":74},{"groupName":"Position","deprtName":"EMT","deprtID":82}],"customProfileFields":[{"profName":"Address","profValue":"Palm Meadows, Doric Corp"}]}
{"IsSuccess":true,"Message":"You have successfully updated the profile.","userId":"gwrgj-76-rhtk29572-020ctbro"}
Parameter | Type | Example Value | Description |
---|---|---|---|
IsSuccess | bool | true/false | The status of the operation. The result will be true is the operation was successful, and false if it wasn't |
Message | string | You have successfully updated the profile | This will have a message highlighting any information to help you understand the failure or success state. |
userId | string | gwrgj-76-rhtk29572-020ctbro | A unique user ID for any future reference |
This API allows you to fetch the list of company defined group categories.
The URL endpoint can be shared with you once your API activation is completed
The HTTP verb to be used is GET.
Data is to be supplied in the body of the request as JSON encoded value.
{"group":[{"name":"Department","groupCategories":[{"categoryId":"6","categoryName":"Marketing"},{"categoryId":"7","categoryName":"Sales"},{"categoryId":"8","categoryName":"Tech"}]},{"name":"Grade","groupCategories":[{"categoryId":"36","categoryName":"VP LEVEL"},{"categoryId":"37","categoryName":"CXO"},{"categoryId":"38","categoryName":"BOD"}]},{"name":"Location","groupCategories":[{"categoryId":"15","categoryName":"NYC"},{"categoryId":"16","categoryName":"LON"},{"categoryId":"17","categoryName":"SIN"},{"categoryId":"18","categoryName":"BOM"}]}]}
Parameter | Type | Example Value | Description |
---|---|---|---|
group | Array | The list of all groups | |
group>name | string | Department | The name of the group under which all categories exist |
group>groupCategories | Array | The list of all group categories under a group that the traveler can select | |
group>groupCategories>categoryId | string | 6 | A unique ID |
group>groupCategories>categoryName | string | Marketing | Name of the group category |
This API allows you to send automated air quotes to a traveler.
The URL endpoint can be shared with you once your API activation is completed
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
One-way journey
{"TripType":"O","ClassType":"Economy","OriginDestination":[{"Origin":"DEL","Destination":"DXB","TravelDate":"04/23/2025"}],"userId":"gwrgj-76-rhtk29572-020ctbro","clientId":"gnkjg-36-hte35535-542heth","customerId":"AGM-126"}
Round-trip journey
{"TripType":"R","ClassType":"Economy","OriginDestination":[{"Origin":"LON","Destination":"NYC","TravelDate":"04/23/2025"},{"Origin":"NYC","Destination":"LON","TravelDate":"04/28/2025"}],"userId":"gwrgj-76-rhtk29572-020ctbro","clientId":"gnkjg-36-hte35535-542heth","customerId":"AGM-126"}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
TripType | string | "O"/"R" | REQUIRED | Either one way or round trip. "O" for one way and "R" for round trip. It must be in uppercase. |
ClassType | string | "Economy"/"PremiumEconomy"/"Business"/"First" | REQUIRED | Cabin class of flight. |
OriginDestination | array | REQUIRED | List that specifies origin destination and travel date. For one-way, it will have one element. For round-trip, it will have two elements. | |
Origin | string | "SFO" | REQUIRED | Three character IATA code of origin airport |
Destination | string | "LAX" | REQUIRED | Three character IATA code of destination airport |
TravelDate | string | "04/23/2025" | REQUIRED | Flight departure date. This date must be in mm/dd/yyyy |
userId | string | gwrgj-76-rhtk29572-020ctbro | REQUIRED | The traveler's Zenmer profile ID |
clientId | string | gnkjg-36-hte35535-542heth | REQUIRED | A unique ID identifying the employee's company |
customerId | string | AGM-126 | REQUIRED | A unique ID identifying the TMC |
{"IsSuccess":true,"Message":"You have successfully triggered the flight quotes."}
Parameter | Type | Example Value | Description |
---|---|---|---|
IsSuccess | bool | true/false | The status of the operation. The result will be true is the operation was successful, and false if it wasn't |
Message | string | You have successfully registered with us | This will have a message highlighting any information to help you understand the failure or success state. |
This API allows you to send automated hotel quotes to a traveler.
The URL endpoint can be shared with you once your API activation is completed
The HTTP verb to be used is POST.
Data is to be supplied in the body of the request as JSON encoded value.
{"City":"Manchester","Country":"GB","FromDate":"2025-04-22","ToDate":"2025-04-23","userId":"gwrgj-76-rhtk29572-020ctbro","clientId":"gnkjg-36-hte35535-542heth","customerId":"AGM-126"}
Parameter | Type | Example Value | Required | Description |
---|---|---|---|---|
City | string | Manchester | REQUIRED | Pass the city for which you want to fetch hotel rates. You need to make sure the city name matches with the city master data file, present under 'Important assets' section of Stays API. |
Country | string | GB | REQUIRED | Pass the country code against the city passed above. You need to make sure the code matches with the master data file, present under 'Important assets' section of Stays API. |
FromDate | string | 2024-06-23 | REQUIRED | Check-in date. Format must be yyyy/mm/dd. |
ToDate | string | 2024-06-24 | REQUIRED | Check-out date. Format must be yyyy/mm/dd. |
userId | string | gwrgj-76-rhtk29572-020ctbro | REQUIRED | The traveler's Zenmer profile ID |
clientId | string | gnkjg-36-hte35535-542heth | REQUIRED | A unique ID identifying the employee's company |
customerId | string | AGM-126 | REQUIRED | A unique ID identifying the TMC |
{"IsSuccess":true,"Message":"You have successfully triggered the hotel quotes."}
Parameter | Type | Example Value | Description |
---|---|---|---|
IsSuccess | bool | true/false | The status of the operation. The result will be true is the operation was successful, and false if it wasn't |
Message | string | You have successfully registered with us | This will have a message highlighting any information to help you understand the failure or success state. |