Introduction
Welcome to the Welltravel.API
Documentation. Our API follows RESTful principle. Our API is predictable, has resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP verbs, which are understood by most HTTP clients. All API response is returned as JSON, including errors. You can use our API to:
- Search & Book Flights
- Search & Book Hotels
- Search & Book Car Rentals
- Fetch Booking Details
- Issue Tickets
- Cancel Bookings
- Post Booking Transactions Overview
Authentication
Welltravel.API
uses the OAuth 2.0 protocol to authorize each request. OAuth is an industry standard that many companies use to provide secure access to protected resources. When you create an app in your dashboard, the system generates a client ID
and a secret credential
for your app. You pass these credentials in an access token request.
When you request the authorization server for access token, the server issues access tokens called bearer tokens
. When you make REST API requests to our API endpoints, you need to use these tokens inside an Authorization
header. A bearer token enables you to complete actions on behalf of, and with the approval of, the resource owner. We use the client credentials OAuth2 flow described in RFC6749 section 4.4. This means you have to request an access token which will be valid for a given amount of time. You need to reference this access token in every following request.
Creating the Access Token
After creating an OAuth application in your dashboard, you can create an access token by sending a POST
request to /oauth/token
.
Request Parameters
POST /oauth/token HTTP/1.1
Content-Type: application/json; charset=utf-8
{
"client_id": "d78a6e4b62428e2e49e4ef4340596984a8473da5c4caf081dc135edce02f8e73",
"client_secret": "06b469c40717794120bb1254a3a9fce225e4b8b8a51b60de262aa091efb0c35a",
"grant_type": "client_credentials"
}
Parameter | RQ | Type | Description |
---|---|---|---|
client_id |
✔ | String | The Client ID of the application created on the Dashboard |
client_secret |
✔ | String | The Client Secret of the application created on the Dashboard |
grant_type |
✔ | String | This must be set to client_credentials |
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"access_token": "c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6",
"token_type": "bearer",
"expires_in": 7200,
"created_at": 1479991079
}
Parameter | Type | Description |
---|---|---|
access_token |
String | The access token you need to use later on |
token_type |
String | The OAuth token type which has to be used when specifying the token |
expires_in |
Integer | The time within which the access token is valid |
created_at |
String | Timestamp when the token as been created |
Using the Access Token
POST /api/flights/searches HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
The access token has to be specified in every API call using the Authorization
HTTP header.
Versioning
POST /api/flights/searches HTTP/1.1
Accept-Version: v1
POST /api/flights/searches HTTP/1.1
Accept-Version: v1.1
You are required to specify the version for each request. Requests without a version specified will result in a 404 - Not Found
response.
Our API is currently available in v1
and v1.1
. You have to specify the version you want to use. The version is specified via the HTTP header Accept-Version
.
Pagination
Every API endpoint which returns multiple entities has pagination enabled.
Request
GET /api/entities?page=1&per_page=50 HTTP/1.1
The API consumer is able to specify how many entities and which page should be returned.
Parameter | Description |
---|---|
per_page |
The number of elements that will be returned on one page (max: 250) |
page |
The page which should be returned |
Response
HTTP/1.1 200 OK
X-Total: 110
X-Per-Page: 50
X-Total-Pages: 3
X-Page: 1
X-Next-Page: 2
The pagination details are exposed as HTTP headers in the response.
Header | Description |
---|---|
X-Total |
The total number of entities in this collection |
X-Per-Page |
The number of elements per page |
X-Total-Pages |
Based on X-Per-Page , the number pages that will be returned |
X-Page |
The current page number returned |
X-Next-Page |
The next page number, if available |
Making Requests
POST /api/flights/searches HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
When writing your own Welltravel.TravelAPI
client, please keep the following points in mind:
- Always set the
Accept-Version
header to the version you want. - Always use the
HTTPS
protocol - Depending on the supplier which is being used, our response times can be up to 1 minute.
Any client library maintained by us should take care of these for you.
Version V1
This is the documentation of the enhancements done under API version v1.
Search & Book: Flight
After authentication, you are able to book a flight in three steps:
- Search: Search & fetch flight results
- Select: Confirm availability and fetch available ancillary services
- Reserve: Create a reservation
Every step is required. You can’t leave one out.
Besides the mandatory three steps, there is another optional step to know fare rules of a particular flight. This step must be done after Search Results
are found.
Fare Rules: Fare Rules
Upsell Fare: Upsell Fare
Flight Search Flow
To create a flight search, send a POST
request to /api/flights/searches
.
It will return the result ID
of the created search.
This ID can be used to fetch the results by sending a GET
request to /api/flights/searches/:id/results
.
Flight Search Examples
Search with all parameters
POST /api/flights/searches HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
Content-Type: application/json; charset=utf-8
{
"trips": [
{
"origin": "FRA",
"destination": "TXL",
"date": "2017-12-29",
"cabin_class": "economy",
"departure_time": "10:20"
"booking_class": [],
"alliance_preferences: : [],
},
{
"origin": "TXL",
"destination": "FRA",
"date": "2017-12-30",
"cabin_class": "economy",
"departure_time": "15:40"
"booking_class": [],
"alliance_preferences: : [],
}
],
"adults": 1,
"children": 0,
"infants": 0,
"currency": "USD",
"flexible": true,
"non_stop": true,
"only_flexible_flight": false,
"only_published_fare": false,
"include_welltravel_results":"false",
"accounts": {
"amadeus": [
{
"identifier": "ACT1",
"codes": ["1234", "CODE"],
}
],
"galileo": [
{
"identifier": "ACT2",
"codes": ["1234"],
}
],
"sabre": [
{ "identifier": "ACT3" }
],
"lh_group": [
{ "identifier": "ACT4" }
],
"british_airways": [
{ "identifier": "ACT5" }
],
"apollo": [
{ "identifier": "ACT6" }
],
"worldspan": [
{ "identifier": "ACT6" }
],
}
}
Below is a list of all available request parameters
Parameter | RQ | Type | Description |
---|---|---|---|
trips |
✔ | Array | An array of trips, supports up to 9 trips on certain suppliers. Please check your supplier specific details. |
trips.origin |
✔ | String | The origin for this trip. It is a 3 letter code. IATA airport code |
trips.destination |
✔ | String | The destination for this trip. It is a 3 letter IATA airport code |
trips.date |
✔ | String | Date of the trip, in ISO-8601 format |
trips.cabin_class |
✔ | String | The cabin class for this trip |
trips.booking_class |
✘ | Array | Please note this feature is only for Galileo. An array containing all the permitted booking classes. For valid values, please see Booking Class. If a booking class is specified, the flight result will show only flights from that booking class. |
trips.alliance_preferences |
✘ | Array | Please note this feature is only for Galileo. An array containing all the preferred alliance Preference. For valid values, please see Alliance Preferences |
trips.departure_time |
✘ | String | The starting departure time for this trip. Value should be between 00:01 to 23:59 |
adults |
✔ | Integer | The number of adult passenger will be on this journey. Must be at-least one. The number of adults must be greater than number of infants. |
children |
✔ | Integer | The number of child passenger will be on this journey. The child has to be younger than 12 years at the start of journey. |
infants |
✔ | Integer | The number of infants (children without seat) will be on this journey . Infant has to be younger than 2 years at the start of journey. |
currency |
✔ | String | The currency in which the prices will be exposed, in ISO-4217 format. See All Supported Welltravel Currencies for details. |
airline_preferences |
✘ | Object | A hash of all preferred Airline Carrier Codes |
airline_preferences.type |
✔ | String | Type of airline preferences. Possible values are exclusive and preferred . If you want to get results from only mentioned carrier code(s), you should choose exclusive as type otherwise it is advised to choose preferred . |
airline_preferences.carriers |
✔ | Array | An Array of carrier Code of Preferences. Two-character IATA-assigned code that identifies a carrier on arrival/departure signs, baggage tags, Global Distribution System (GDS), tickets, etc. Usually it is an alpha code (such as AI for Air India, EI for Air Lingus, and WN for Southwest Airlines) but sometimes it is alphanumeric (such as F9 for Frontier Airlines, 7Z for Laker Airlines, and 5X United Parcel Service). For more information Carrier Code. For example, TP |
only_published_fare |
✘ | Boolean | true for only flights with published fares. false for all flights. Default is false. A published fare is an airfare that is available to all air vendors. This means you will be able to find this fare (if available) with any seller of travel, including the airline. |
flexible |
✘ | Boolean | Flexible of search dates. Please check your supplier specific details. |
non_stop |
✘ | Boolean | true for only non-stop flight. false for all flights. |
only_flexible_flight |
✘ | Boolean | Please note this feature is only for Galileo. True to get only flexible flights i.e flights with change or cancel penalty for the booking is zero. False will returns all flights. Default is false . |
include_welltravel_results |
✘ | Boolean | True to include flight results from Welltravel Suppliers. If include_welltravel_results is true and no other supplier is selected then only results from Welltravel Suppliers will be displayed. False otherwise. Default is false . |
|
✔ | Object | The accounts to use when searching |
accounts.identifier |
✔ | String | Account Identifier for suppliers. Generally IPCC for GDSs. |
accounts.codes |
✘ | Array | Discount or Corporate Codes for the specific supplier. For details, see Supplier Specific Maximum Corporate Code Support |
Search with Minimum Parameters
This is an example for possible minimum request you can do in our system.
POST /api/flights/searches HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
Content-Type: application/json; charset=utf-8
{
"trips": [
{
"origin": "FRA",
"destination": "TXL",
"date": "2018-10-29",
"cabin_class": "economy"
}
],
"adults": 1,
"children": 0,
"infants": 0,
"currency": "USD",
"accounts": {
"galileo": [
{ "identifier": "ACT1" }
]
}
}
Search Response
After creating the search the system will return an UUID
which points to the search that you just created. You need to use this UUID
in order to fetch the results returned in the search.
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "d51d7770-3046-414a-81e8-2a148414a6db"
}
Parameter | Type | Description |
---|---|---|
id |
UUID | The unique id of the search, use it to fetch the results |
Fetch Search Results
Use the id
from the search response to fetch the results. This endpoint supports pagination.
GET /api/flights/searches/d51d7770-3046-414a-81e8-2a148414a6db/results?page=1&per_page=50&order_by=segment_count&order_direction=asc HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
Request Parameters
Parameter | Required | Description |
---|---|---|
order_by |
✘ | Order the results by departure , arrival , duration , segment_count or total_price , default: total_price |
order_direction |
✘ | Order the results ascending (asc ) or descending (desc ), default: asc |
include_duplicates |
✘ | Whether to include or exclude duplication result. Default is false |
Response Parameters
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 935
X-Total-Pages: 935
X-Per-Page: 1
X-Page: 1
X-Next-Page: 2
[
{
"id": "3537a351-076a-45b1-97d8-a7e354d58f8c",
"instant_ticket": false,
"source": { "supplier": "galileo", "account": "ACT2", "currency": "USD" },
"fare_calculations": [
{ "passenger_type": "adult", "price": "100.0", "currency": "EUR" },
{ "passenger_type": "child", "price": "80.0", "currency": "EUR" },
{ "passenger_type": "infant", "price": "10.0", "currency": "EUR" }
],
"pricing": {
"flight_price": {
"recommended_selling_price": { "amount": "190.0", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": null, "currency": null }
},
"tax": {
"amount": "103.3",
"currency": "USD",
"source": { "amount": null, "currency": null }
},
"total_price": {
"recommended_selling_price": { "amount": "293.3", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": null, "currency": null }
}
},
"refundable": false,
"penalties": {
"change": { "amount": null, "currency": null },
"cancel": { "amount": null, "currency": null }
},
"apis_data_required": "none",
"reservation_manageable": true,
"free_cancellation_duration_in_minutes": 4290,
"trips": [
{
"ticket_selling_carrier_code": "AB",
"trip_duration_in_minutes": 70,
"origin_code": "FRA",
"origin_timezone": "Europe/Berlin",
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-29T15:00:00",
"arrival_localtime": "2017-12-29T16:10:00",
"destination_offset_in_days": 0,
"destination_code": "TXL",
"stopover_count": 0,
"segments": [
{
"origin_code": "FRA",
"origin_terminal": "2",
"origin_timezone": "Europe/Berlin",
"destination_code": "TXL",
"destination_terminal": null,
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-29T15:00:00",
"arrival_localtime": "2017-12-29T16:10:00",
"operating_carrier_code": "AB",
"operating_flight_number": "6588",
"aircraft_operated_by": "AB",
"marketing_carrier_code": "AB",
"marketing_flight_number": "6588",
"aircraft_type": "320",
"booking_class": "W",
"flight_duration_in_minutes": 70,
"catering": [],
"cabin_class": "economy",
"technical_stops": {
"count": 2,
"stop_details": [
{
"airport_code": "DUS",
"arrival_localtime": "2021-12-29T15:10:00",
"departure_localtime": "2021-12-29T15:20:00",
"duration_in_minutes": 10
},
{
"airport_code": "MUC",
"arrival_localtime": "2021-12-29T15:25:00",
"departure_localtime": "2021-12-29T15:50:00",
"duration_in_minutes": 25
}
]
},
"air_miles": null,
"wifi": {
"available": true,
"packages": [
{ "amount": "10.0", "currency": "EUR", "volume_in_mbyte": 10 },
{ "amount": "14.0", "currency": "EUR", "volume_in_mbyte": 15 },
{ "amount": "90.0", "currency": "EUR", "volume_in_mbyte": 100 }
]
},
"on_time_in_percentage": 99.8,
"baggage_pieces_included": { "count": 0, "kg_per_piece": null },
"fare": {
"brand": "ECONOMY LIGHT",
"brand_identifier": "economy_light",
"basis_code": "WNY05RT",
"meta_brand_name": "Economy",
"meta_brand_identifier": "83dd3e67-1e33-4893-8045-2f94b56487a4",
"type": "published"
}
}
]
},
{
"ticket_selling_carrier_code": "AB",
"trip_duration_in_minutes": 75,
"origin_code": "TXL",
"origin_timezone": "Europe/Berlin",
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-30T13:05:00",
"arrival_localtime": "2017-12-30T14:20:00",
"destination_offset_in_days": 0,
"destination_code": "FRA",
"stopover_count": 0,
"segments": [
{
"origin_code": "TXL",
"origin_terminal": null,
"origin_timezone": "Europe/Berlin",
"destination_code": "FRA",
"destination_terminal": "2",
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-30T13:05:00",
"arrival_localtime": "2017-12-30T14:20:00",
"operating_carrier_code": "AB",
"operating_flight_number": "6585",
"aircraft_operated_by": "AB",
"marketing_carrier_code": "AB",
"marketing_flight_number": "6585",
"aircraft_type": "320",
"booking_class": "W",
"flight_duration_in_minutes": 75,
"catering": [],
"cabin_class": "economy",
"technical_stops": {
"count": 2,
"stop_details": [
{
"airport_code": "MUC",
"arrival_localtime": "2021-12-30T13:20:00",
"departure_localtime": "2021-12-30T13:30:00",
"duration_in_minutes": 10
},
{
"airport_code": "DUS",
"arrival_localtime": "2021-12-30T13:40:00",
"departure_localtime": "2021-12-30T13:55:00",
"duration_in_minutes": 15
}
]
},
"air_miles": null,
"wifi": { "available": null, "packages": null },
"on_time_in_percentage": null,
"baggage_pieces_included": { "count": 1, "kg_per_piece": 23 },
"fare": {
"brand": "ECONOMY LIGHT",
"brand_identifier": "economy_light",
"basis_code": "WNY05RT",
"type": "published"
}
}
]
}
]
},
]
Key | Type | Description |
---|---|---|
id |
UUID | The unique id of the search result, used for Select and Reserve |
instant_ticket |
Boolean | Indicates if the ticket is automatically issued at the time of booking the flight. Supported Supplier List |
source |
Object | Information about the source of the result |
source.supplier |
String | The supplier on which this result has been found |
source.account |
String | The account on which the result has been found |
source.currency |
String | The currency of the result returned from the supplier |
fare_calculations |
Array | Describes how the flight price (not the total price) has been calculated for ONE passenger |
fare_calculations.passenger_type |
String | Type of passenger. Example: adult , child or infant |
fare_calculations.price |
String | Price for one passenger for the specific type to make reservation |
fare_calculations.currency |
String | The currency in which the price is displayed |
pricing |
Object | Detailed Pricing Information |
pricing.flight_price |
Object | Detailed Flight Price Information |
pricing.flight_price.recommended_selling_price |
Object | Detailed information about the price of the room we recommend to use as selling price |
pricing.flight_price.recommended_selling_price.amount |
String | The price of the room/rooms we recommend to use as selling price |
pricing.flight_price.recommended_selling_price.currency |
String | The currency of the price of the room we recommend to use as selling price |
pricing.flight_price.purchase_price |
Object | Detailed information about the price of the trip you will have to pay |
pricing.flight_price.purchase_price.amount |
String | The price of the journey you will have to pay |
pricing.flight_price.purchase_price.currency |
String | The currency of the price of the trip you will have to pay |
pricing.flight_price.source |
Object | Detailed information about the price of the journey you will have to pay for the default currency of the IPCC |
pricing.flight_price.source.amount |
String | The price of the journey you will have to pay |
pricing.flight_price.source.currency |
String | Default currency in which the pricing is being exposed |
pricing.tax |
Object | Tax related Information |
pricing.tax.amount |
String | the amount of tax to be paid |
pricing.tax.currency |
String | Currency in which the tax has been exposed |
pricing.tax.source |
Object | Tax in IPCC’s default currency related information |
pricing.tax.source.amount |
String | The tax you have to pay in terms of default currency |
pricing.tax.source.currency |
String | Default Currency of the IPCC |
pricing.total_price |
Object | Information related to the total price of the Flight |
pricing.total_price.recommended_selling_price |
Object | Information related to the total price of the trip including tax we recommend you to use as selling price |
pricing.total_price.recommended_selling_price.amount |
String | The total price of the result we recommend you to use as selling price |
pricing.total_price.recommended_selling_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price.purchase_price |
Object | Detailed information about the total purchase price |
pricing.total_price.purchase_price.amount |
String | The price of the journey including tax you will have to pay |
pricing.total_price.purchase_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price.source |
Object | Detailed information about the total price of the journey you will have to pay for the default currency of the IPCC |
pricing.total_price.source.amount |
String | The total price of the journey you will have to pay for the default currency of the IPCC |
pricing.total_price.source.currency |
String | Default currency in which the pricing is being exposed |
refundable |
Boolean | Booking Refund Information |
penalties |
Object | The detailed information about penalties for cancelling the booking |
penalties.change |
Object | The information about the penalty for changing the flight booking. It can be changing the dates, destinations, or times. |
penalties.change.amount |
String | The penalty fee for changing the flight booking |
penalties.change.currency |
String | The currency in which the penalty fee is being exposed |
penalties.cancel |
Object | The information about the penalty for cancelling the flight booking |
penalties.cancel.amount |
String | Cancellation fee |
penalties.cancel.currency |
String | The currency in which the cancellation fee is being exposed |
apis_data_required |
String | Exposes if advanced passer information has to be required, see APIS data for more details |
reservation_manageable |
Boolean | Marks if it is possible to modify a reservation of this result from our API |
fare_rule |
Boolean | Marks if fare rules available or not for this flight. |
free_cancellation_duration_in_minutes |
Integer | Total duration of the time for free cancellation of the flight in minutes. For example, 75 |
trips |
Array | All the trip information about the flight |
trips.ticket_selling_carrier_code |
String | Carrier Code of the ticket for the trip. It is two letter code. For example, BA |
trips.trip_duration_in_minutes |
Integer | Total duration of the flight trip expressed in minutes. For example, 75 |
trips.origin_code |
String | The airport code of the origin of the trip. For example, for a flight from Madrid to NewYork, the origin code will be MAD |
trips.origin_timezone |
String | The timezone of the place where the flight trip will take off. For example, Europe/Berlin |
trips.destination_timezone |
String | The timezone of the place where the flight trip will land. For example, Europe/Berlin |
trips.departure_localtime |
String | The local time of the airport at the time of departure |
trips.arrival_localtime |
String | The local time of the airport at the time of arrival |
trips.destination_offset_in_days |
Integer | The number of days required to reach the destination |
trips.destination_code |
String | The airport code of the destination of the trip. For example, for a flight from Madrid to NewYork, the origin code will be JFK |
trips.stopover_count |
Integer | The number of stopovers for the whole trip |
trips.segments |
String | Information about the segments of the trip |
trips.segments.origin_code |
String | The origin airport code for the segment |
trips.segments.origin_timezone |
String | The local timezone of the origin airport of the segment |
trips.segments.destination_code |
String | The airport code of the destination for this segment |
trips.segments.destination_timezone |
String | The timezone of the destination airport |
trips.segments.departure_localtime |
String | The local time of the airport at the time of departure for this segment |
trips.segments.arrival_localtime |
String | The local time of the airport at the time of arrival |
trips.segments.operating_carrier_code |
String | Operating Carrier Code refers to the identifier used in flight schedule, generally the two-character IATA airline designator code |
trips.segments.operating_flight_number |
String | Refers to the identifier used in flight schedule, flight number of the operating carrier |
trips.segments.aircraft_operated_by |
String | Refer to the identifier for the aircraft operated by the operating carrier |
trips.segments.marketing_carrier_code |
String | Refers to the ticket selling carrier |
trips.segments.aircraft_type |
String | Type of the aircraft for this trip segment. |
trips.segments.booking_class |
String | Indicates Travel Class. Usually the first letter of the fare basis code. For example, ‘O’ |
trips.segments.flight_duration_in_minutes |
Integer | Total duration of the flight trip expressed in minutes. For example, 75 |
trips.segments.catering |
Array | The kind of catering that will be offered on this flight, see catering for more details |
trips.segments.cabin_class |
String | Refers to the quality of the cabin for this trip segment.See Cabin Class for more details |
trips.segments.technical_stops |
Object | The details information about technical stops. A technical stop most commonly used to refuel the aircraft, to make unexpected essential repairs or to respond to some emergency need to land the aircraft. No traffic is unloaded or loaded during a technical stop. |
trips.segments.technical_stops.count |
Integer | The number of the technical stops will be taken by the aircraft in the particular segment. |
trips.segments.technical_stops.stop_details |
Array | Details information about each stop of the airlines. |
trips.segments.technical_stops.stop_details.airport_code |
String | The airport code of technical stop. For example, for a flight from Singapore to San Francisco, Then the first stop could be Hong Kong HKG airport. |
trips.segments.technical_stops.stop_details.arrival_localtime |
String | The local time of the airport at the time of arrival. |
trips.segments.technical_stops.stop_details.departure_localtime |
String | The local time of the airport at the time of departure. |
trips.segments.technical_stops.stop_details.duration_in_minutes |
Integer | Total duration between flight arrival and departure, expressed in minutes. For example, 30 |
trips.segments.air_miles |
String | A nautical mile used as a measure of distance flown by aircraft. |
trips.segments.wifi |
Object | Information related to the wifi connection for this trip segment |
trips.segments.wifi.available |
Boolean | The availability of wifi |
trips.segments.wifi.packages |
Array | Details about the wifi packages of this airline |
trips.segments.wifi_packages.amount |
String | The cost of the wifi package |
trips.segments.wifi_packages.currency |
String | The currency in which the cost of wifi package has ben exposed |
trips.segments.wifi_packages.volume_in_mbyte |
String | The volume in megabyte of wifi package is included |
trips.segments.on_time_in_percentage |
String | The percentage of punctuality of this flight of this trip segment |
trips.segments.baggage_pieces_included |
Object | The default included baggage, if not specified differently |
trips.segments.baggage_pieces_included.count |
Integer | The count of included baggage pieces |
trips.segments.baggage_pieces_included.kg_per_piece |
Integer | The weight allowed for the included baggage piece |
trips.segments.fare |
String | Information related to fare |
trips.segments.fare.brand |
String | The brand of the fare. For example, ECONOMY LIGHT |
trips.segments.fare.brand_identifier |
String | The brand identifier of the fare. For example, economy_light, euro_traveler, world_traveler, business, basic and so on |
trips.segments.fare.meta_brand_name |
String | The meta brand identifier of the fare which will come from meta. For example, Flex |
trips.segments.fare.meta_brand_identifier |
UUID | The meta fare brand unique identifier. |
trips.segments.fare.basis_code |
String | A fare basis code is an alphabetic or alpha-numeric code used by airlines to identify a fare type and allow airline staff and travel agents to find the rules applicable to that fare. For example, WNY05RT |
trips.segments.fare.type |
String | The fare type, see fare type for more details |
Definitions
Cabin Class
The cabin class can be specified on a trip basis. See cabin class for more details about this key. Please use one of these values. Also please keep in mind that not all flights has all kinds of cabin. As a result the cabin class can drastically change the number of results for a specific search.
Infants
You have to make sure that the amount of infants is lower than the amount of adults. It is not possible to book more infants than adults.
This rule does not apply for children.
Flexible
If you want to see more results +/- 3 days
beside the dates you searched for then please set the parameter flexible: true
. Generally the suppliers exposes these dates so that one can find better deals on dates other than the searched dates. Default value is flexible: false
for all suppliers.
Trips
A Trip generally means a travel from point A
to point B
. For example: If you search for JFK-LHR
and LHR-JFK
it constitute of two trips.
Segments
Generally a trip might constitute one or more segments. For example: suppose in a trip from point A
to point B
the flight goes to point A
to point C
and then point C
to point B
, this is a two segment trip.
Flight Search Rules
- The number of passenger has to be defined in such a way that total number of passengers/guests would not be more than 9
- The number of adults must be greater than number of infants.
- There must be at least one adult.
- The child has to be younger than 12 years at start of journey.
- The flight search supports nine trips at most.
Flight Select Flow
After a choosing flight result, use its id
to confirm if it’s still available. The system will return Seat map and ancillary services in the same call if available for the selected flight.
Select Request
GET /api/flights/results/3537a351-076a-45b1-97d8-a7e354d58f8c HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
You may do this by sending a GET
request to /api/flights/results/:id
.
Select Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "3537a351-076a-45b1-97d8-a7e354d58f8c",
"available": true,
"instant_ticket": true,
"price_changed": false,
"fare_calculations": [
{ "passenger_type": "adult", "price": "100.0", "currency": "EUR" },
{ "passenger_type": "child", "price": "80.0", "currency": "EUR" },
{ "passenger_type": "infant", "price": "10.0", "currency": "EUR" }
],
"pricing": {
"flight_price": {
"recommended_selling_price": { "amount": "190.0", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": null, "currency": null }
},
"tax": {
"amount": "103.3",
"currency": "USD",
"source": { "amount": null, "currency": null }
},
"total_price": {
"recommended_selling_price": { "amount": "293.3", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": null, "currency": null }
}
},
"ancillary_services": {
"services": [
{
"id": "4f8615d7-68af-4715-97ad-503071ee69b8",
"meta_identifier": "d097d008-ff9a-4d49-8797-a1a4e322477c",
"price": "0.0",
"currency": "EUR",
"refundable": null
}
],
"trips": [
{
"origin": "FRA",
"destination": "TXL",
"services": [
{
"id": "1f1f0173-a49d-43c1-b30e-5f715fce9a0e",
"meta_identifier": "56df7ab6-2db2-4673-a749-d71760b615a5",
"price": "21.5",
"currency": "USD",
"refundable": true,
"maximum_per_group": null,
"group": "ExcessBaggage",
"maximum_scope": "traveler"
},
],
"segments": [
{
"origin": "FRA",
"destination": "TXL",
"operating_flight_number": "6572",
"operating_carrier_code": "VS",
"services": [
{
"id": "8e3ef92e-bdea-4f96-a138-09b6c0662f09",
"meta_identifier": "7a709a5b-34c6-4d67-8a4a-8467d81fd626",
"price": "70.0",
"currency": "EUR",
"refundable": null,
"maximum_per_group": null,
"group": "ExcessBaggage",
"maximum_scope": "traveler"
}
],
"seat_map": [
{
"class": "economy",
"rows": {
"2": {
"wing": false,
"exit": false,
"seats": {
"A": {
"id": "da451081-118a-4099-bad9-b7e257a002a4",
"seat_existence": true,
"occupied": false,
"chargeable": true,
"pricing_info": {
"seat_reservation_price": "21.5",
"currency_code": "CHF"
},
"recline_restricted": false,
"infant_restricted": false,
"aisle": false,
"window": true
},
"B": {
"id": "82b9295d-3fe1-493a-b05e-0c89390b7c7c",
"seat_existence": true,
"occupied": false,
"chargeable": true,
"pricing_info": {
"seat_reservation_price": "21.5",
"currency_code": "CHF"
},
"recline_restricted": false,
"infant_restricted": false,
"aisle": false,
"window": false
},
"C": {
"id": "da675bde-a0f4-4998-bce9-627a9b528e8c",
"seat_existence": true,
"occupied": false,
"chargeable": true,
"pricing_info": {
"seat_reservation_price": "21.5",
"currency_code": "CHF"
},
"recline_restricted": false,
"infant_restricted": false,
"aisle": true,
"window": false
},
"D": {
"id": "a2ef1ecf-b157-41ef-a552-a3efad45defa",
"seat_existence": true,
"occupied": false,
"chargeable": true,
"pricing_info": {
"seat_reservation_price": "21.5",
"currency_code": "CHF"
},
"recline_restricted": false,
"infant_restricted": false,
"aisle": true,
"window": false
},
"E": {
"id": "bbca9868-f5f7-4e3a-81f1-c0c89612df5e",
"seat_existence": true,
"occupied": false,
"chargeable": true,
"pricing_info": {
"seat_reservation_price": "21.5",
"currency_code": "CHF"
},
"recline_restricted": false,
"infant_restricted": false,
"aisle": false,
"window": false
},
"F": {
"id": "f858d39f-f67e-459a-a328-f4390342daa5",
"seat_existence": true,
"occupied": false,
"chargeable": true,
"pricing_info": {
"seat_reservation_price": "21.5",
"currency_code": "CHF"
},
"recline_restricted": false,
"infant_restricted": false,
"aisle": false,
"window": true
}
}
}
}
}
]
},
{
"origin": "TXL",
"destination": "FRA",
"operating_flight_number": "6585",
"operating_carrier_code": "VS",
"services": [],
"seat_map": []
}
]
}
],
"form_of_payment": {
"options": [
"credit_card",
"cash",
"none"
],
"required_fields": {
"credit_card": {
"name": true,
"number": true,
"type": true,
"expiry_date": true,
"code": true,
"street": true,
"city": true,
"zip": true,
"country": true
}
}
},
"queues": {
"supported": false
},
"meal_requests": {
"supported": false,
"available_codes": []
},
"assistance_requests": {
"supported": false,
"available_codes": []
},
"documents": {
"doca": {
"supported": false,
"required": false
},
"docs": {
"supported": false,
"required": false
}
},
"frequent_flyer_numbers": {
"supported": true
},
"accounting_remarks": {
"supported": false,
"available_codes": []
},
"general_remarks": {
"supported": false,
"available_codes": []
},
"payment_charge": [
{
"amount": "0.0",
"currency": "GBP",
"card_name": "Visa Personal",
"card_type": "visa",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "Visa Delta/Debit",
"card_type": "visa",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "MasterCard Personal",
"card_type": "master_card",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "MasterCard Debit",
"card_type": "master_card",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "Discover Personal",
"card_type": "discover",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "Diners Club Personal",
"card_type": "diners_club",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "American Express Personal",
"card_type": "amex",
"payment_type": "credit"
},
{
"amount": "7.16",
"currency": "GBP",
"card_name": "Visa Corporate",
"card_type": "visa_corporate",
"payment_type": "credit"
},
{
"amount": "6.89",
"currency": "GBP",
"card_name": "MasterCard Corporate",
"card_type": "master_card_corporate",
"payment_type": "credit"
},
{
"amount": "7.95",
"currency": "GBP",
"card_name": "Discover Corporate",
"card_type": "discover_corporate",
"payment_type": "credit"
},
{
"amount": "7.95",
"currency": "GBP",
"card_name": "Diners Club Corporate",
"card_type": "diners_club_corporate",
"payment_type": "credit"
},
{
"amount": "6.36",
"currency": "GBP",
"card_name": "American Express Corporate",
"card_type": "amex_corporate",
"payment_type": "credit"
},
{
"amount": "9.28",
"currency": "GBP",
"card_name": "Airplus/UATP",
"card_type": "uatp",
"payment_type": "credit"
}
}
}
}
Key | Type | Description |
---|---|---|
id |
UUID | The unique id of the select result, used for Reserve |
available |
Boolean | Availability of the flight |
price_changed |
Boolean | Return if the price changed after the select call |
instant_ticket |
Boolean | Indicates if the ticket is automatically issued at the time of booking the flight. |
fare_calculations |
Array | Describes how the flight price (not the total price) has been calculated for ONE passenger |
fare_calculations.passenger_type |
String | Type of passenger. Example: adult , child or infant |
fare_calculations.price |
String | Price for one passenger for the specific type to make reservation |
fare_calculations.currency |
String | The currency in which the price is displayed |
pricing |
Object | Detailed Pricing Information |
pricing.flight_price |
Object | Detailed Flight Price Information |
pricing.flight_price.recommended_selling_price |
Object | Detailed information about the price of the room we recommend to use as selling price |
pricing.flight_price.recommended_selling_price.amount |
String | The price of the room/rooms we recommend to use as selling price |
pricing.flight_price.recommended_selling_price.currency |
String | The currency of the price of the room we recommend to use as selling price |
pricing.flight_price.purchase_price |
Object | Detailed information about the price of the trip you will have to pay |
pricing.flight_price.purchase_price.amount |
String | The price of the journey you will have to pay |
pricing.flight_price.purchase_price.currency |
String | The currency of the price of the trip you will have to pay |
pricing.flight_price.source |
Object | Detailed information about the price of the journey you will have to pay for the default currency of the IPCC |
pricing.flight_price.source.amount |
String | The price of the journey you will have to pay |
pricing.flight_price.source.currency |
String | Default currency in which the pricing is being exposed |
pricing.tax |
Object | Tax related Information |
pricing.tax.amount |
String | the amount of tax to be paid |
pricing.tax.currency |
String | Currency in which the tax has been exposed |
pricing.tax.source |
Object | Tax in IPCC’s default currency related information |
pricing.tax.source.amount |
String | The tax you have to pay in terms of default currency |
pricing.tax.source.currency |
String | Default Currency of the IPCC |
pricing.total_price |
Object | Information related to the total price of the Flight |
pricing.total_price.recommended_selling_price |
Object | Information related to the total price of the trip including tax we recommend you to use as selling price |
pricing.total_price.recommended_selling_price.amount |
String | The total price of the result we recommend you to use as selling price |
pricing.total_price.recommended_selling_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price.purchase_price |
Object | Detailed information about the total purchase price |
pricing.total_price.purchase_price.amount |
String | The price of the journey including tax you will have to pay |
pricing.total_price.purchase_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price.source |
Object | Detailed information about the total price of the journey you will have to pay for the default currency of the IPCC |
pricing.total_price.source.amount |
String | The total price of the journey you will have to pay for the default currency of the IPCC |
pricing.total_price.source.currency |
String | Default currency in which the pricing is being exposed |
ancillary_services |
Object | ancillary services for the Flight |
ancillary_services.services |
Array | These services are available only for the whole journey |
ancillary_services.services.id |
UUID | Id of the Service |
ancillary_services.services.meta_identifier |
UUID | Unique Identifier of the service |
ancillary_services.services.price |
String | The cost of the service |
ancillary_services.services.currency |
String | The currency in which the service fee is being exposed |
ancillary_services.services.refundable |
String | Whether the service fee is refundable or not |
ancillary_services.services.maximum_per_group |
String | Indicates the maximum number services that can be availed per group |
ancillary_services.services.group |
String | Name of the Service Group |
ancillary_services.services.maximum_scope |
String | Indicates the scope of the service. If the value is traveler , then user can add one service from each group for each passenger. If the value is booking , then user can add one service from each group for whole booking. If the value is null , then user can add multiple service for each passenger. |
ancillary_services.trips |
Array | Information about ancillary services about individual trips |
ancillary_services.trips.origin |
String | Origin of the individual trips |
ancillary_services.trips.destination |
String | Destination of the individual trips |
ancillary_services.trips.services |
Array | These services are available for the current trip |
ancillary_services.trips.services.id |
UUID | Id of the Service |
ancillary_services.trips.services.meta_identifier |
UUID | Unique Identifier of the service |
ancillary_services.trips.services.price |
String | The cost of the service |
ancillary_services.trips.services.currency |
String | The currency in which the service fee is being exposed |
ancillary_services.trips.services.refundable |
String | Service Fee Refundable information. If it is true, then there will be a refund |
ancillary_services.trips.services.maximum_per_group |
String | Indicates the maximum number services that can be availed per group |
ancillary_services.trips.services.group |
String | Name of the Service Group |
ancillary_services.trips.services.maximum_scope |
String | Indicates the scope of the service. If the value is traveler , then user can add one service from each group for each passenger. If the value is booking , then user can add one service from each group for whole booking. If the value is null , then user can add multiple service for each passenger. |
ancillary_services.trips.segments |
Array | Information about trip segment of the ancillary services about individual trips |
ancillary_services.trips.segments.origin |
String | Origin airport code for the trip segment |
ancillary_services.trips.segments.destination |
String | Destination airport code for the trip segment |
ancillary_services.trips.segments.operating_flight_number |
String | Refers to the identifier used in flight schedule, flight number of the operating carrier |
ancillary_services.trips.segments.operating_carrier_code |
String | Operating Carrier Code refers to the identifier used in flight schedule, generally the two-character IATA airline designator code |
ancillary_services.trips.segments.services |
Array | These services are available for the current trip segment |
ancillary_services.trips.segments.services.id |
UUID | Id of the Service |
ancillary_services.trips.segments.services.meta_identifier |
UUID | Use this identifier to lookup the service details on Meta. Please refer to ancillary-services. |
ancillary_services.trips.segments.services.price |
String | The cost of the service |
ancillary_services.trips.segments.services.currency |
String | The currency in which the service fee is being exposed |
ancillary_services.trips.segments.services.refundable |
String | Indicates whether the service fee is refundable or not |
ancillary_services.trips.segments.services.maximum_per_group |
String | Indicates the maximum number services that can be availed per group |
ancillary_services.trips.segments.services.group |
String | Name of the Service Group |
ancillary_services.trips.segments.services.maximum_scope |
String | Indicates the scope of the service. If the value is traveler , then user can add one service from each group for each passenger. If the value is booking , then user can add one service from each group for whole booking. If the value is null , then user can add multiple service for each passenger. |
ancillary_services.trips.segments.seat_map |
Array | Information related to the seat map of this trip segment |
ancillary_services.trips.segments.seat_map.class |
String | Class in which the seat belongs to |
ancillary_services.trips.segments.seat_map.rows |
Object | Details of the rows in the seat map |
ancillary_services.trips.segments.seat_map.rows.[:row_number] |
Integer | Row number |
ancillary_services.trips.segments.seat_map.rows.[:row_number].wing |
Boolean | The value is true if it is a wing seat and vice versa |
ancillary_services.trips.segments.seat_map.rows.[:row_number].exit |
Boolean | The value is true if it is a exit seat and vice versa |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter] |
String | Column in which the row belongs to |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].id |
UUID | ID of the seat, use it to book this seat on third step |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].seat_existence |
Boolean | The value is true if there is a seat and vice versa |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].occupied |
Boolean | The value is true if the seat is not available |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].chargeable |
Boolean | The value is true if the seat is not free and you have to pay seat reservation fee. |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].pricing_info |
Object | The details about seat reservation fee |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].pricing_info.seat_reservation_price |
String | Price to reserve the seat |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].pricing_info.currency_code |
String | Currency in which seat price is exposed |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].recline _restricted |
Boolean | The value is true if the seat is recline restricted and vice versa |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].infant_restricted |
Boolean | The value is true if the seat is infant restricted and vice versa |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].aisle |
Boolean | The value is true if the seat is an aisle seat and vice versa |
ancillary_services.trips.segments.seat_map.rows.[:row_number].[:seat_letter].window |
Boolean | The value is true if the seat is a window seat and vice versa |
form_of_payment |
Object | Form of payments details |
form_of_payment.options |
Array | Supported Form of Payment List. Welltravel Supported Payment options are cash, none, credit_card, iata, counter |
form_of_payment.required_fields |
Object | Required fields for the credit card payment |
form_of_payment.required_fields.credit_card |
Object | Credit card related information |
form_of_payment.required_fields.credit_card.name |
Boolean | Card holder’s name is required or not |
form_of_payment.required_fields.credit_card.number |
Boolean | Card number is required or not |
form_of_payment.required_fields.credit_card.type |
Boolean | Card type is required or not |
form_of_payment.required_fields.credit_card.expiry_date |
Boolean | Card expiry date is required or not |
form_of_payment.required_fields.credit_card.code |
Boolean | Code is required or not |
form_of_payment.required_fields.credit_card.street |
Boolean | Street is required or not |
form_of_payment.required_fields.credit_card.city |
Boolean | City is required or not |
form_of_payment.required_fieldscredit_card.country |
Boolean | Country is required or not |
queues |
Object | Queue related information for booking |
queues.supported |
Boolean | Queue supported or not |
meal_requests |
Object | Meal requests related information for booking |
meal_requests.supported |
Boolean | Meal request is supported or not |
meal_requests.available_codes |
Array | Available meal codes |
assistance_requests |
Object | Assistance requests related information for booking |
assistance_requests.supported |
Boolean | Assistance requests are supported or not |
assistance_requests.available_codes |
Array | Available Assistance codes |
documents |
Object | Details of support information related to document needed for the booking |
documents.doca |
Object | Details of support information related to Passenger Address Information |
documents.doca.supported |
Boolean | Indicates whether Passenger Address Information is supported or not |
documents.doca.required |
Boolean | Indicates whether Passenger Address Information is required or not |
documents.docs |
Object | Details of support information related to Passenger Other Travel Related Information |
documents.docs.supported |
Boolean | Indicates whether Passenger Other Travel Related Information is supported or not |
documents.docs.required |
Boolean | Indicates whether Passenger Other Travel Related Information is required or not |
frequent_flyer_numbers |
Object | Frequent flyer numbers related information for booking |
frequent_flyer_numbers.supported |
Boolean | Indicates whether frequent flyer numbers are supported or not |
accounting_remarks |
Object | Accounting remarks related information for booking |
accounting_remarks.supported |
Boolean | Indicates whether adding accounting remarks are supported or not |
accounting_remarks.available_codes |
Array | Available accounting remark types |
general_remarks |
Object | General remarks related information for booking |
general_remarks.supported |
Boolean | Indicates whether adding general remarks are supported or not |
general_remarks.available_codes |
Array | Available general remark types |
payment_charge |
Object | Extra fees for credit card form of payment i.e OB fees details related information for booking |
payment_charge.amount |
String | Amount to be paid if the form of payment is credit card |
payment_charge.currency |
String | Currency code of the OB Fee |
payment_charge.card_name |
String | Name of the credit card |
payment_charge.card_type |
String | Credit card type |
payment_charge.payment_type |
String | Type of payment. Indicats whether it is credit card or debit card. Possible values: debit , credit , |
Flight Fare Rule Flow
After we get search results, we can fetch the Fare Rules for the flight using the id
.
Fare Rule Request
GET /api/flights/results/3537a351-076a-45b1-97d8-a7e354d58f8c/rules HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
You may do this by sending a GET
request to /api/flights/results/:id/rules
.
Here id
is the id of the search result
Fare Rule Response
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"fare_basis_code": "WRCSOWSG",
"fare_rules": [
{
"category": "4",
"category_description": "Flight Application",
"text": "TYPE: GENERAL-RULE IF THE FARE COMPONENT INCLUDES TRAVEL BETWEEN FRA AND DEL THEN THAT TRAVEL MUST NOT BE ON ONE OR MORE OF THE FOLLOWING ANY AI FLIGHT OPERATED BY AI ANY LH FLIGHT OPERATED BY AI."
},
{
"category": "8",
"category_description": "Stopovers",
"text": "TYPE: RULE 1 STOPOVER PERMITTED IN EACH DIRECTION AT SGD 130.00 EACH. CHILD/INFANT DISCOUNTS APPLY."
},
{
"category": "9",
"category_description": "Transfers",
"text": "TYPE: RULE UNLIMITED TRANSFERS PERMITTED ON THE FARE COMPONENT FARE BREAK SURFACE SECTORS NOT PERMITTED AND EMBEDDED SURFACE SECTORS PERMITTED ON THE FARE COMPONENT."
},
{
"category": "17",
"category_description": "Higher Intermediate Point",
"text": "TYPE: RULE THE HIGHER INTERMEDIATE POINT RULE DOES NOT APPLY FOR STOPOVERS."
},
{
"category": "18",
"category_description": "Ticket Endorsement",
"text": "TYPE: RULE THE ORIGINAL AND THE REISSUED TICKET MUST BE ANNOTATED - FARE RESTRICTION MAY APPLY - IN THE ENDORSEMENT BOX."
},
{
"category": "19",
"category_description": "Children and Infant Discounts",
"text": "TYPE: GENERAL-RULE ACCOMPANIED CHILD 2-11 - CHARGE 75 PERCENT OF THE FARE. TICKET DESIGNATOR - CH AND PERCENT OF DISCOUNT. NOTE - FOR CHILDREN TURNING 12 YEARS ENROUTE - CHILDREN FARE HAS TO BE USED FOR THE ENTIRE JOURNEY OR - INFANT UNDER 2 WITH A SEAT - CHARGE 75 PERCENT OF THE FARE. TICKET DESIGNATOR - CH AND PERCENT OF DISCOUNT OR - INFANT UNDER 2 WITHOUT A SEAT - CHARGE 10 PERCENT OF THE FARE. TICKET DESIGNATOR - IN AND PERCENT OF DISCOUNT. NOTE - FOR INFANTS TURNING 2 YEARS ENROUTE - DUE TO SAFETY REGULATIONS - A BOOKED SEAT WILL BE REQUIRED FOR THE REMAINING PORTIONS OF THE JOURNEY. WHEN A SEPARATE SEAT IS REQUIRED ON A PORTION OF THE JOURNEY - CHILD FARE HAS TO BE USED FOR THE ENTIRE JOURNEY. OR - UNACCOMPANIED CHILD 5-11. ID REQUIRED - CHARGE 75 PERCENT OF THE FARE. TICKET DESIGNATOR - CH AND PERCENT OF DISCOUNT. NOTE - UNACCOMPANIED CHILD UNDER 5 YEARS OF AGE WILL NOT BE ACCEPTED FOR CARRIAGE. SERVICE CHARGE FOR UNACCOMPANIED CHILD APPLIES."
},
{
"category": "52",
"category_description": "Rule Application",
"text": "TYPE: RULE LUFTHANSA RESTRICTED FARE APPLICATION AREA THESE FARES APPLY FROM AREA 3 TO AREA 2. CLASS OF SERVICE THESE FARES APPLY FOR ECONOMY CLASS SERVICE. CAPACITY LIMITATIONS THE CARRIER SHALL LIMIT THE NUMBER OF PASSENGERS CARRIED ON ANY ONE FLIGHT AT FARES GOVERNED BY THIS RULE AND SUCH FARES WILL NOT NECESSARILY BE AVAILABLE ON ALL FLIGHTS. THE NUMBER OF SEATS WHICH THE CARRIER SHALL MAKE AVAILABLE ON A GIVEN FLIGHT WILL BE DETERMINED BY THE CARRIERS BEST JUDGMENT OTHER CONDITIONS SEQUENTIAL USE OF FLIGHT COUPONS - THIS FARE IS ONLY VALID IF THE FLIGHTS ARE TAKEN IN THE BOOKED SEQUENCE. OTHERWISE THE FARE WILL BE RECALCULATED BASED ON THE ACTUAL FLIGHT ROUTING."
},
]
}
{
"fare_basis_code": "YFF77WW",
"fare_rules": [
{
"category": "7",
"category_description": "Maximum Stay",
"text": "TYPE: RULE TRAVEL FROM LAST STOPOVER MUST COMMENCE NO LATER THAN 12 MONTHS AFTER DEPARTURE FROM FARE ORIGIN."
},
{
"category": "7",
"category_description": "Maximum Stay",
"text": "TYPE: RULE TRAVEL FROM LAST STOPOVER MUST COMMENCE NO LATER THAN 12 MONTHS AFTER DEPARTURE FROM FARE ORIGIN."
},
{
"category": "8",
"category_description": "Stopovers",
"text": "TYPE: RULE UNLIMITED STOPOVERS PERMITTED IN EACH DIRECTION."
},
{
"category": "8",
"category_description": "Stopovers",
"text": "TYPE: RULE UNLIMITED STOPOVERS PERMITTED IN EACH DIRECTION."
},
{
"category": "9",
"category_description": "Transfers",
"text": "TYPE: RULE UNLIMITED TRANSFERS PERMITTED ON THE FARE COMPONENT FARE BREAK SURFACE SECTORS NOT PERMITTED AND EMBEDDED SURFACE SECTORS PERMITTED ON THE FARE COMPONENT."
},
{
"category": "9",
"category_description": "Transfers",
"text": "TYPE: RULE UNLIMITED TRANSFERS PERMITTED ON THE FARE COMPONENT FARE BREAK SURFACE SECTORS NOT PERMITTED AND EMBEDDED SURFACE SECTORS PERMITTED ON THE FARE COMPONENT."
},
{
"category": "15",
"category_description": "Sales Restrictions",
"text": "TYPE: RULE TICKETS MAY NOT BE SOLD IN VENEZUELA/ANGOLA/SOUTH SUDAN/ LEBANON/ZIMBABWE/SUDAN/IRAN,ISLAMIC REPUBLIC OF/JORDAN. TICKETS MAY ONLY BE SOLD IN AREA 1/AREA 2/AREA 3. NOTE - SALES RESTRICTIONS/ SEQUENTIAL USE OF FLIGHT COUPONS OTHER CONDITIONS SEQUENTIAL USE OF FLIGHT COUPONS - THIS FARE IS ONLY VALID IF THE FLIGHTS ARE TAKEN IN THE BOOKED SEQUENCE. OTHERWISE THE FARE WILL BE RECALCULATED BASED ON THE ACTUAL FLIGHT ROUTING."
},
{
"category": "15",
"category_description": "Sales Restrictions",
"text": "TYPE: RULE TICKETS MAY NOT BE SOLD IN VENEZUELA/ANGOLA/SOUTH SUDAN/ LEBANON/ZIMBABWE/SUDAN/IRAN,ISLAMIC REPUBLIC OF/JORDAN. TICKETS MAY ONLY BE SOLD IN AREA 1/AREA 2/AREA 3. NOTE - SALES RESTRICTIONS/ SEQUENTIAL USE OF FLIGHT COUPONS OTHER CONDITIONS SEQUENTIAL USE OF FLIGHT COUPONS - THIS FARE IS ONLY VALID IF THE FLIGHTS ARE TAKEN IN THE BOOKED SEQUENCE. OTHERWISE THE FARE WILL BE RECALCULATED BASED ON THE ACTUAL FLIGHT ROUTING."
}
}
]
Key | Type | Description |
---|---|---|
fare_basis_code |
String | A fare basis code is an alphabetic or alpha-numeric code used by airlines to identify a fare type and allow airline staff and travel agents to find the rules applicable to that fare. For details, please see Fare Basis Code. We get this fare basis code from the search result. |
fare_rules |
Array | An Array of all fare rules to the specified fare basis code. |
fare_rules.category |
Integer | An integer indicating the fare rule category. For details, please see Fare Rule Categories |
fare_rules.category_description |
String | Description of the fare rule category |
fare_rules.text |
String | The details of the fare rule. It will be a free text from supplier. |
Flight Upsell Fare Flow
After we get search results, we can fetch the Upsell Fares for the flight using the id
.
Currently upsell is not supported by any supplier.
Upsell Fare Request
GET /api/flights/results/3537a351-076a-45b1-97d8-a7e354d58f8c/upsell_fares HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
You may do this by sending a GET
request to /api/flights/results/:id/upsell_fares
.
Here id
is the id of the search result
Upsell Fare Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 935
X-Total-Pages: 935
X-Per-Page: 1
X-Page: 1
X-Next-Page: 2
[
{
"id": "3537a351-076a-45b1-97d8-a7e354d58f8c",
"instant_ticket": false,
"source": { "supplier": "galileo", "account": "ACT2", "currency": "USD" },
"fare_calculations": [
{ "passenger_type": "adult", "price": "100.0", "currency": "EUR" },
{ "passenger_type": "child", "price": "80.0", "currency": "EUR" },
{ "passenger_type": "infant", "price": "10.0", "currency": "EUR" }
],
"pricing": {
"flight_price": {
"recommended_selling_price": { "amount": "190.0", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": null, "currency": null }
},
"tax": {
"amount": "103.3",
"currency": "USD",
"source": { "amount": null, "currency": null }
},
"total_price": {
"recommended_selling_price": { "amount": "293.3", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": null, "currency": null }
}
},
"refundable": false,
"penalties": {
"change": { "amount": null, "currency": null },
"cancel": { "amount": null, "currency": null }
},
"apis_data_required": "none",
"reservation_manageable": true,
"free_cancellation_duration_in_minutes": 4290,
"trips": [
{
"ticket_selling_carrier_code": "AB",
"trip_duration_in_minutes": 70,
"origin_code": "FRA",
"origin_timezone": "Europe/Berlin",
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-29T15:00:00",
"arrival_localtime": "2017-12-29T16:10:00",
"destination_offset_in_days": 0,
"destination_code": "TXL",
"stopover_count": 0,
"segments": [
{
"origin_code": "FRA",
"origin_terminal": "2",
"origin_timezone": "Europe/Berlin",
"destination_code": "TXL",
"destination_terminal": null,
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-29T15:00:00",
"arrival_localtime": "2017-12-29T16:10:00",
"operating_carrier_code": "AB",
"operating_flight_number": "6588",
"aircraft_operated_by": "AB",
"marketing_carrier_code": "AB",
"marketing_flight_number": "6588",
"aircraft_type": "320",
"booking_class": "W",
"flight_duration_in_minutes": 70,
"catering": [],
"cabin_class": "economy",
"technical_stops": {
"count": 2,
"stop_details": [
{
"airport_code": "DUS",
"arrival_localtime": "2021-12-29T15:10:00",
"departure_localtime": "2021-12-29T15:20:00",
"duration_in_minutes": 10
},
{
"airport_code": "MUC",
"arrival_localtime": "2021-12-29T15:25:00",
"departure_localtime": "2021-12-29T15:50:00",
"duration_in_minutes": 25
}
]
},
"air_miles": null,
"wifi": {
"available": true,
"packages": [
{ "amount": "10.0", "currency": "EUR", "volume_in_mbyte": 10 },
{ "amount": "14.0", "currency": "EUR", "volume_in_mbyte": 15 },
{ "amount": "90.0", "currency": "EUR", "volume_in_mbyte": 100 }
]
},
"on_time_in_percentage": 99.8,
"baggage_pieces_included": { "count": 0, "kg_per_piece": null },
"fare": {
"brand": "ECONOMY LIGHT",
"brand_identifier": "economy_light",
"basis_code": "WNY05RT",
"meta_brand_name": "Economy",
"meta_brand_identifier": "83dd3e67-1e33-4893-8045-2f94b56487a4",
"type": "published"
}
}
]
},
{
"ticket_selling_carrier_code": "AB",
"trip_duration_in_minutes": 75,
"origin_code": "TXL",
"origin_timezone": "Europe/Berlin",
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-30T13:05:00",
"arrival_localtime": "2017-12-30T14:20:00",
"destination_offset_in_days": 0,
"destination_code": "FRA",
"stopover_count": 0,
"segments": [
{
"origin_code": "TXL",
"origin_terminal": null,
"origin_timezone": "Europe/Berlin",
"destination_code": "FRA",
"destination_terminal": "2",
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-30T13:05:00",
"arrival_localtime": "2017-12-30T14:20:00",
"operating_carrier_code": "AB",
"operating_flight_number": "6585",
"aircraft_operated_by": "AB",
"marketing_carrier_code": "AB",
"marketing_flight_number": "6585",
"aircraft_type": "320",
"booking_class": "W",
"flight_duration_in_minutes": 75,
"catering": [],
"cabin_class": "economy",
"technical_stops": {
"count": 2,
"stop_details": [
{
"airport_code": "MUC",
"arrival_localtime": "2021-12-30T13:20:00",
"departure_localtime": "2021-12-30T13:30:00",
"duration_in_minutes": 10
},
{
"airport_code": "DUS",
"arrival_localtime": "2021-12-30T13:40:00",
"departure_localtime": "2021-12-30T13:55:00",
"duration_in_minutes": 15
}
]
},
"air_miles": null,
"wifi": { "available": null, "packages": null },
"on_time_in_percentage": null,
"baggage_pieces_included": { "count": 1, "kg_per_piece": 23 },
"fare": {
"brand": "ECONOMY LIGHT",
"brand_identifier": "economy_light",
"basis_code": "WNY05RT",
"type": "published"
}
}
]
}
]
},
]
Key | Type | Description |
---|---|---|
id |
UUID | The unique id of the search result, used for Select and Reserve |
instant_ticket |
Boolean | Indicates if the ticket is automatically issued at the time of booking the flight. Supported Supplier List |
source |
Object | Information about the source of the result |
source.supplier |
String | The supplier on which this result has been found |
source.account |
String | The account on which the result has been found |
source.currency |
String | The currency of the result returned from the supplier |
fare_calculations |
Array | Describes how the flight price (not the total price) has been calculated for ONE passenger |
fare_calculations.passenger_type |
String | Type of passenger. Example: adult , child or infant |
fare_calculations.price |
String | Price for one passenger for the specific type to make reservation |
fare_calculations.currency |
String | The currency in which the price is displayed |
pricing |
Object | Detailed Pricing Information |
pricing.flight_price |
Object | Detailed Flight Price Information |
pricing.flight_price.recommended_selling_price |
Object | Detailed information about the price of the room we recommend to use as selling price |
pricing.flight_price.recommended_selling_price.amount |
String | The price of the room/rooms we recommend to use as selling price |
pricing.flight_price.recommended_selling_price.currency |
String | The currency of the price of the room we recommend to use as selling price |
pricing.flight_price.purchase_price |
Object | Detailed information about the price of the trip you will have to pay |
pricing.flight_price.purchase_price.amount |
String | The price of the journey you will have to pay |
pricing.flight_price.purchase_price.currency |
String | The currency of the price of the trip you will have to pay |
pricing.flight_price.source |
Object | Detailed information about the price of the journey you will have to pay for the default currency of the IPCC |
pricing.flight_price.source.amount |
String | The price of the journey you will have to pay |
pricing.flight_price.source.currency |
String | Default currency in which the pricing is being exposed |
pricing.tax |
Object | Tax related Information |
pricing.tax.amount |
String | the amount of tax to be paid |
pricing.tax.currency |
String | Currency in which the tax has been exposed |
pricing.tax.source |
Object | Tax in IPCC’s default currency related information |
pricing.tax.source.amount |
String | The tax you have to pay in terms of default currency |
pricing.tax.source.currency |
String | Default Currency of the IPCC |
pricing.total_price |
Object | Information related to the total price of the Flight |
pricing.total_price.recommended_selling_price |
Object | Information related to the total price of the trip including tax we recommend you to use as selling price |
pricing.total_price.recommended_selling_price.amount |
String | The total price of the result we recommend you to use as selling price |
pricing.total_price.recommended_selling_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price.purchase_price |
Object | Detailed information about the total purchase price |
pricing.total_price.purchase_price.amount |
String | The price of the journey including tax you will have to pay |
pricing.total_price.purchase_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price.source |
Object | Detailed information about the total price of the journey you will have to pay for the default currency of the IPCC |
pricing.total_price.source.amount |
String | The total price of the journey you will have to pay for the default currency of the IPCC |
pricing.total_price.source.currency |
String | Default currency in which the pricing is being exposed |
refundable |
Boolean | Booking Refund Information |
penalties |
Object | The detailed information about penalties for cancelling the booking |
penalties.change |
Object | The information about the penalty for changing the flight booking. It can be changing the dates, destinations, or times. |
penalties.change.amount |
String | The penalty fee for changing the flight booking |
penalties.change.currency |
String | The currency in which the penalty fee is being exposed |
penalties.cancel |
Object | The information about the penalty for cancelling the flight booking |
penalties.cancel.amount |
String | Cancellation fee |
penalties.cancel.currency |
String | The currency in which the cancellation fee is being exposed |
apis_data_required |
String | Exposes if advanced passer information has to be required, see APIS data for more details |
reservation_manageable |
Boolean | Marks if it is possible to modify a reservation of this result from our API |
fare_rule |
Boolean | Marks if fare rules available or not for this flight. |
free_cancellation_duration_in_minutes |
Integer | Total duration of the time for free cancellation of the flight in minutes. For example, 75 |
trips |
Array | All the trip information about the flight |
trips.ticket_selling_carrier_code |
String | Carrier Code of the ticket for the trip. It is two letter code. For example, BA |
trips.trip_duration_in_minutes |
Integer | Total duration of the flight trip expressed in minutes. For example, 75 |
trips.origin_code |
String | The airport code of the origin of the trip. For example, for a flight from Madrid to NewYork, the origin code will be MAD |
trips.origin_timezone |
String | The timezone of the place where the flight trip will take off. For example, Europe/Berlin |
trips.destination_timezone |
String | The timezone of the place where the flight trip will land. For example, Europe/Berlin |
trips.departure_localtime |
String | The local time of the airport at the time of departure |
trips.arrival_localtime |
String | The local time of the airport at the time of arrival |
trips.destination_offset_in_days |
Integer | The number of days required to reach the destination |
trips.destination_code |
String | The airport code of the destination of the trip. For example, for a flight from Madrid to NewYork, the origin code will be JFK |
trips.stopover_count |
Integer | The number of stopovers for the whole trip |
trips.segments |
String | Information about the segments of the trip |
trips.segments.origin_code |
String | The origin airport code for the segment |
trips.segments.origin_timezone |
String | The local timezone of the origin airport of the segment |
trips.segments.destination_code |
String | The airport code of the destination for this segment |
trips.segments.destination_timezone |
String | The timezone of the destination airport |
trips.segments.departure_localtime |
String | The local time of the airport at the time of departure for this segment |
trips.segments.arrival_localtime |
String | The local time of the airport at the time of arrival |
trips.segments.operating_carrier_code |
String | Operating Carrier Code refers to the identifier used in flight schedule, generally the two-character IATA airline designator code |
trips.segments.operating_flight_number |
String | Refers to the identifier used in flight schedule, flight number of the operating carrier |
trips.segments.aircraft_operated_by |
String | Refer to the identifier for the aircraft operated by the operating carrier |
trips.segments.marketing_carrier_code |
String | Refers to the ticket selling carrier |
trips.segments.aircraft_type |
String | Type of the aircraft for this trip segment. |
trips.segments.booking_class |
String | Indicates Travel Class. Usually the first letter of the fare basis code. For example, ‘O’ |
trips.segments.flight_duration_in_minutes |
Integer | Total duration of the flight trip expressed in minutes. For example, 75 |
trips.segments.catering |
Array | The kind of catering that will be offered on this flight, see catering for more details |
trips.segments.cabin_class |
String | Refers to the quality of the cabin for this trip segment.See Cabin Class for more details |
trips.segments.technical_stops |
Object | The details information about technical stops. A technical stop most commonly used to refuel the aircraft, to make unexpected essential repairs or to respond to some emergency need to land the aircraft. No traffic is unloaded or loaded during a technical stop. |
trips.segments.technical_stops.count |
Integer | The number of the technical stops will be taken by the aircraft in the particular segment. |
trips.segments.technical_stops.stop_details |
Array | Details information about each stop of the airlines. |
trips.segments.technical_stops.stop_details.airport_code |
String | The airport code of technical stop. For example, for a flight from Singapore to San Francisco, Then the first stop could be Hong Kong HKG airport. |
trips.segments.technical_stops.stop_details.arrival_localtime |
String | The local time of the airport at the time of arrival. |
trips.segments.technical_stops.stop_details.departure_localtime |
String | The local time of the airport at the time of departure. |
trips.segments.technical_stops.stop_details.duration_in_minutes |
Integer | Total duration between flight arrival and departure, expressed in minutes. For example, 30 |
trips.segments.air_miles |
String | A nautical mile used as a measure of distance flown by aircraft. |
trips.segments.wifi |
Object | Information related to the wifi connection for this trip segment |
trips.segments.wifi.available |
Boolean | The availability of wifi |
trips.segments.wifi.packages |
Array | Details about the wifi packages of this airline |
trips.segments.wifi_packages.amount |
String | The cost of the wifi package |
trips.segments.wifi_packages.currency |
String | The currency in which the cost of wifi package has ben exposed |
trips.segments.wifi_packages.volume_in_mbyte |
String | The volume in megabyte of wifi package is included |
trips.segments.on_time_in_percentage |
String | The percentage of punctuality of this flight of this trip segment |
trips.segments.baggage_pieces_included |
Object | The default included baggage, if not specified differently |
trips.segments.baggage_pieces_included.count |
Integer | The count of included baggage pieces |
trips.segments.baggage_pieces_included.kg_per_piece |
Integer | The weight allowed for the included baggage piece |
trips.segments.fare |
String | Information related to fare |
trips.segments.fare.brand |
String | The brand of the fare. For example, ECONOMY LIGHT |
trips.segments.fare.brand_identifier |
String | The brand identifier of the fare. For example, economy_light, euro_traveler, world_traveler, business, basic and so on |
trips.segments.fare.meta_brand_name |
String | The meta brand identifier of the fare which will come from meta. For example, Flex |
trips.segments.fare.meta_brand_identifier |
UUID | The meta fare brand unique identifier. |
trips.segments.fare.basis_code |
String | A fare basis code is an alphabetic or alpha-numeric code used by airlines to identify a fare type and allow airline staff and travel agents to find the rules applicable to that fare. For example, WNY05RT |
trips.segments.fare.type |
String | The fare type, see fare type for more details |
Flight Reserve Flow
If a flight is available, you may book it by sending a POST
request to /api/flights/reservations
and referencing the id
.
Please be aware that for some bookings you need to issue a ticket in a specified period of time. After completing the Reserve step, you may fetch the booking details and see if this is the case.
If a ticket has to be issued depends on the supplier. A general rule of thumb is that only bookings created on a GDS require a ticket issuance.
Please refer to the reservation management for information about managing your bookings.
Reserve Request
POST /api/flights/reservations HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Content-Type: application/json; charset=utf-8
{
"result_id": "3537a351-076a-45b1-97d8-a7e354d58f8c",
"travelers": [
{
"first_name": "Jane",
"middle_name": "Pamela",
"last_name": "Doe",
"name_prefix": "mrs",
"email": "jane.doe@example.org",
"birthday": "1967-11-23",
"type": "adult",
"assistance_requests": [
{ "code": "BLND" }
],
"meal_requests": [
{
"operating_carrier_code": "AB",
"operating_flight_number": "6572",
"code": "AVML"
}
],
"addresses": [
{
"type": "destination",
"name": "Fisher",
"street": "Somewhere 1",
"city": "Berlin",
"zip": "1234",
"country": "DE"
}
],
"document": {
"type": "passport",
"number": "F1235533",
"nationality": "CH",
"validity": "2018-01-09",
"issuing_country": "CH"
},
"seat_reservations": [ "82b9295d-3fe1-493a-b05e-0c89390b7c7c" ],
"services": [
"1f1f0173-a49d-43c1-b30e-5f715fce9a0e",
"8e3ef92e-bdea-4f96-a138-09b6c0662f09"
],
"frequent_flyer_number": {
"carrier": "AB",
"number": "992001234413445"
}
}
],
"agency_phone_number": "+41 43 550 77 00",
"destination_account": "ACT2",
"queue": 70,
"remarks": [
{ "type": "alpha", "content": "Hey There!" }
],
"form_of_payment": "cash",
"card_details": {
"name": "Davy Jones",
"number": "5275009999993833",
"type": "master_card",
"expiry_date": "12/17",
"code": "111",
"cardholder_address": {
"street": "Some Street",
"city": "Some City",
"zip": "1337",
"country": "SE"
}
}
}
Parameter | RQ | Type | Description |
---|---|---|---|
result_id |
✔ | UUID | The search result which should be booked |
travelers |
✔ | Array | An array of the travelers, must have to match the initial number of the search |
travelers.first_name |
✔ | String | The first name of this traveler |
travelers.middle_name |
✘ | String | The middle name of this traveler |
travelers.last_name |
✔ | String | The last name of this traveler |
travelers.name_prefix |
✔ | String | The name prefix of this traveler. Possible values: mr, mrs, ms |
travelers.email |
✔/✘ | String | The email address of the traveler. |
travelers.pass_email_to_airline |
✘ | Boolean | If set to true, Reservation will send traveler email to Airline. |
travelers.phone_number |
✔/✘ | String | The phone number of the traveler. |
travelers.pass_phone_to_airline |
✘ | Boolean | If set to true, Reservation will send traveler phone number to Airline. |
travelers.birthday |
✔ | String | The birthday of this traveler, in ISO-8601 format |
travelers.type |
✔ | String | The type of this traveler, either adult , child or infant |
travelers.frequent_flyer_number |
✘ | Object | Frequent Flyer Number Information |
travelers.frequent_flyer_number.carrier |
✔ | String | Carrier/Airline Code of the Frequent Flyer Number |
travelers.frequent_flyer_number.number |
✔ | String | Frequent Flyer Number of this traveler |
travelers.services |
✘ | Array | All the ancillary services the traveler would like to book as well. The traveler has to provide the service id from the select response. For eg. 94db71c7-32fe-47a5-a34d-1e9490d7ee41 . Possible services are: baggage service and on-board food services. |
travelers.seat_reservations |
✘ | Array | All the seat reservations for this traveler. To book preferred seats, traveler has to provide with seat identifiers for example 9fcfe42f-2736-432e-8f71-985c2157fca9 |
travelers.assistance_requests |
✘ | Array | The assistance requests of this traveler. |
travelers.assistance_requests.code |
✔ | String | IATA Code of Assistance, see assistance requests for the possible values |
travelers.assistance_requests.text |
✘ | String | Additional textual information about the assistance service. |
travelers.meal_requests |
✘ | Array | The meal requests of this traveler. |
travelers.meal_requests.operating_carrier_code |
✔ | String | Two Letter Airlines IATA code. Please refer to your select response for this code. This should be a valid operating carrier code otherwise exception will be raised. |
travelers.meal_requests.operating_flight_number |
✔ | String | Flight number from Airline. Please refer to your select response for this code. This should be a valid operating flight number otherwise exception will be raised |
travelers.meal_requests.code |
✔ | String | The meal requests of this traveler, see meal requests for the possible values |
travelers.document |
✘ | Object | The travelers document, used for DOCS |
travelers.document.type |
✔ | String | Type of the document, check document type for the possible values |
travelers.document.number |
✔ | String | ID to identify the Document. |
travelers.document.issuing_country |
✔ | String | Issuing Country of the Document. Has to be a ISO 3166-1 alpha-2 country code. |
travelers.document.nationality |
✔ | String | Nationality of the document holder |
travelers.document.validity |
✔ | String | Validity of the document. You must provide validity for a certain document types. For details, please see Validity Information |
travelers.addresses |
✘ | Array | The addresses of the traveler, used for DOCA SSR generation |
travelers.addresses.type |
✘ | String | Please use One of the following destination , residence or office |
travelers.addresses.contact_name |
✘ | String | Traveller Address Name. Like: Johnson Residence . |
travelers.addresses.street |
✔ | String | Street Address. Like: 4676 Palmer Road |
travelers.addresses.city |
✔ | String | City of the Address. |
travelers.addresses.zip |
✔ | String | Zip Code or Postal Code |
travelers.addresses.country |
✔ | String | Has to be a ISO 3166-1 alpha-2 country code. |
agency_phone_number |
✔ | String | The phone number of the main contact for the travel agency. For example: 111-11-111 . |
remarks |
✘ | Array | Remarks related to this bookings. Generally travel agencies use this field to write notes about a booking. |
remarks.type |
✘ | String | Remarks type. It is different for each supplier. Please refer to your supplier. |
remarks.content |
✔ | String | Remark text content. |
accounting_remarks |
✘ | Array | Accounting Remarks related to this bookings. Might be used for accounting related notes. |
accounting_remarks.type |
✘ | String | Accounting Remarks type. It is different for each supplier. Please refer to your supplier. |
accounting_remarks.content |
✔ | String | Accounting Remark text content. |
queue |
✘ | Integer | If given, the created PNR will be placed on a queue |
destination_account |
✘ | String | If given, the PNR will be placed on the queue of this account |
|
✘ | String | Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata, welltravel_wallet. Default is cash . Please note that some supplies might only support a certain payment method, supplying otherwise will give you a HTTP 422 unprocessable entity error. |
card_details |
✘/✔ | Object | Card details, required if form_of_payment is credit_card |
card_details.name |
✔ | String | Card Holder Name |
card_details.number |
✔ | String | Credit Card Number. Please enter the number as in the card. No space or special character is allowed. |
card_details.type |
✔ | String | Credit Card Type. Possible values: visa , master_card , amex . |
card_details.expiry_date |
✔ | String | Credit Card Expiry Date. Format is: MM/YY . example: 01/19 . |
card_details.code |
✔ | String | Credit Card Code/CVV/CVC |
card_details.bank_name |
✘/✔ | String | The name of the bank. |
card_details.bank_country_code |
✘/✔ | String | The country code of the country in which the bank is located. Usually it is a two or three letters code. |
card_details.cardholder_address |
✘ | Object | Card Holder Address Details |
card_details.cardholder_address.address_name |
✘ | String | Card Holder Address Name. Like: Family Doe |
card_details.cardholder_address.street |
✔ | String | Card Holder Street Name |
card_details.cardholder_address.city |
✔ | String | Card Holder City Code |
card_details.cardholder_address.state |
✘ | String | Card Holder State Name |
card_details.cardholder_address.zip |
✔ | String | Card Holder ZIP Code or Post Code |
card_details.cardholder_address.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code |
metadata |
✔ | Object | Metadata, required if form_of_payment is welltravel_wallet |
|
✔ | Object | Flight Object |
metadata.flight.source_identifier |
✔ | String | Item ID in Reservation (ie. flight_query_result_id or flight_booking_id) |
metadata.flight.order_identifier |
✔ | Integer | Order ID in Agent |
metadata.flight.order_item_reference |
✔ | String | Title of Order Item in Agent (This will be used in AFF transaction page) |
|
✔ | Array | Seats Objects |
metadata.ancillaries.seats.source_identifier |
✔ | String | Item ID in Reservation (ie. booked_seat_id or seat ID from the seat map) |
metadata.ancillaries.seats.order_identifier |
✔ | Integer | Order ID in Agent |
metadata.ancillaries.seats.order_item_reference |
✔ | String | Title of Order Item in Agent (This will be used in AFF transaction page) |
metadata.ancillaries.seats.traveler_reference |
✔ | Integer | Traveler ID in Agent |
|
✔ | Array | Services Objects |
metadata.ancillaries.services.source_identifier |
✔ | String | Item ID in Reservation (ie. ancillary_service_id or service_id) |
metadata.ancillaries.services.order_identifier |
✔ | Integer | Order ID in Agent |
metadata.ancillaries.services.order_item_reference |
✔ | String | Title of Order Item in Agent (This will be used in AFF transaction page) |
metadata.ancillaries.services.traveler_reference |
✔ | Integer | Traveler ID in Agent |
Reserve Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "49c031e0-cfbc-4d2a-8f03-b844885e6353",
"bookings": [
{
"id": "4FJ996",
"supplier": "galileo",
"account": "ACT2",
"free_cancellation_period_ends": "2016-11-27T14:12:45Z"
}
]
}
Attributes
See Reservation.
Services
As services are booked asynchronous and may be confirmed by the airline, make sure to check the state of the booking by using Fetch Booking.
Flight Direct Select Flow
To create a direct flight select, send a POST
request to /api/flights/save_query
.
It will return the unique id of the search result, used for Select and Reserve.
This ID can be used to confirm it’s availability by sending a GET
request to /api/flights/results/:id
.
Direct Select Examples
Direct select with all parameters
POST /api/flights/save_query HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
Content-Type: application/json; charset=utf-8
{
"trips": [
{
"origin_code": "ZRH",
"destination_code": "LHR",
"date": "2022-10-01",
"segments":[
{
"origin_code": "ZRH",
"destination_code": "LHR",
"departure_localtime": "2022-10-01T07:05:00",
"arrival_localtime": "2022-10-01T09:45:00",
"operating_flight_number": "1091",
"operating_carrier_code": "UX",
"marketing_carrier_code": "UX",
"cabin_class": "economy",
"marketing_flight_number": "8764",
"booking_class": "O",
"fare_basis_code": "WRCSOWSG"
}
]
}
],
"adults": 1,
"children": 0,
"infants": 0,
"currency": "GBP",
"accounts": {
"amadeus": [
{ "identifier": "ACTX" }
]
}
}
Below is a list of all available request parameters
Parameter | RQ | Type | Description |
---|---|---|---|
trips |
✔ | Array | An array of trips, supports up to 9 trips on certain suppliers. Please check your supplier specific details. |
trips.origin_code |
✔ | String | The origin for this trip. It is a 3 letter code. IATA airport code |
trips.destination_code |
✔ | String | The destination for this trip. It is a 3 letter IATA airport code |
trips.date |
✔ | String | Date of the trip, in ISO-8601 format |
trips.segments |
✔ | String | Information about the segments of the trip |
trips.segments.origin_code |
✔ | String | The origin airport code for the segment |
trips.segments.destination_code |
✔ | String | The airport code of the destination for this segment |
trips.segments.departure_localtime |
✔ | String | The local time of the airport at the time of departure for this segment |
trips.segments.arrival_localtime |
✔ | String | The local time of the airport at the time of arrival |
trips.segments.operating_flight_number |
✔ | String | Refers to the identifier used in flight schedule, flight number of the operating carrier |
trips.segments.operating_carrier_code |
✔ | String | Operating Carrier Code refers to the identifier used in flight schedule, generally the two-character IATA airline designator code |
trips.segments.marketing_carrier_code |
✔ | String | Refers to the ticket selling carrier |
trips.segments.cabin_class |
✔ | String | Refers to the quality of the cabin for this trip segment.See Cabin Class for more details |
trips.segments.booking_class |
✘ | String | Indicates Travel Class. Usually the first letter of the fare basis code. For example, ‘O’ |
trips.segments.fare_basis_code |
✘ | String | A fare basis code is an alphabetic or alpha-numeric code used by airlines to identify a fare type and allow airline staff and travel agents to find the rules applicable to that fare. For details, please see Fare Basis Code. We get this fare basis code from the search result. |
adults |
✔ | Integer | The number of adult passenger will be on this journey. Must be at-least one. The number of adults must be greater than number of infants. |
children |
✔ | Integer | The number of child passenger will be on this journey. The child has to be younger than 12 years at the start of journey. |
infants |
✔ | Integer | The number of infants (children without seat) will be on this journey . Infant has to be younger than 2 years at the start of journey. |
currency |
✔ | String | The currency in which the prices will be exposed, in ISO-4217 format. See All Supported Welltravel Currencies for details. |
|
✔ | Object | The accounts to use when searching |
accounts.identifier |
✔ | String | Account Identifier for suppliers. Generally IPCC for GDSs. |
accounts.codes |
✘ | Array | Discount or Corporate Codes for the specific supplier. For details, see Supplier Specific Maximum Corporate Code Support |
Direct Select with Minimum Parameters
This is an example for possible minimum request you can do in our system.
POST /api/flights/save_query HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
Content-Type: application/json; charset=utf-8
{
"trips": [
{
"origin_code": "ZRH",
"destination_code": "LHR",
"date": "2022-10-01",
"segments":[
{
"origin_code": "ZRH",
"destination_code": "LHR",
"departure_localtime": "2022-10-01T07:05:00",
"arrival_localtime": "2022-10-01T09:45:00",
"operating_flight_number": "1091",
"operating_carrier_code": "UX",
"marketing_carrier_code": "UX",
"cabin_class": "economy",
"marketing_flight_number": "8764"
}
]
}
],
"adults": 1,
"children": 0,
"infants": 0,
"currency": "GBP",
"accounts": {
"amadeus": [
{ "identifier": "ACTX" }
]
}
}
Direct Select Response
After processing the direct select request, the system will return an UUID
which points to the search result that you just created. You need to use this UUID
in order to select and reserve the flight returned in the search result.
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "d51d7770-3046-414a-81e8-2a148414a6db"
}
Parameter | Type | Description |
---|---|---|
id |
UUID | The unique id of the search result, used for Select and Reserve |
Select and Reserve After Direct Select
After receiving the uuid from Direct Select response, you are able to book a flight in following two steps:
Search & Book: Hotel
After authentication, you are able to book a Hotel in three steps:
- Search: Search & fetch Hotel results
- Select: Confirm availability and Fetch the room prices
- Reserve: Create a reservation
Every step is required. You can’t leave one out.
Hotel Search Flow
To create a hotel search, send a POST
request to /api/hotels/searches
.
It will return the ID of the created search.
This ID can be used to fetch the results by sending a GET
request to /api/hotels/searches/:id/results
Create Hotel Search
POST /api/hotels/searches HTTP/1.1
content-type: application/json
Accept-Version: v1
Authorization: Bearer b7e6e755d6123fb74653fac618c88bd3f67bf965fd2ba90b7132769ec6050c94
{
"check_in": "2017-12-15",
"check_out": "2017-12-20",
"place_id": "11253",
"number_of_rooms": 1,
"adults": 1,
"children": [
{ "age": "9" },
{ "age": "2" },
],
"currency": "USD",
"accounts": {
"xml_bookings": [
{
"identifier": "xy-travel-agency",
"codes": [
"ABCD"
]
}
],
"totalstay": [
{
"identifier": "xy-travel-agency"
}
],
"travelport_rooms_and_more": [
{
"identifier": "xy-travel-agency"
}
],
"amadeus": [
{
"identifier": "xy-travel-agency"
}
]
}
}
Sample Request for Hotel Search with geolocation
POST /api/hotels/searches HTTP/1.1
content-type: application/json
Accept-Version: v1
Authorization: Bearer b7e6e755d6123fb74653fac618c88bd3f67bf965fd2ba90b7132769ec6050c94
{
"check_in":"2019-08-09",
"check_out":"2019-08-10",
"number_of_rooms":1,
"adults":1,
"children":[ ],
"currency":"ZAR",
"accounts":{
"amadeus":[
{
"identifier":"account_identifier",
"codes": [
"AB-B56***"
]
}
]
},
"geo_location":{
"latitude":"-33.929162",
"longitude":"18.425136"
}
}
All Possible Request Parameters
Parameter | RQ | Type | Description |
---|---|---|---|
check_in |
✔ | Date | Check in date, in ISO-8601 format |
check_out |
✔ | Date | Check out date, in ISO-8601 format |
place_id |
✔ | String | Welltravel city id. Please Check Meta Place Codes and Meta Airports for this value. |
number_of_rooms |
✘ | Integer | Number of rooms needed. This should not be zero(0) or negative and must be less than adults number. |
adults |
✔ | Integer | Number of adults |
children |
✔ | Array | An array containing the number of children along with age of them. Default is [] |
children.age |
✔ | Integer | The age of the child guest. The range must be 0 to 17 years |
currency |
✔ | String | Which currency the search result will be shown. Not all suppliers support this. |
geo_location |
✔ | Object | A hash containing Geo location Details |
geo_location.latitude |
✔ | String | Latitude of the location. The range is -90.00 to 90.00. For example, 61.3232 |
geo_location.longitude |
✔ | String | Longitude of the location The range is -180.00 to 180.00. For example, 61.3232 |
geo_location.radius_in_km |
✔ | Integer | Radius in kilometres |
|
✔ | Object | The accounts to use when searching |
accounts.identifier |
✔ | String | Account Identifier for suppliers. Generally IPCC for GDSs. |
accounts.codes |
✘ | Array | Discount or Corporate Codes for the specific supplier. For details, see Supplier Specific Maximum Corporate Code Support |
Search Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "d51d7770-3046-414a-81e8-2a148414a6db"
}
Parameter | Type | Description |
---|---|---|
id |
UUID | The UUID of the search, use it to fetch the results |
Fetch Seach Results
GET /api/hotels/searches/d51d7770-3046-414a-81e8-2a148414a6db/results?per_page=250&page=1 HTTP/1.1
Authorization: Bearer d96149e72d675122a6e30b8e349f5e1744a72b20c79cb9826dc20cfb99338c12
Accept-Version: v1
GET /hotels/searches/:id/results(.json)
Use the id
from the search response to fetch the results. This endpoint supports Pagination.
Request Parameters
Parameter | RQ | Type | Description |
---|---|---|---|
order_by |
✘ | String | Sort/Order hotel search results using keys. Please use one of these keys `“rating”, “total_price”. Default is “total_price”. |
order_direction |
✘ | String | Order direction of car search results. Please use one of these "asc", "desc" |
include_duplicates |
✘ | Boolean | Whether to include or exclude duplication result. Default is false |
Response Parameters
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 10
X-Total-Pages: 1
X-Per-Page: 300
X-Page: 1
[
{
"id": "c48cff48-cd9a-47a4-b802-abb1b24abb6f",
"source": {
"supplier": "travelport_rooms_and_more",
"account": "P7033971",
"currency": "USD"
},
"name": "PubLove @ The Great Eastern - Hostel",
"address": {
"street": "1 Glenaffric Avenue London,",
"city": "London",
"state": null,
"zip": "E143BW",
"country": null
},
"longitude": "-0.005795806755",
"latitude": "51.488641304072",
"stars": 0.0,
"rating": 2.0,
"rating_source": "trm",
"check_in": "2017-12-15",
"check_out": "2017-12-20",
"picture_url": "http://media-atl-tram.pp.travelport.com/hotel-thumbnails/90x90/GBLON@/004469/hs_8800378_12_b.jpg",
"refundable": null,
"corporate_deal": false,
"pricing": {
"room_rate": {
"total": {
"recommended_selling_price": {
"amount": "63.5",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "63.5",
"currency": "USD"
}
},
"per_night": [
{
"recommended_selling_price": {
"amount": "12.7",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "12.7",
"currency": "USD"
},
"date": "2017-12-15"
},
{
"recommended_selling_price": {
"amount": "12.7",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "12.7",
"currency": "USD"
},
"date": "2017-12-16"
},
]
},
"taxes": {
"amount": "0.0",
"currency": "USD",
"source": {
"amount": "0.0",
"currency": "USD"
}
},
"total": {
"recommended_selling_price": {
"amount": "63.5",
"currency": "USD"
},
"purchase_price": {
"amount": "60.01",
"currency": "USD"
},
"source": {
"amount": "63.5",
"currency": "USD"
}
}
}
}
]
Parameter | Type | Description |
---|---|---|
id |
UUID | ID for specific the hotel |
source |
Object | Detailed Information about the supplier |
source.supplier |
Object | Name of the hotel supplier. Our API supports the following hotel suppliers : Totalstay , Amadeus, TravelportRoomsAndMore, Galileo and XmlBookings |
source.account |
Object | Name of the account |
source.currency |
Object | Currency of the pricing provided by the supplier |
name |
String | Name of the Hotel |
address |
Object | Detailed Address of the Hotel |
address.street |
String | Street address of the Hotel |
address.city |
String | City in which the Hotel is located |
address.state |
String | State in which the Hotel is located |
address.zip |
String | Zip address of the Hotel location |
address.country |
String | Country in which the Hotel is located |
longitude |
String | Longitude of the Hotel location |
latitude |
String | Latitude of the Hotel location |
stars |
Number | Star rating system is a system aims to rate hotels based on the quality and amount of amenities it provides its customers. For supplier specific, hotel star rating details, see Amadeus. Totalstay, XmlBookings and TravelportRoomsAndMore |
rating |
String | Rating of the hotel. For supplier specific, hotel rating details, see Amadeus. Totalstay, XmlBookings and TravelportRoomsAndMore |
rating_source |
String | Rating Source. For supplier specific, hotel rating source details, see Amadeus. Totalstay, XmlBookings and TravelportRoomsAndMore |
check_in |
String | Check In Time |
check_out |
String | Check Out Time |
picture_url |
String | Picture URL |
refundable |
Boolean | Booking Refund Information. It indicates whether the hotel booking is refundable or not |
corporate_deal |
Boolean | Indicate the rate is under corporate deal or not |
pricing |
Object | Detailed Pricing Information |
pricing.room_rate |
Object | Room rate pricing details |
pricing.room_rate.total |
Object | Total room rate pricing details |
pricing.room_rate.total.recommended_selling_price |
Object | Total room rate recommended selling pricing details |
pricing.room_rate.total.recommended_selling_price.amount |
String | Amount of recommended selling price |
pricing.room_rate.total.recommended_selling_price.currency |
String | Currency of recommended selling price |
pricing.room_rate.total.purchase_price |
Object | Total room rate purchase pricing details |
pricing.room_rate.total.purchase_price.amount |
String | Amount of the purchase price |
pricing.room_rate.total.purchase_price.currency |
String | Currency of the purchase price |
pricing.room_rate.total.source |
Object | Total room rate source pricing details |
pricing.room_rate.total.source.amount |
String | Amount of the Source Price |
pricing.room_rate.total.source.currency |
String | Currency of the Source Price |
pricing.room_rate.per_night |
Array | Per night room rate Information |
pricing.room_rate.per_night.recommended_selling_price |
Object | Per night room rate recommended selling pricing details |
pricing.room_rate.per_night.recommended_selling_price.amount |
String | Amount of the recommended selling price |
pricing.room_rate.per_night.recommended_selling_price.currency |
String | Currency of the recommended selling price |
pricing.room_rate.per_night.purchase_price |
Object | Per night room rate purchase pricing details |
pricing.room_rate.per_night.purchase_price.amount |
String | Amount of purchase price |
pricing.room_rate.per_night.purchase_price.currency |
String | Currency of the purchase price |
pricing.room_rate.per_night.source |
Object | Total Per night room rate source pricing details |
pricing.room_rate.per_night.source.amount |
String | Amount of the Source Price |
pricing.room_rate.per_night.source.currency |
String | Currency of the Source Price |
pricing.room_rate.per_night.date |
String | Date on which the per night pricing information is valid |
pricing.taxes |
Object | Pricing Tax Information |
pricing.taxes.amount |
String | Amount of Pricing Tax |
pricing.taxes.currency |
String | Currency of Pricing Tax |
pricing.taxes.source |
Object | Source Pricing Tax Information |
pricing.taxes.source.amount |
String | Amount of Source Pricing Tax |
pricing.taxes.source.currency |
String | Currency of Source Pricing Tax |
pricing.total |
Object | Total Pricing Information |
pricing.total.recommended_selling_price |
Object | Total recommended selling pricing details |
pricing.total.recommended_selling_price.amount |
String | Amount of the recommended selling price |
pricing.total.recommended_selling_price.currency |
String | Currency of the recommended selling price |
pricing.total.purchase_price |
Object | Total Purchase pricing details |
pricing.total.purchase_price.amount |
String | Amount of purchase price |
pricing.total.purchase_price.currency |
String | Currency of the purchase price |
pricing.total.source |
Object | Total Source Pricing details |
pricing.total.source.amount |
String | Amount of the Source Price |
pricing.total.source.currency |
String | Currency of the Source Price |
Definitions
Refundable
This parameter indicates whether the hotel booking payment will be paid back to you in certain circumstances if it is cancelled. But whether you will get the refund or not depends on certain conditions. It varies from hotels to hotels. If refundable
is true, it means the payment for booking will be refunded upon cancellation. It if is otherwise i.e false then is the payment is non-refundable.
In the Select
step, there will be detailed information about cancellation like cancellation fee, start date of cancellation and last date of cancellation for each room of the hotel available for booking.
Children
You have to make sure that the number of children is less than the number of adults. A guest will be considered as child
only if his/her age is below twelve.
Hotel Search Rules
- The number of passenger has to be defined in such a way that total number of passengers/guests would not be more than nine(9)
- The number of adults must be greater than number of children.
- Total number of rooms should less than or equals to adults
- The check-out date must not be before the check-in date
- The currency provided in the search may not be supported by some supplier. In that case, the supplier will provide the pricing in the default currency of the supplier.
- The check-out date and check-in date must be future dates
Hotel Select Flow
After a hotel result has been selected, use its id
to confirm if it’s still available.
Select Request
GET /api/hotels/results/449483a8-d028-4dab-951d-6e81e2d8a85a HTTP/1.1
Authorization: Bearer f29aeba8aee1ee11b84dda150eac2a61f50aeb068468a8a88c176b95f5a89e03
Accept-Version: v1
GET /hotels/results/:id(.json)
Select Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "c48cff48-cd9a-47a4-b802-abb1b24abb6f",
"available": true,
"price_changed": false,
"hotel_information": {
"number_of_rooms": 4,
"number_of_floors": null,
"check_in_time": "4:00",
"check_out_time": "14:00",
"description": "Located in Canary Wharf, PubLove @ The Great Eastern Greenwich is a perfect starting point from which to explore London. The property features a wide range of facilities to make your stay a pleasant experience. To be found at the hotel are free Wi-Fi in all rooms, 24-hour front desk, Wi-Fi in public areas, restaurant, coffee shop. Guestrooms are fitted with all the amenities you need for a good night's sleep. In some of the rooms, guests can find linens, wooden/parqueted flooring, internet access – wireless (complimentary), non smoking rooms, heating. The hotel offers various recreational opportunities. A welcoming atmosphere and excellent service are what you can expect during your stay at PubLove @ The Great Eastern Greenwich.\u003c/p\u003e",
"hotel_policies": null,
"check_in_instructions": null,
"preparations": null
},
"hotel_facilities": {
"meals_included": "breakfast",
"airport_shuttle": {
"pick_up": "complimentary",
"drop_off": "non_complimentary",
},
"wifi": "complimentary",
"others": [
"credit_card",
"24hr_reception",
"laundry_facilities",
"elevator",
"gym_fitness_centre",
"car_parking",
"multilingual_staff",
"meeting_room_facilities",
"outdoor_pool",
"spa_beauty_facilities"
],
"conditions": [
"no_infant_beds",
"no_extra_bed",
"no_pet_allowed",
"non_smoking_property"
]
},
"picture_urls": [
{
"url": "http://media.expedia.com/hotels/2000000/1550000/1545200/1545164/1545164_69_b.jpg",
"thumbnail_url": "http://media.expedia.com/hotels/2000000/1550000/1545200/1545164/1545164_69_b1.jpg"
}
],
"rooms": [
{
"id": 1,
"pricing": {
"room_rate": {
"total": {
"recommended_selling_price": {
"amount": "63.5",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "63.5",
"currency": "USD"
}
},
"per_night": [
{
"recommended_selling_price": {
"amount": "12.7",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "12.7",
"currency": "USD"
},
"date": "2017-12-15"
},
{
"recommended_selling_price": {
"amount": "12.7",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "12.7",
"currency": "USD"
},
"date": "2017-12-16"
},
]
},
"taxes": {
"amount": "0.0",
"currency": "USD",
"source": {
"amount": "0.0",
"currency": "USD"
}
},
"total": {
"recommended_selling_price": {
"amount": "63.5",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "63.5",
"currency": "USD"
}
},
},
"corporate_deal": false,
"rate_type": null,
"rate_code": "BAR",
"rate_type_description": "BEST RATE INCL. WIFI",
"commissions":
{
"status": true,
"amount": null,
"currency": "EUR",
"percentage": "10.0"
},
"cancellation_policies": [
{
"start_date": "2017-12-01",
"end_date": "2017-12-07",
"fee": "0.0",
"currency": "USD"
},
{
"start_date": "2017-12-08",
"end_date": "2017-12-12",
"fee": "10.50",
"currency": "USD"
}
],
"room_types": [
{
"no_of_rooms": 1,
"type": "1 KING BED",
"description": "1 KING BED, MOBILITY ACC, COMMASSIST, BATHTUB, NOSMOKING",
"meals_included": null,
"board_type": null
}
]
},
{
"id": 2,
"pricing": {
"room_rate": {
"total": {
"recommended_selling_price": {
"amount": "63.5",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "63.5",
"currency": "USD"
}
},
"per_night": [
{
"recommended_selling_price": {
"amount": "12.7",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "12.7",
"currency": "USD"
},
"date": "2017-12-15"
},
{
"recommended_selling_price": {
"amount": "12.7",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "12.7",
"currency": "USD"
},
"date": "2017-12-16"
},
]
},
"taxes": {
"amount": "0.0",
"currency": "USD",
"source": {
"amount": null,
"currency": null
}
},
"total": {
"recommended_selling_price": {
"amount": "63.5",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "63.5",
"currency": "USD"
}
}
},
"corporate_deal": false,
"rate_type": null,
"rate_code": "BAR",
"rate_type_description": "BEST RATE INCL. WIFI",
"commissions":
{
"status": true,
"amount": null,
"currency": "EUR",
"percentage": "10.0"
},
"cancellation_policies": [
{
"start_date": "2017-12-01",
"end_date": "2017-12-07",
"fee": "0.0",
"currency": "USD"
},
{
"start_date": "2017-12-08",
"end_date": "2017-12-12",
"fee": "10.00",
"currency": "USD"
}
],
"room_types": [
{
"no_of_rooms": 1,
"type": "1 REGULAR BED",
"description": "1 Person in 15-Bed Dormitory with Shared Bathroom - Mixed - Max Occupancy: 1",
"meals_included": null,
"board_type": null
}
]
}
],
"form_of_payment": {
"options": [
"credit_card",
"cash",
"none",
"iata",
"counter"
],
"required_fields": {
"credit_card": {
"name": true,
"number": true,
"type": true,
"expiry_date": true,
"code": true,
"street": true,
"city": true,
"zip": true,
"country": true
}
}
},
"queues": {
"supported": false
},
"accounting_remarks": {
"supported": false,
"available_codes": []
},
"general_remarks": {
"supported": false,
"available_codes": []
}
}
Information about Hotel
Parameter | Type | Description |
---|---|---|
id |
UUID | ID for specific the hotel |
available |
Boolean | Availability of the Hotel |
price_changed |
Boolean | Return if the price changed after the select call |
hotel_information |
Object | Detailed Information about the Hotel |
hotel_information.number_of_rooms |
Integer | Total number of rooms of the hotel |
hotel_information.number_of_floors |
Integer | Total number of floors of the hotel |
hotel_information.check_in_time |
String | Possible values: 00:00 to 23:59 or full_day_check_in |
hotel_information.check_out_time |
String | Possible values: 00:00 to 23:59 |
hotel_information.description |
String | Description about the hotel |
hotel_information.hotel_policies |
String | Detailed information about the hotel policies |
hotel_information.check_in_instructions |
String | Instruction about the check-in |
hotel_information.preparations |
String | The kind of preparations should be taken before check-in, like packing list, documents that needed to be submitted, passport mandatory or not etc |
hotel_facilities |
Object | Detailed information about the facilities provided by the hotel |
hotel_facilities.meals_included |
String | Details of complimentary meals. See Board Type for details |
hotel_facilities.airport_shuttle |
Object | Detailed information about airport shuttle facility |
hotel_facilities.airport_shuttle.pick_up |
String | Airport pickup information. See Hotel Facility Availabilities for the details |
hotel_facilities.airport_shuttle.drop_off |
String | Airport drop-off information. See Hotel Facility Availabilities for the details |
hotel_facilities.wifi |
String | Wifi related information. This information tells us whether Wifi is complimentary or not. See Hotel Facility Availabilities for the details |
hotel_facilities.others |
Object | All the facilities provided by this hotel. See Hotel Facilities for details |
hotel_facilities.conditions |
String | Conditions of this hotel. See Hotel Conditions for details |
picture_urls |
Array | Array of Picture URLs of the Specific Hotel |
picture_urls.url |
String | Picture URL of the Specific Hotel |
picture_urls.thumbnail_url |
String | Thumbnail Picture URL of the Specific Hotel |
rooms |
Array | Room Information Array. For more details, see Information about Individual Rooms |
form_of_payment |
Object | Form of payments details |
form_of_payment.options |
Array | Supported Form of Payment List. Welltravel Supported Payment options are cash, none, credit_card, iata, counter |
form_of_payment.required_fields |
Object | Required fields for the credit card payment |
form_of_payment.required_fields.credit_card |
Object | credit_card related information |
form_of_payment.required_fields.credit_card.name |
Boolean | Card holder’s name is required or not |
form_of_payment.required_fields.credit_card.number |
Boolean | Card number is required or not |
form_of_payment.required_fields.credit_card.type |
Boolean | Card type is required or not |
form_of_payment.required_fields.credit_card.expiry_date |
Boolean | Card expiry date is required or not |
form_of_payment.required_fields.credit_card.code |
Boolean | Code is required or not |
form_of_payment.required_fields.credit_card.street |
Boolean | Street is required or not |
form_of_payment.required_fields.credit_card.city |
Boolean | City is required or not |
form_of_payment..required_fieldscredit_card.country |
Boolean | Country is required or not |
queue |
Object | Queue related information for booking |
queue.supported |
Boolean | Queue supported or not |
accounting_remarks |
Object | Detailed information of accounting remarks |
accounting_remarks.supported |
Boolean | Indicates if the accounting_remarks supported or not |
accounting_remarks.available_codes |
Array | Available codes for accounting remarks |
general_remarks |
Object | Detailed information of general remarks. For supplier specifi |
general_remarks.supported |
Boolean | Indicates if the general supported or not |
general_remarks.available_codes |
Array | Available codes for general remarks |
Information about individual rooms
Parameter | Type | Description |
---|---|---|
rooms.id |
Integer | ID for specific the room of the Hotel |
rooms.pricing |
Object | Detailed Information about the Hotel Room Pricing |
rooms.pricing.room_rate |
Object | Room Rate Pricing Information |
rooms.pricing.room_rate.total |
Object | Rate for Room for all nights |
rooms.pricing.room_rate.total.recommended_selling_price |
Object | Detailed information about the price of the room we recommend to use as selling price |
rooms.pricing.room_rate.total.recommended_selling_price.amount |
String | The price of the room/rooms we recommend to use as selling price |
rooms.pricing.room_rate.total.recommended_selling_price.currency |
String | The currency of the price of the room we recommend to use as selling price |
rooms.pricing.room_rate.total.purchase_price |
Object | Detailed information about the price you have to pay to book the room |
rooms.pricing.room_rate.total.purchase_price.amount |
String | The price of the room/rooms you will have to pay |
rooms.pricing.room_rate.total.purchase_price.currency |
String | The currency of the price of the room you will have to pay |
rooms.pricing.room_rate.total.source |
Object | Detailed information about the room/rooms pricing for the default currency of the IPCC |
rooms.pricing.room_rate.total.source.amount |
String | The price of the room we recommend to use as selling price in terms of default currency |
rooms.pricing.room_rate.total.source.currency |
String | Default currency of the IPCC |
rooms.pricing.room_rate.per_night |
Array | Rate for Room as per night basis |
rooms.pricing.room_rate.per_night.recommended_selling_price |
Object | Per Night Recommended Selling Price Related Information |
rooms.pricing.room_rate.per_night.recommended_selling_price.amount |
String | Rate for Room as per night basis we recommend to use as selling price |
rooms.pricing.room_rate.per_night.recommended_selling_price.currency |
String | Currency of Per Night Recommended Selling Price |
rooms.pricing.room_rate.per_night.purchase_price |
Object | Detailed information about the price of per room per night you have to pay to book it |
rooms.pricing.room_rate.per_night.purchase_price.amount |
String | The price of per room per night you will have to pay |
rooms.pricing.room_rate.per_night.purchase_price.currency |
String | Currency in which the pricing is being exposed |
rooms.pricing.room_rate.per_night.source |
Array | Detailed Information about the Per Night Per Room Pricing in IPCC’s Default Currency |
rooms.pricing.room_rate.per_night.source.amount |
String | The price of per room per night you will have to pay in terms of default currency |
rooms.pricing.room_rate.per_night.source.currency |
String | Default currency in which the pricing is being exposed |
rooms.pricing.room_rate.per_night.date |
String | The date in which the pricing is valid |
rooms.pricing.taxes |
Object | Tax Related Information |
rooms.pricing.taxes.amount |
String | The tax imposed on the Hotel Room Pricing |
rooms.pricing.taxes.currency |
String | The currency of the tax imposed on the Hotel Room Pricing |
rooms.pricing.taxes.source |
Object | Detailed Information about the tax imposed on the Hotel Room Pricing in IPCC’s currency |
rooms.pricing.taxes.source.amount |
String | The tax imposed on the Hotel Room Pricing in terms of default currency |
rooms.pricing.taxes.source.currency |
String | Default currency in which the pricing is being exposed |
rooms.pricing.total |
Object | Rate for Room for all nights including tax details |
rooms.pricing.total.recommended_selling_price |
Object | Details about the Rate for Room for all nights we recommend to use as selling price |
rooms.pricing.total.recommended_selling_price.amount |
String | Rate for Room for all nights we recommend to use as selling price |
rooms.pricing.total.recommended_selling_price.currency |
String | Currency of Total Recommended Selling Price |
rooms.pricing.total.purchase_price |
Object | Details Related to the total amount you will pay for booking |
rooms.pricing.total.purchase_price.amount |
String | The total price amount you have to pay |
rooms.pricing.total.purchase_price.currency |
String | Currency of Total Purchase Price |
rooms.pricing.total.source |
Object | Details related to the total price amount you have to pay in IPCC’s Default Currency |
rooms.pricing.total.source.amount |
String | The price of all rooms you will have to pay in terms of default currency |
rooms.pricing.total.source.currency |
String | Default currency in which the pricing is being exposed |
rooms.corporate_deal |
Boolean | Indicate the rate is under corporate deal or not |
rooms.rate_type |
String | Rate type of the room rate |
rooms.rate_code |
String | Rate code of the room rate |
rooms.rate_type_description |
String | Description about the rate type of the room rate |
rooms.commissions |
Object | Details about the commissions for this room |
rooms.commissions.status |
Boolean | Indicates whether there is a commission for this room |
rooms.commissions.amount |
String | Amount of the commissions for this room |
rooms.commissions.currency |
Object | Currency in which the amount of the commissions for this room is being exposed |
rooms.commissions.currency |
Object | What percentage of the booking is the commissions for this room |
rooms.cancellation_policies |
Object | Details about the cancellation policies for this room |
rooms.cancellation_policies.start_date |
Object | Date from which the booking can be cancelled |
rooms.cancellation_policies.end_date |
Object | The last date of cancellation |
rooms.cancellation_policies.fee |
Object | Penalty Fee for booking cancellation |
rooms.cancellation_policies.currency |
Object | The currency in which the penalty fee is being exposed |
rooms.room_types |
Array | Detailed room information based on the room availability of the hotel, adults and room numbers from the search request. For example if adult count is 3 and room number is 2, it may contain two objects, one is for Single Bedroom and another for Double-Bedroom |
rooms.room_types.no_of_rooms |
Integer | Number of the same type of rooms available |
rooms.room_types.type |
String | Type of the room. Possible values: Standard Twin , Double-Bedroom , Single Bedroom etc |
rooms.room_types.description |
String | Description of a particular room type hotel information |
rooms.room_types.meals_included |
String | Meals that is included in the room rate |
rooms.room_types.board_type |
String | Meals that is included in the room rate. |
Hotel Reserve Flow
If a hotel is available, you may book it by sending a POST
request to /api/hotels/reservations
and
referencing the id
.
Reserve Request
send a POST
request to /api/hotels/reservations
.
POST /api/hotels/reservations HTTP/1.1
Content-Type: application/json; charset=utf-8
Accept-Version: v1
Authorization: Bearer cf3fa478510bab8e9fd451c57be85a06b3da2bbbccc5c7b8f7dcc8a44fdeef5b
{
"result_id": "449483a8-d028-4dab-951d-6e81e2d8a85a",
"room_id": "1",
"guests": [
{
"first_name": "Martin",
"middle_name": "Devian",
"last_name": "Freeman",
"name_prefix": "mr",
"birthday": "1980-07-01",
"addresses": [
{
"type": "destination",
"contact_name": "Bruce",
"street": "Somewhere 1",
"city": "Sin city",
"zip": "1234",
"state": "CA",
"country": "CH"
}
],
"phone_number": "+41 43 550 77 00",
"email": "freeman@martin.com"
}
],
"agency_phone_number": "+880 1714739871",
"form_of_payment": "cash",
"card_details": {
"name": "Davy Jones",
"number": "5275009999993833",
"type": "master_card",
"expiry_date": "12/17",
"code": "111",
"bank_name": "Standard Chartered Bangladesh",
"bank_country_code": "BD",
"cardholder_address": {
"street": "Some Street",
"city": "Some City",
"zip": "1337",
"country": "SE"
}
}
}
Request Parameters
Parameter | RQ | Type | Description |
---|---|---|---|
result_id |
✔ | UUID | Unique ID for a specific hotel search result |
room_id |
✔ | Integer | Room ID from select resposne |
guests |
✔ | Array | An array of the guests, must have to match the initial number of the search |
guests.first_name |
✔ | String | The first name of this guest |
guests.middle_name |
✘ | String | The middle name of this guest |
guests.last_name |
✔ | String | The last name of this guest |
guests.name_prefix |
✔ | String | The name prefix of this guest. Possible values: mr , mrs , ms |
guests.email |
✔ | String | The mail of this guest |
guests.phone_number |
✔ | String | The phone number of this guest |
guests.birthday |
✔ | String | The birthday of this guest, in ISO-8601 format |
guests.addresses |
✔ | Array | The addresses of the guest. |
guests.addresses.type |
✔ | String | Use one of the following destination , residence or office |
guests.addresses.contact_name |
✘ | String | Traveller Address Name. Like: Johnson Residence . |
guests.addresses.street |
✔ | String | Street Address. Like: 4676 Palmer Road |
guests.addresses.city |
✔ | String | City of the Address. |
guests.addresses.zip |
✔ | String | Zip Code or Postal Code |
guests.addresses.country |
✔ | String | Has to be a ISO 3166-1 alpha-2 country code. |
guests.phone_number |
✘ | String | Phone number of the guest.Example: 111-11-111 |
guests.email |
✘ | String | Email of the Guest |
agency_phone_number |
✔ | String | Phone Number of the booking agency.Example: 111-11-111 |
remarks |
✘ | Array | Remarks related to this bookings. Generally travel agencies use this field to write notes about a booking. |
remarks.type |
✘ | String | Remarks type. It is different for each supplier. Please refer to your supplier. |
remarks.content |
✔ | String | Remark text content. |
accounting_remarks |
✘ | Array | Accounting Remarks related to this bookings. Might be used for accounting related notes. |
accounting_remarks.type |
✘ | String | Accounting Remarks type. It is different for each supplier. Please refer to your supplier. |
accounting_remarks.content |
✔ | String | Accounting Remark text content. |
queue |
✘ | Integer | Queue to place the created PNR (e.g. 80) |
destination_account |
✘ | String | Account to place the created PNR (e.g. A59P ) |
|
✘ | String | Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata, welltravel_wallet. Default is cash . Please note that some supplies might only support a certain payment method, supplying otherwise will give you a HTTP 422 unprocessable entity error. |
card_details |
✘/✔ | Object | Card details, required if form_of_payment is credit_card |
card_details.name |
✔ | String | Card Holder Name |
card_details.number |
✔ | String | Credit Card Number. Please enter the number as in the card. No space or special character is allowed. |
card_details.type |
✔ | String | Credit Card Type. Possible values: visa , master_card , amex . |
card_details.expiry_date |
✔ | String | Credit Card Expiry Date. Format is: MM/YY . example: 01/19 . |
card_details.code |
✔ | String | Credit Card Code/CVV/CVC |
card_details.bank_name |
✘/✔ | String | The name of the bank. |
card_details.bank_country_code |
✘/✔ | String | The country code of the country in which the bank is located. Usually it is a two or three letters code. |
card_details.cardholder_address |
✘ | Object | Card Holder Address Details |
card_details.cardholder_address.address_name |
✘ | String | Card Holder Address Name. Like: Family Doe |
card_details.cardholder_address.street |
✔ | String | Card Holder Street Name |
card_details.cardholder_address.city |
✔ | String | Card Holder City Code |
card_details.cardholder_address.state |
✘ | String | Card Holder State Name |
card_details.cardholder_address.zip |
✔ | String | Card Holder ZIP Code or Post Code |
card_details.cardholder_address.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code |
Reserve Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "a470369c-5b80-4e24-93ae-bbcf6af1c105",
"bookings": [
{
"id": "1552891",
"supplier": "totalstay",
"account": "welltravel",
"free_cancellation_period_ends": "2017-12-13T12:53:44.273Z"
}
]
}
Attributes
See Reservation.
Services
As services are booked asynchronous and may be confirmed by the airline, make sure to check the state of the booking by using Fetch Booking.
Search & Book: Car Rental
After authentication, you are able to book a Car Rental in two steps:
- Search: Search & fetch the car rental results
- Select: Confirm availability and fetch available services
- Reserve : Create a reservation
Every step is required. You can’t leave one out.
Car Rental Search Flow
To create a car search, send a POST
request to /api/car_rentals/searches
.
It will return the ID of the created search.
This ID can be used to fetch the results by sending a GET
request to /api/car_rentals/searches/:id/results
Create Car Rental Search
All Possible Request Parameters
POST /api/car_rentals/searches HTTP/1.1
Content-Type: application/json
Authorization: Bearer c58258c2b75a47d1c62832f32796a0729a7d376c6d4c55f0ec85e69597a0b89c
Accept-Version: v1
{
"airport_search": true,
"pick_up_location_id": "CPT",
"drop_off_location_id": "CPT",
"pick_up_geo_location": {},
"drop_off_geo_location": {},
"pick_up_time": "2018-01-27T23:59",
"drop_off_time": "2018-01-29T08:50",
"car_class": "middle",
"driver_age": 32,
"vendor_preferences": {
"type": 'exclusive',
"vendor_code": ["EP"],
},
"currency": "CHF",
"accounts": {
"galileo": [
{ "identifier": "6KN8" }
]
}
}
Parameter | RQ | Type | Description |
---|---|---|---|
pick_up_location_id |
✘ | String | The pick up location code. It is a 3 letter code. IATA airport code. This will be only sent if airport_search is true |
drop_off_location_id |
✘ | String | The Drop off location code. It is a 3 letter code. IATA airport code. This will be only sent if airport_search is true |
pick_up_geo_location |
✘ | Object | Geolocation information of pick up point.This will be only sent if airport_search is false |
pick_up_geo_location.latitude |
✔ | String | Latitude value in Decimal Degree(DD) format of the pick up point |
pick_up_geo_location.longitude |
✔ | String | Longitude value in Decimal Degree(DD) format of the pick up point |
pick_up_geo_location.radius_in_km |
✘ | Integer | Distance in kilometer from the pickup point. Default value is 200 |
drop_off_geo_location |
✘ | Object | Geolocation information of drop off point |
drop_off_geo_location.latitude |
✔ | String | Latitude value in Decimal Degree(DD) format of the drop off point |
drop_off_geo_location.longitude |
✔ | String | Longitude value in Decimal Degree(DD) format of the drop off point |
drop_off_geo_location.radius_in_km |
✘ | Integer | Distance in kilometer from the drop off point. Default value is 200 |
pick_up_time |
✔ | String | Pickup Date & Time, in ISO-8601 format |
drop_off_time |
✔ | String | Drop Date & Time, in ISO-8601 format |
vendor_preferences |
✘ | Hash | A hash containing vendor specific search informations. For all car rental vendor list, please see Vendor list |
vendor_preferences.type |
✔ | String | It indicates the type of vendor specific search. Possible values are exclusive and preferred . exclusive will return only the search results from the mentioned vendors. preferred will return search results from the other vendors along with the specified vendor. For Galileo, at maximum, four vendors can be specified. Galileo doesn not support preferred vendor specific search. |
vendor_preferences.vendor_code |
✔ | Array | An array containing the vendors codes from which we wanted to get search results. Vendor Code must be a two-lettered upper case String. Every rental company has a unique code and this code is called vendor code |
airport_search |
✔ | Boolean | This will differentiate between geo_location search and IATA Airport Code Search. If this value is true, user have to provide pick_up_location_id and drop_off_location_id in the request. If this value is false, user have to provide pick_up_geo_location and drop_off_geo_location information in the request. Providing incorrect value will give a validation error. |
full_waiver_insurance |
✘ | Boolean | Full Waiver Insurance car. |
car_class |
✘ | String | Class of the Car. Use one of these values middle, high . |
car_type |
✘ | String | Type of the Car. Use one of these values small, sport, family_van . |
driver_age |
✔ | Integer | Age of the Driver |
currency |
✔ | String | The currency in which the prices should be exposed, in ISO-4217 format |
|
✔ | Object | The accounts to use when searching |
accounts.identifier |
✔ | String | Account Identifier for suppliers. Generally IPCC for GDSs. |
accounts.codes |
✘ | Array | Discount or Corporate Codes for the specific supplier. For details, see Supplier Specific Maximum Corporate Code Support |
A Sample Request With Geolocation
POST /api/car_rentals/searches HTTP/1.1
Content-Type: application/json
Authorization: Bearer c58258c2b75a47d1c62832f32796a0729a7d376c6d4c55f0ec85e69597a0b89c
Accept-Version: v1
{
"pick_up_time": "2019-12-23T13:00",
"drop_off_time": "2019-12-30T11:00",
"driver_age": 32,
"currency": "ZAR",
"accounts": {
"galileo": [
{
"identifier": "6KN8",
"codes": [
"AB-Z44***"
]
}
]
},
"airport_search": false,
"pick_up_geo_location": {
"latitude": "51.51422",
"longitude": "-0.17821804"
},
"drop_off_geo_location": {
"latitude": "51.51422",
"longitude": "-0.17821804"
}
}
Fetch Search Results
GET /api/car_rentals/searches/15/results?per_page=250 HTTP/1.1
Authorization: Bearer 3bfb293e5e50a91fdf170f4b1c3a595def5fde6fb5ab917712fbf90494fc4a06
Accept-Version: v1
GET /car_rentals/searches/:id/results(.json)
Request Parameters
Parameter | RQ | Type | Description |
---|---|---|---|
order_by |
✘ | String | Sort/Order car search results using keys. Please use one of these keys "seats", "doors", "fuel_policy", "total_gross_price" |
order_direction |
✘ | String | Order direction of car search results. Please use one of these "asc", "desc" |
include_duplicates |
✘ | Boolean | Whether to include or exclude duplication result. Default is false |
Response Parameters
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 8
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
{
"id": "ba0004c9-1c32-4145-b242-3170c09fa118",
"source": {
"supplier": "galileo",
"account": "6KN8",
"currency": "USD"
},
"vendor": {
"vendor_name": "AVIS RENT A CAR SYSTEM, INC.",
"vendor_code": "ZI",
"image_url": {
"url": "https://meta-staging.welltravel.com/media/W1siZiIsIjIwMTkvMDEvMzAvMDMvMzMvMmQwYWUxY2EtZjhmMS00OWE2LWE2OTQtZTQzYzI0YTc3YWY3Il1d?sha=a4db7e682d38ed8e",
"thumbnail_url": "https://meta-staging.welltravel.com/media/W1siZiIsIjIwMTkvMDEvMzAvMDMvMzMvZGJlMDMzOTUtMmUzYi00ZTM2LTk2YjctNzAyY2MyNzM5NGY4Il1d?sha=2fb0b1d34350e78c"
}
}
"car": {
"acriss_code": "CDMR",
"category": "compact",
"type": "4-5_doors",
"driven_wheel": "unspecified",
"make": "fiat",
"name": "500",
"condition": "exact",
"description": null,
"rating": null,
"image_url": {
"url": "https://multimedia.amadeus.com/mdc/retrieveCarItem?ctg=VEHICLE\u0026prov=SX\u0026cnt=GB\u0026vehcat=CDMR\u0026item=0\u0026stamp=VEHICLE_0_0_1496238302633\u0026file=9.JPEG",
"thumbnail_url": "https://multimedia.amadeus.com/mdc/retrieveCarItem?ctg=VEHICLE\u0026prov=SX\u0026cnt=GB\u0026vehcat=CDMR\u0026item=0\u0026stamp=VEHICLE_0_0_1496238302633\u0026file=0.JPEG"
}
},
"facilities": {
"is_automatic": true,
"air_conditioned": true,
"air_bag": null,
"fuel_type": "unspecified",
"fuel_policy": null,
"doors": "5",
"seats": "5",
"insurance": ["general_coverage"],
"liability": [
{
"type": "glass_tyre_waiver",
"amount": "9.93",
"currency": "CHF",
"modifier": null
},
{
"type": "roadside_service_plan",
"amount": "5.51",
"currency": "CHF",
"modifier": null
}
],
"mileage": [
{
"type": "free_miles",
"amount": null,
"currency": null,
"modifier": "200"
},
{
"type": "per_mile",
"amount": "0.27",
"currency": null,
"modifier": null
}
],
"other_facilities": [
{
"type": "child_seat_for_infant",
"amount": "11.04",
"currency": "CHF",
"modifier": "per_rental"
},
{
"type": "child_seat_for_baby",
"amount": "11.04",
"currency": "CHF",
"modifier": "per_rental"
}
]
},
"conditions": [
{
"type": "general_surcharge",
"amount": null,
"currency": null,
"modifier": null
}
],
"pricing": {
"car_rate": {
"recommended_selling_price": {
"amount": "74.55",
"currency": "CHF"
},
"purchase_price": {
"amount": null,
"currency": "CHF"
},
"source": {
"amount": "57.49",
"currency": "GBP"
}
},
"taxes": {
"amount": "14.91",
"currency": "CHF",
"source": {
"amount": "11.5",
"currency": "GBP"
}
},
"total_price": {
"recommended_selling_price": {
"amount": "89.46",
"currency": "CHF"
},
"purchase_price": {
"amount": null,
"currency": "CHF"
},
"source": {
"amount": "68.99",
"currency": "GBP"
}
}
},
"corporate_deal": true,
"pick_up": {
"location": "14-146 HAMERSMITH ROAD, LONDON,",
"latitude": "51.49340",
"longitude": "-.21849",
"is_airport": false,
"localtime": "2019-05-26T10:00:00"
},
"drop_off": {
"location": "14-146 HAMERSMITH ROAD, LONDON,",
"latitude": "51.49340",
"longitude": "-.21849",
"is_airport": false,
"localtime": "2019-05-27T10:00:00"
},
"form_of_payment": {
"options": [
"credit_card"
],
"required_fields": {
"credit_card": {
"name": true,
"number": true,
"type": true,
"expiry_date": true,
"code": true,
"street": true,
"city": true,
"zip": true,
"country": true
}
}
},
}
Parameter | Type | Description |
---|---|---|
id |
UUID | ID for specific the car_rental |
source |
Object | Detailed Information about the supplier |
source.supplier |
String | Supplier Name |
source.account |
String | Account used for search |
source.currency |
String | Currency used for search |
vendor |
object | Car rental company related information |
vendor.vendor_name |
String | Name of the car rental company. See CarRental Vendor list for all vendor name |
vendor.vendor_code |
String | Unique car rental company code. See CarRental Vendor List for all vendor code |
vendor.image_url |
Object | Logo of the car rental company |
vendor.image_url.url |
String | URL of the large logo |
vendor.image_url.thumbnail_url |
String | URL of the thumbnail logo |
car |
Object | Detailed Car information |
car.acriss_code |
String | ACRISS Code of the car |
car.category |
String | Category of the car. See Car Category for the list of all possible value |
car.type |
String | Type of the Car.See Car Type for the list |
car.driven_wheel |
String | Car driven wheel type. See Driven Wheel for the list |
car.make |
String | Car Brand name |
car.name |
String | Car model name |
car.condition |
String | Car condition. Check car condition type for the possible values car condition type |
car.description |
String | Car description |
car.image_url |
Object | Car Image URL |
car.image_url.url |
String | URL of the large car picture |
car.image_url.thumbnail_url |
String | URL of the thumbnail car picture |
facilities.is_automatic |
Boolean | Returns true or false if automatic or not |
facilities.air_conditioned |
Boolean | Returns true or false if air conditioned or not |
facilities.air_bag |
Boolean | Returns true or false if has airbag or not |
facilities.fuel_type |
String | Type of fuel used by car. See Car Fuel for all the fuel type |
facilities.fuel_policy |
String | This indicates whether you have to return the car with full or empty fuel tank. Type of fuel policy for the car. See Car Fuel Policy for all the fuel policies |
facilities.doors |
String | Number of doors in the car. For eg. 4/5 . It means there can be four minimum doors and five maximum doors |
facilities.seats |
String | Total seat in the car |
facilities.insurance |
Array | Information of car insurance. See Car Liability and insurance to see all the possible insurances |
facilities.liability |
Array | Information of car liability. |
facilities.liability.type |
String | Type of the car liability. Car Liability and insurance contains all the possible liabilities |
facilities.liability.modifier |
String | Any number or value from Car Facility Modifiers that modifies liability.type |
facilities.liability.amount |
String | Pricing amount of the liability |
facilities.liability.currency |
String | The currency for the amount |
facilities.mileage |
Array | Information of car mileage |
facilities.mileage.type |
String | Car mileage type. See Car Mileage for details |
facilities.mileage.modifier |
String | Any number or value from Car Facility Modifiers list that modifies mileage.type |
facilities.mileage.amount |
String | The amount need to pay per kilometer or per mile if mileage type is not unlimited or free |
facilities.mileage.currency |
String | The currency for the amount |
facilities.other_facilities |
Array | Information of others facilities that come with the car booking |
facilities.other_facilities.type |
String | Type of the other facilities. See Car Other Facilities for the list |
facilities.other_facilities.modifier |
String | Any number or value from Car Facility Modifiers that modifies other_facilities.type |
facilities.other_facilities.amount |
String | Pricing amount need to pay for this facility |
facilities.other_facilities.currency |
String | The currency for the amount |
facilities.conditions |
Array | Information of the special conditions if applicable for this car service. See Car Conditions for the list |
facilities.conditions.type |
String | Type of the condition. See Car Conditions for the list |
facilities.conditions.modifier |
String | Any number or value from Car Facility Modifiers that modifies conditions.type |
facilities.conditions.amount |
String | Pricing amount for the condition |
facilities.conditions.currency |
String | The currency for the amount |
pricing |
Object | Detailed Pricing Information |
pricing.car_rate |
Object | Car Rate Information |
pricing.taxes |
Object | Tax Pricing Information |
pricing.total_price |
Object | Total Pricing Information |
corporate_deal |
Boolean | Indicate the rate is under corporate deal or not |
pick_up |
Object | Pick Up related information |
pick_up.location |
String | Pick Up Location |
pick_up.latitude |
String | Latitude of the pickup location in Decimal Degree(DD) format |
pick_up.longitude |
String | Longitude of the pickup location in Decimal Degree(DD) format |
pick_up.is_airport |
Boolean | Returns true or false if the pick-up location is airport or not |
pick_up.localtime |
String | Pick Up Time and Date |
drop_off |
Object | Drop off related information |
drop_off.location |
String | Drop off Location |
drop_off.latitude |
String | Latitude of the drop off location in Decimal Degree(DD) format |
drop_off.longitude |
String | Longitude of the drop off location in Decimal Degree(DD) format |
drop_off.is_airport |
Boolean | Returns true or false if the drop_off location is airport or not |
drop_off.localtime |
String | Drop off Time and Date |
form_of_payment |
Object | Form of payments details |
form_of_payment.options |
Array | Supported Form of Payment List. Welltravel Supported Payment options are cash, none, credit_card, iata, counter |
form_of_payment.required_fields |
Object | Required fields for the credit card payment |
form_of_payment.required_fields.credit_card |
Object | credit_card related information |
form_of_payment.required_fields.credit_card.name |
Boolean | Card holder’s name is required or not |
form_of_payment.required_fields.credit_card.number |
Boolean | Card number is required or not |
form_of_payment.required_fields.credit_card.type |
Boolean | Card type is required or not |
form_of_payment.required_fields.credit_card.expiry_date |
Boolean | Card expiry date is required or not |
form_of_payment.required_fields.credit_card.code |
Boolean | Code is required or not |
form_of_payment.required_fields.credit_card.street |
Boolean | Street is required or not |
form_of_payment.required_fields.credit_card.city |
Boolean | City is required or not |
form_of_payment.required_fieldscredit_card.country |
Boolean | Country is required or not |
Car Rental Select Flow
After a choosing a car rental result, use its id
to confirm if it’s still available. This action is OPTIONAL. You can ignore this API call from your Booking Flow if you want.
Select Request
GET /api/car_rentals/results/3537a351-076a-45b1-97d8-a7e354d58f8c HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
You may do this by sending a GET
request to /api/car_rentals/results/:id
.
Select Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 8
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
{
"id": "51993db5-bf13-47d5-800a-4fd951c6e010",
"available": true,
"price_changed": false,
"vendor": {
"name": "BIDVEST CAR RENTAL",
"code": "BV",
"image_url": {
"url": "https://cdn2.rcstatic.com/images/suppliers/flat/bidvest_logo_400.jpg",
"thumbnail_url": "https://cdn2.rcstatic.com/images/suppliers/flat/bidvest_logo_400.jpg"
}
},
"car": {
"acriss_code": "MDMR",
"category": "mini",
"type": "4-5_doors",
"driven_wheel": "unspecified",
"make": "fiat",
"name": "500",
"condition": "exact",
"description": " User can cancel reservation without any fee if the pickup time is more than 3 days after the booking time.",
"rating": 3,
"image_url": {
"url": "https://multimedia.amadeus.com/mdc/retrieveCarItem?ctg=VEHICLE\u0026prov=SX\u0026cnt=GB\u0026vehcat=CDMR\u0026item=0\u0026stamp=VEHICLE_0_0_1496238302633\u0026file=9.JPEG",
"thumbnail_url": "https://multimedia.amadeus.com/mdc/retrieveCarItem?ctg=VEHICLE\u0026prov=SX\u0026cnt=GB\u0026vehcat=CDMR\u0026item=0\u0026stamp=VEHICLE_0_0_1496238302633\u0026file=0.JPEG"
}
},
"pick_up": {
"location": "CAPE TOWN INT APT, CAPE TOWN, ZA",
"latitude": "-33.96667",
"longitude": "18.60000",
"is_airport": true,
"localtime": "2022-06-20T11:08:00"
},
"drop_off": {
"location": "CAPE TOWN INT APT, CAPE TOWN, ZA",
"latitude": "-33.96667",
"longitude": "18.60000",
"is_airport": true,
"localtime": "2022-06-21T12:08:00"
},
"rate_type": "Standard",
"rate_code": "7LO6MEBXRWQGGNLTGQJU",
"rate_type_description": null,
"corporate_deal": false,
"pricing": {
"car_rate": {
"recommended_selling_price": {
"amount": "20.89",
"currency": "EUR"
},
"purchase_price": {
"amount": null,
"currency": "EUR"
},
"source": {
"amount": "337.0",
"currency": "ZAR"
}
},
"taxes": {
"amount": "0.0",
"currency": "EUR",
"source": {
"amount": "0.0",
"currency": "ZAR"
}
},
"total_price": {
"recommended_selling_price": {
"amount": "20.89",
"currency": "EUR"
},
"purchase_price": {
"amount": null,
"currency": "EUR"
},
"source": {
"amount": "337.0",
"currency": "ZAR"
}
}
},
"mileage": [
{
"type": "free_kilometers",
"amount": null,
"currency": null,
"modifier": "per_rental",
"package_size": "200"
},
{
"type": "per_kilometer",
"amount": "0.18",
"currency": "EUR",
"modifier": "per_rental",
"package_size": null
}
],
"insurance": [
{
"id": "89fc4e06-77ff-49ad-a5c1-9457f69c8492-general-coverage",
"type": "general_coverage"
"amount": "20.00",
"currency": "CHF",
"modifier": "per_rental"
}
],
"liability": [
{
"type": "theft_damage_liability",
"amount": "9.93",
"currency": "CHF",
"modifier": "per_rental"
},
],
"services": [
{
"id": "89fc4e06-77ff-49ad-a5c1-9457f69c8492-additional-driver",
"type": "additional_driver",
"amount": "410.0",
"currency": "ZAR",
"modifier": "per_rental",
"bookable": true
},
],
"facilities": {
"is_automatic": false,
"air_conditioned": true,
"air_bag": false,
"fuel_type": "unspecified",
"fuel_policy": "full_full",
"doors": "4-5",
"seats": "4"
},
"conditions": [
{
"type": "one_way_charge",
"amount": "27.41",
"currency": "EUR",
"modifier": null
}
],
"form_of_payment": {
"options": [
"cash",
"none",
"credit_card"
],
"required_fields": {
"credit_card": {
"name": true,
"number": true,
"type": true,
"expiry_date": true,
"code": true,
"street": false,
"city": false,
"zip": false,
"country": false
}
}
},
"payment_charge": [
{
"amount": "0.0",
"currency": "GBP",
"card_name": "VISA",
"card_type": "visa",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "VISA CORPORATE",
"card_type": "visa_corporate",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "MASTER CARD",
"card_type": "master_card",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "MASTER CARD CORPORATE",
"card_type": "master_card_corporate",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "AMEX",
"card_type": "amex",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "AMEX CORPORATE",
"card_type": "amex_corporate",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "DINERS CLUB",
"card_type": "diners_club",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "DINERS CLUB CORPORATE",
"card_type": "diners_club_corporate",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "UATP",
"card_type": "uatp",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "DISCOVER",
"card_type": "discover",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "DISCOVER CORPORATE",
"card_type": "discover_corporate",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "JCB",
"card_type": "jcb",
"payment_type": "credit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "VISA",
"card_type": "visa",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "VISA CORPORATE",
"card_type": "visa_corporate",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "MASTER CARD",
"card_type": "master_card",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "MASTER CARD CORPORATE",
"card_type": "master_card_corporate",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "AMEX",
"card_type": "amex",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "AMEX CORPORATE",
"card_type": "amex_corporate",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "DINERS CLUB",
"card_type": "diners_club",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "DINERS CLUB CORPORATE",
"card_type": "diners_club_corporate",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "UATP",
"card_type": "uatp",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "DISCOVER",
"card_type": "discover",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "DISCOVER CORPORATE",
"card_type": "discover_corporate",
"payment_type": "debit"
},
{
"amount": "0.0",
"currency": "GBP",
"card_name": "JCB",
"card_type": "jcb",
"payment_type": "debit"
}
]
}
Parameter | Type | Description |
---|---|---|
id |
UUID | ID for specific the car_rental |
available |
Boolean | Availability of the Car |
price_changed |
String | Return if the price changed after the select call |
vendor |
object | Car rental company related information |
vendor.name |
String | Name of the car rental company. See CarRental Vendor list for all vendor name |
vendor.code |
String | Unique car rental company code. See CarRental Vendor List for all vendor code |
vendor.image_url |
Object | Logo of the car rental company |
vendor.image_url.url |
String | URL of the large logo |
vendor.image_url.thumbnail_url |
String | URL of the thumbnail logo |
car |
Object | Detailed Car information |
car.acriss_code |
String | ACRISS Code of the car |
car.category |
String | Category of the car. See Car Category for the list of all possible value |
car.type |
String | Type of the Car.See Car Type for the list |
car.driven_wheel |
String | Car driven wheel type. See Driven Wheel for the list |
car.make |
String | Car Brand name |
car.name |
String | Car model name |
car.condition |
String | Car condition. Check car condition type for the possible values car condition type |
car.description |
String | Car description |
car.image_url |
Object | Car Image URL |
car.image_url.url |
String | URL of the large car picture |
car.image_url.thumbnail_url |
String | URL of the thumbnail car picture |
facilities.is_automatic |
Boolean | Returns true or false if automatic or not |
facilities.air_conditioned |
Boolean | Returns true or false if air conditioned or not |
facilities.air_bag |
Boolean | Returns true or false if has airbag or not |
facilities.fuel_type |
String | Type of fuel used by car. See Car Fuel for all the fuel type |
facilities.fuel_policy |
String | This indicates whether you have to return the car with full or empty fuel tank. Type of fuel policy for the car. See Car Fuel Policy for all the fuel policies |
facilities.doors |
String | Number of doors in the car. For eg. 4/5 . It means there can be four minimum doors and five maximum doors |
facilities.seats |
String | Total seat in the car |
insurance |
Array | Information of car insurance. See Car Liability and insurance to see all the possible insurances |
liability |
Array | Information of car liability. |
liability.type |
String | Type of the car liability. Car Liability and insurance contains all the possible liabilities |
liability.modifier |
String | Any number or value from Car Facility Modifiers that modifies liability.type |
liability.amount |
String | Pricing amount of the liability |
liability.currency |
String | The currency for the amount |
mileage |
Array | Information of car mileage |
fmileage.type |
String | Car mileage type. See Car Mileage for details |
mileage.modifier |
String | Any number or value from Car Facility Modifiers list that modifies mileage.type |
mileage.amount |
String | The amount need to pay per kilometer or per mile if mileage type is not unlimited or free |
mileage.currency |
String | The currency for the amount |
facilities.other_facilities |
Array | Information of others facilities that come with the car booking |
facilities.other_facilities.type |
String | Type of the other facilities. See Car Other Facilities for the list |
facilities.other_facilities.modifier |
String | Any number or value from Car Facility Modifiers that modifies other_facilities.type |
facilities.other_facilities.amount |
String | Pricing amount need to pay for this facility |
facilities.other_facilities.currency |
String | The currency for the amount |
facilities.conditions |
Array | Information of the special conditions if applicable for this car service. See Car Conditions for the list |
facilities.conditions.type |
String | Type of the condition. See Car Conditions for the list |
facilities.conditions.modifier |
String | Any number or value from Car Facility Modifiers that modifies conditions.type |
facilities.conditions.amount |
String | Pricing amount for the condition |
facilities.conditions.currency |
String | The currency for the amount |
conditions |
Array | Information of the special conditions if applicable for this car service. See Car Conditions for the list |
insurance |
Array | Information of car insurance. See Car Liability and insurance to see all the possible insurances |
services |
Array | Information of car services which are available for booking in reserve step |
pricing |
Object | Detailed Pricing Information |
pricing.car_rate |
Object | Car Rate Information |
pricing.car_rate.recommended_selling_price |
Object | Recommended Selling Price Related Information |
pricing.car_rate.recommended_selling_price.amount |
String | Rate we recommend to use as selling price |
pricing.car_rate.recommended_selling_price.currency |
String | Currency of Recommended Selling Price |
pricing.car_rate.purchase_price |
Object | Detailed information about the price you have to pay to book it |
pricing.car_rate.purchase_price.amount |
String | The price you will have to pay |
pricing.car_rate.purchase_price.currency |
String | Currency in which the pricing is being exposed |
pricing.car_rate.source |
Object | Detailed Information about Pricing in IPCC’s currency |
pricing.car_rate.source.amount |
String | The tax imposed on the Pricing in terms of default currency |
pricing.car_rate.source.currency |
String | Default currency in which the pricing is being exposed |
pricing.taxes |
Object | Tax Related Information |
pricing.taxes.amount |
String | The tax imposed on the Pricing |
pricing.taxes.currency |
String | The currency of the tax imposed on the Pricing |
pricing.taxes.source |
Object | Detailed Information about the tax imposed on the Pricing in IPCC’s currency |
pricing.taxes.source.amount |
String | The tax imposed on the Pricing in terms of default currency |
pricing.taxes.source.currency |
String | Default currency in which the pricing is being exposed |
pricing.total_price |
Object | Total Pricing Information |
pricing.total_price.recommended_selling_price |
Object | Recommended Selling Price Related Information |
pricing.total_price.recommended_selling_price.amount |
String | Rate we recommend to use as selling price |
pricing.total_price.recommended_selling_price.currency |
String | Currency of Recommended Selling Price |
pricing.total_price.purchase_price |
Object | Detailed information about the price you have to pay to book it |
pricing.total_price.purchase_price.amount |
String | The price you will have to pay |
pricing.total_price.purchase_price.currency |
String | Currency in which the pricing is being exposed |
pricing.total_price.source |
Object | Detailed Information about Pricing in IPCC’s currency |
pricing.total_price.source.amount |
String | The tax imposed on the Pricing in terms of default currency |
pricing.total_price.source.currency |
String | Default currency in which the pricing is being exposed |
corporate_deal |
Boolean | Indicate the rate is under corporate deal or not |
pick_up |
Object | Pick Up related information |
pick_up.location |
String | Pick Up Location |
pick_up.latitude |
String | Latitude of the pickup location in Decimal Degree(DD) format |
pick_up.longitude |
String | Longitude of the pickup location in Decimal Degree(DD) format |
pick_up.is_airport |
Boolean | Returns true or false if the pick-up location is airport or not |
pick_up.localtime |
String | Pick Up Time and Date |
drop_off |
Object | Drop off related information |
drop_off.location |
String | Drop off Location |
drop_off.latitude |
String | Latitude of the drop off location in Decimal Degree(DD) format |
drop_off.longitude |
String | Longitude of the drop off location in Decimal Degree(DD) format |
drop_off.is_airport |
Boolean | Returns true or false if the drop_off location is airport or not |
drop_off.localtime |
String | Drop off Time and Date |
rate_type |
String | Rate type of the car rental |
rate_code |
String | Rate code of the car rental |
rate_type_description |
String | Description about the rate type of the car rental |
form_of_payment |
Object | Form of payments details |
form_of_payment.options |
Array | Supported Form of Payment List. Welltravel Supported Payment options are cash, none, credit_card, iata, counter |
form_of_payment.required_fields |
Object | Required fields for the credit card payment |
form_of_payment.required_fields.credit_card |
Object | credit_card related information |
form_of_payment.required_fields.credit_card.name |
Boolean | Card holder’s name is required or not |
form_of_payment.required_fields.credit_card.number |
Boolean | Card number is required or not |
form_of_payment.required_fields.credit_card.type |
Boolean | Card type is required or not |
form_of_payment.required_fields.credit_card.expiry_date |
Boolean | Card expiry date is required or not |
form_of_payment.required_fields.credit_card.code |
Boolean | Code is required or not |
form_of_payment.required_fields.credit_card.street |
Boolean | Street is required or not |
form_of_payment.required_fields.credit_card.city |
Boolean | City is required or not |
form_of_payment.required_fieldscredit_card.country |
Boolean | Country is required or not |
payment_charge |
Object | Extra fees for credit card form of payment i.e OB fees details related information for booking |
payment_charge.amount |
String | Amount to be paid if the form of payment is credit card |
payment_charge.currency |
String | Currency code of the OB Fee |
payment_charge.card_name |
String | Name of the credit card |
payment_charge.card_type |
String | Credit card type |
payment_charge.payment_type |
String | Type of payment. Indicats whether it is credit card or debit card. Possible values: debit , credit |
Car Rental Reserve Flow
If a car is available, you may book it by sending a POST
request to /api/car_rentals/reservations
by referencing the id
.
Reserve Request
Send a POST
request to /api/car_rentals/reservations
.
POST /api/car_rentals/reservations HTTP/1.1
Content-Type: application/json
Authorization: Bearer fb95dcf702a314a608818f098366979ef74e0d55963b807e4fd759a1839e042d
Accept-Version: v1
{
"travelers": [
{
"first_name": "Simon",
"last_name": "Busby",
"name_prefix": "mr",
"email": "martha.merana@beans.com",
"birthday": "1967-11-23",
"addresses": [
{
"type": "destination",
"name": "Fisher",
"street": "Somwhere 1",
"city": "Somecity",
"zip": "1234",
"country": "CH"
}
]
}
],
"agency_phone_number": "+41 43 550 77 00",
"result_id": "d51d7770-3046-414a-81e8-2a148414a6db",
"form_of_payment": "cash",
"card_details": {
"name": "Davy Jones",
"number": "5275009999993833",
"type": "master_card",
"expiry_date": "12/17",
"code": "111",
"cardholder_address": {
"street": "Some Street",
"city": "Some City",
"zip": "1337",
"country": "SE"
}
}
}
Request Parameters
Parameter | RQ | Type | Description |
---|---|---|---|
result_id |
✔ | UUID | Unique ID for a specific Car Rental search result |
travelers |
✔ | Array | An array of the travelers, must have to match the initial number of the search |
travelers.first_name |
✔ | String | First Name of the driver. Example: Johnny . |
travelers.middle_name |
✘ | String | Middle Name of the driver. Example: Depp . |
travelers.last_name |
✔ | String | Last Name of the driver. Example: Kobir . |
travelers.name_prefix |
✔ | String | Name prefix of the driver. Example mr . Possible values: mr , mrs , ms |
travelers.email |
✘ | String | Email of the driver |
travelers.birthday |
✔ | String | Date of birth of the driver. Format is ISO-8601 which is YY-mm-dd. Example: 1975-11-23 . This date of birth must match with the driver_age (+/- 1 year) given in the search step. |
travelers.phone_number |
✘ | String | Phone number of the guest. Example: 111-11-111 |
travelers.addresses |
✔ | Array | The addresses of the traveler. |
travelers.addresses.type |
✔ | String | Address type. Possible values: destination , residence , office |
travelers.addresses.name |
✘ | String | Address Name. Example: Johnson Residence . |
travelers.addresses.street |
✔ | String | Street Address. Example: 4676 Palmer Road |
travelers.addresses.city |
✔ | String | City of the Address. |
travelers.addresses.state |
✘ | String | State Province Code of the driver |
travelers.addresses.zip |
✔ | String | Zip Code or Postal Code |
travelers.addresses.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code. Example: GB . |
agency_phone_number |
✔ | String | Phone Number of the booking agency.Example: 111-11-111 |
remarks |
✘ | Array | Remarks related to this bookings. Generally travel agencies use this field to write notes about a booking. |
remarks.type |
✘ | String | Remarks type. It is different for each supplier. Please refer to your supplier. Possible values: alpha, basic, historical, invoice, itinerary,vendor, confidential, hidden, ticket, air, car, hotel and free_flow. Default is general. |
remarks.content |
✔ | String | Content of this Remark. |
additional_info |
✘ | Object | Additional Information about this reservation |
additional_info.comments |
✔ | String | Comments about this booking |
additional_info.pick_up_service |
✔ | String | Any pick_up services if needed |
additional_info.drop_off_service |
✔ | String | Any pick_off services if needed |
queue |
✘ | Integer | Queue to place the created PNR (e.g. 80) |
destination_account |
✘ | String | Account to place the created PNR (e.g. A59P ) |
|
✘ | String | Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata, welltravel_wallet. Default is cash . Please note that some supplies might only support a certain payment method, supplying otherwise will give you a HTTP 422 unprocessable entity error. |
card_details |
✘/✔ | Object | Card details, required if form_of_payment is credit_card |
card_details.name |
✔ | String | Card Holder Name |
card_details.number |
✔ | String | Credit Card Number. Please enter the number as in the card. No space or special character is allowed. |
card_details.type |
✔ | String | Credit Card Type. Possible values: visa , master_card , amex . |
card_details.expiry_date |
✔ | String | Credit Card Expiry Date. Format is: MM/YY . example: 01/19 . |
card_details.code |
✔ | String | Credit Card Code/CVV/CVC |
card_details.bank_name |
✘/✔ | String | The name of the bank. |
card_details.bank_country_code |
✘/✔ | String | The country code of the country in which the bank is located. Usually it is a two or three letters code. |
card_details.cardholder_address |
✘ | Object | Card Holder Address Details |
card_details.cardholder_address.address_name |
✘ | String | Card Holder Address Name. Like: Family Doe |
card_details.cardholder_address.street |
✔ | String | Card Holder Street Name |
card_details.cardholder_address.city |
✔ | String | Card Holder City Code |
card_details.cardholder_address.state |
✘ | String | Card Holder State Name |
card_details.cardholder_address.zip |
✔ | String | Card Holder ZIP Code or Post Code |
card_details.cardholder_address.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code |
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "6640d2e4-4523-4629-ac9d-43aa7c8a55d3",
"bookings": [
{
"id": "7R3ZBS",
"supplier": "galileo",
"account": "6KN8",
"free_cancellation_period_ends": "2017-12-17T12:21:03.000Z"
}
]
}
Attribute | Type | Description |
---|---|---|
id |
UUID | The unique id of this Reservation |
bookings |
Array | Holds all the bookings related to this reservation |
bookings.id |
String | The ID of the booking. This ID is only unique in the scope of the same supplier. |
bookings.supplier |
String | Supplier where the booking has been created |
bookings.account |
String | The account which has been used to create the booking |
bookings.free_cancellation_period_ends |
String | End of the free cancellation period, in ISO-8601 format |
Attributes
See Reservation.
Services
As services are booked asynchronous and may be confirmed by the airline, make sure to check the state of the booking by using Fetch Booking.
Reservation Management API
Using our ReservationManagement, you are able to modify and cancel an existing reservation. The reservation can either be made via our Search & Book API or a native client.
Reservation
The Reservation entity contains one or more bookings on one or more suppliers.
Attributes
GET /api/reservations?page=1&per_page=250 HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 20
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
[
{
"id": "62965b29-14bd-4d59-965f-94af882c3459",
"bookings": [
{
"id": "ABC123",
"supplier": "galileo",
"account": "ACT1",
"free_cancellation_period_ends": "2017-02-26T15:03:26.000Z"
},
{
"id": "12344512",
"supplier": "expedia",
"account": "ACT5",
"free_cancellation_period_ends": "2017-02-23T15:33:28.389Z"
}
]
},
{
"id": "9e71365c-6f1f-4116-bb8a-6f15fcddf331",
"bookings": [
{
"id": "DFA155",
"supplier": "galileo",
"account": "ACT1",
"free_cancellation_period_ends": "2017-03-10T11:11:14.000Z"
}
]
}
]
Attribute | Description |
---|---|
id |
The ID of this Reservation |
bookings |
Holds all the bookings related to this reservation |
bookings.id |
The ID of the booking. This ID is only unique in the scope of the same supplier. |
bookings.supplier |
Supplier where the booking has been created |
bookings.account |
The account which has been used to create the booking |
bookings.free_cancellation_period_ends |
End of the free cancellation period, in ISO-8601 format |
List Reservations
GET /api/reservations?page=1&per_page=250
GET /api/reservations?per_page=250 HTTP/1.1
Authorization: Bearer f26ef60fa588389d07d344ea4b0d4527da1389405250bb765e986efc89854128
Accept-Version: v1
This API endpoint allows you to list all your welltravel reservations and supports Pagination.
Fetch Reservation
GET /api/reservations/:id
GET /api/reservations/8dcbeb45-ef72-42f9-9ad5-e65148dc682c HTTP/1.1
Authorization: Bearer 2f85505337c5003b7c69caeaa76c53edca5a592d248d022a776ad042865469b3
Accept-Version: v1
This API endpoint allows you to fetch one specific Reservation.
Fetch Reservation id
GET api/reservation?booking_id=booking_id
GET /api/reservation?booking_id=f7c77ae0-6436-4ce4-89e6-245c32a41072 HTTP/1.1
Authorization: Bearer c2923889aeca3a5520ef8719e23aec3b69be94b8791ce7c103b20a2f10075043
Accept-Version: v1
HTTP/1.1 200 OK
Content-Type: application/json
{
"reservation_id": "95704139-cc91-4f01-bcd1-ab553e266613",
"booking_id": "f7c77ae0-6436-4ce4-89e6-245c32a41072"
}
After create an Order user can add new Booking into that order. To add a new booking in an existing PNR, It is required to know the reservation_id of corresponding booking. This API endpoint allows you to fetch Reservation id by specific Booking Id.
Queue
With the Queue API endpoints it’s possible to manage your queues on a supplier. It allows you to list a queue and remove/add bookings to a queue.
Attributes
GET /api/galileo/ACT1/queues/70/bookings HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
HTTP/1.1 200 OK
Content-Type: application/json
[
{ "id": "ABC123" },
{ "id": "DFA155" }
]
Attribute | Description |
---|---|
id |
The ID of a Booking |
List Bookings
GET /api/:supplier/:account/queues/:id/bookings
GET /api/amadeus/sadasdd/queues/70/bookings?per_page=250 HTTP/1.1
Authorization: Bearer a0e757535d5503c1a71be33b5759918b417ed877e401734c68e0910dce55b4ed
Accept-Version: v1
This API endpoint allows you to list all the bookings on a queue. Eventhough it returns a collection of entities, it does not support pagination.
Place Booking on Queue
POST /api/:supplier/:account/queues/:queue_id/bookings/:id
POST /api/amadeus/asdasd/queues/80/bookings/IUUUKH HTTP/1.1
Authorization: Bearer bf225e110b7be64358cb4a98a11d33c14de47e157f9bacf6eeeb1014d971c7df
Accept-Version: v1
This API endpoint allows you to place a booking on a queue.
Remove Booking from Queue
DELETE /api/:supplier/:account/queues/:queue_id/bookings/:id
DELETE /api/amadeus/asadsd/queues/80/bookings/MBBMN HTTP/1.1
Authorization: Bearer d5cc5be4b59c971f6460cd36bb88ce106da4c855a9e9d5bc39c369751b561740
Accept-Version: v1
This API endpoint allows you to remove a booking from a queue. It doesn’t cancel the booking.
Bookings
The Booking API endpoints allow you to fetch or modify a booking.
Fetch Booking
GET /api/:supplier/:account/bookings/:id
Returns the details of a booking.
GET /api/galileo/ACT1/bookings/ABC123 HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
Response Attributes
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
id | String | ✔ | ID of the booking |
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ABC123",
"booking_id": "f92b4ebc-3f3a-49ef-8f79-24a5c785edfe",
"version": "2024-06-13T07:58:40.000+00:00"
"supplier": "galileo",
"account": "ACT1",
"creator": "ACT1",
"created_at": "2017-03-01T11:31:31.176+00:00",
"travelers": [
{
"id": "K1JBNmNCRGhUNjZJQnFQN2xxTTgzQT09",
"traveler_reference": "4321",
"type": "adult",
"name_prefix":"mr",
"first_name": "Peter",
"middle_name": null,
"last_name": "Smith",
"seats" : [
{
"id": "seat_1_id",
"reference": "4321:12146-SQ446-43E",
"segment_id": "941d987f-186d-492e-8be4-0189a89916b0",
"row": 26,
"column": "J",
"amount": "51.0",
"currency": "EUR"
}
],
"seats" : [
{
"segment_id": "941d987f-186d-492e-8be4-0189a89916b0",
"row": 26,
"column": "J",
"amount": "51.0",
"currency": "EUR"
}
],
"services":
{
"id": "service_1_id",
"reference": "4321:ca9b0052-2cb7-4cfd-a251-3976c72e8470",
"type": "ABAG",
"text": "Paid Associated Baggage",
"amount": "150.0",
"currency": "EUR",
"segment_ids": ["9676aaef-e76e-4110-b339-30c9e6d835ff"],
"hotel_ids": ["9535322c-f543-4179-87eb-d9fd740c98ce"],
"car_ids": ["b03a0940-b650-4a13-a5df-57ec22e03119"],
"ssr_code": "ABAG",
"description": "UPTO50LB 23KG AND62LI 158LCM",
"description_human": "Additional bag up to 23 kilogramm",
"service_type": "Baggage",
"category": "bag",
"image_urls": {
"small": "/media/W1siZiIsIjIwMTcvMDEvMTYvOThxM3N2ejZjNV9wdWcuanBnIl1d?sha=87535f0efb7bc55e",
"medium": "/media/W1siZiIsIjIwMTcvMDEvMTYvMzNrNjg3MnMzNV9wdWcuanBnIl1d?sha=86400b5e1115a328",
"large": "/media/W1siZiIsIjIwMTcvMDEvMTYvMThrcXNiYzg0Zl9wdWcuanBnIl1d?sha=3d4e705297aba62a",
},
"refundable_until": null,
}
"frequent_flyer_number": [
{
"id": "19fbc878-63ce-488d-8988-66145a0eed81",
"carrier": "LX",
"number": "88888888888"
}
],
"phone_numbers": [
{ "type": null, "number": "0041435508800" }
],
"email_addresses": [],
"postal_addresses": []
}
],
"flight_bookings": [
{
"id": "TENRNFhE",
"result_id": "f92b4ebc-3f3a-49ef-8f79-24a5c785edfe"
"ticket_selling_carrier_code": "BA",
"instant_ticket": "false"
"apis_data_required": "none",
"flight_pricing": {
"flight_price": {
"recommended_selling_price": { "amount": "52.0", "currency": "EUR" },
"purchase_price": { "amount": null, "currency": "EUR" },
"source": { "amount": "55.0", "currency": "CHF" }
},
"tax": {
"amount": "32.79",
"currency": "EUR",
"source": { "amount": null, "currency": null }
},
"total_price": {
"recommended_selling_price": { "amount": "84.79", "currency": "EUR" },
"purchase_price": { "amount": null, "currency": "EUR" },
"source": { "amount": "90.54", "currency": "CHF" }
},
},
"refundable": null,
"penalties": {
"change": { "amount": null, "currency": null },
"cancel": { "amount": null, "currency": null }
},
"segments": [
{
"id": "9e1df0e1-44cd-4e7b-8e01-19659ce0be46",
"status": "confirmed",
"technical_stops": {
"count": 1,
"stop_details": [
{
"airport_code": "BKK",
"arrival_localtime": "2017-03-17T06:50:00",
"departure_localtime": "2017-03-17T15:50:00",
"duration_in_minutes": 540
},
]
},
"origin_code": "ZRH",
"origin_terminal": null,
"origin_timezone": "Europe/Zurich",
"destination_code": "SYD",
"destination_terminal": null,
"destination_timezone": "Australia/Sydney",
"departure_localtime": "2017-03-16T13:55:00",
"arrival_localtime": "2017-03-18T07:30:00",
"operating_carrier_code": "TG",
"operating_flight_number": "477",
"aircraft_operated_by": "TG",
"marketing_carrier_code": "TG",
"marketing_flight_number": "477",
"aircraft_type": "77W",
"booking_class": "V",
"flight_duration_in_minutes": 1355,
"catering": [],
"technical_stop_count": 1,
"air_miles": "478",
"cabin_class": "economy",
"wifi_packages": [],
"on_time_in_percentage": null,
"baggage_pieces_included": { "count": 1, "kg_per_piece": "23" },
"fare": { "brand": null, "basis_code": "OV2CO", "type": "published" },
"carrier": { "reservation_id": "POPOM9", "eticket_id": null }
}
]
},
],
"train_bookings": [],
"hotel_bookings": [
{
"id": "8dc144ce-74ca-4526-8eb9-4569457de0ec",
"status": "pending",
"accomodation_id": null,
"pricing": {
"room_rate": {
"total": {
"recommended_selling_price": { "amount": "106.0", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": "106.0", "currency": null }
},
"per_night": [
{
"date": "2018-10-10",
"recommended_selling_price": { "amount": "106.0", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": "106.0", "currency": "USD" }
}
]
},
"taxes": {
"amount": null,
"currency": "USD",
"source": { "amount": null, "currency": null },
"details": []
},
"total_price": {
"recommended_selling_price": { "amount": "106.0", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": "106.0", "currency": null }
}
},
"name": "La Quinta Inn and Suites LAX",
"code": "92447",
"address": {
"street": "5249 West Century Blvd.",
"city": "Los Angeles",
"state": null,
"zip": "USA",
"country": "US"
},
"longitude": "-118.37261",
"latitude": "33.9456",
"stars": null,
"rating": "3",
"rating_source": "galileo",
"description": "\u003cp\u003eOverview\u003cbr\u003eConveniently located less than a mile from one of the world\u0026#39;s busiest airports and within five miles of Manhattan Beach, the ten-story La Quinta Inn \u0026amp; Suites LAX is a welcoming oasis for travel weary guests. The spacious guest rooms and suites feature convenient amenities like free wireless high-speed Internet access and premium cable TV channels. The hotel also features an outdoor swimming pool as well as an on-site restaurant and cocktail lounge.\u003cbr\u003e\u003cbr\u003eLocation\u003cbr\u003eThe hotel is conveniently located less than a mile from LAX Airport and within five miles of Manhattan Beach. Hollywood, Beverly Hills, and downtown Los Angeles are also easily accessible via the 405. Universal Studios is less than 14 miles away, while Disneyland is a short 27-mile drive from the hotel. \u003cbr\u003e\u003cbr\u003eRooms\u003cbr\u003eThe spacious guest rooms and suites feature convenient amenities pillow-top mattresses, like free wireless high-speed Internet access, a coffee maker, free local calls, voicemail, and premium cable TV channels. \u003cbr\u003e\u003cbr\u003eFeatures\u003cbr\u003eThis full-service hotel features an outdoor pool with sundeck, fitness center, and meeting/banquet facilities for up to 300 guests. Wireless high-speed Internet access is available throughout the hotel as well. \u003cbr\u003e\u003cbr\u003eFood \u0026amp; Drink\u003cbr\u003eThe onsite Restaurant serves American cuisine.\u003cbr\u003e\u003cbr\u003eTourist information\u003cbr\u003e3.4 km ti Los Angeles International Airport LAX\u003cbr\u003e22.4 km to Universal Studios\u003cbr\u003e43.2 km to Disneyland\u003c/p\u003e\u003cbr\u003e",
"hotel_facilities": {
"meals_included": "none",
"airport_shuttle": {
"pick_up": null,
"drop_off": null
},
"wifi": null,
"others": [
"bar",
"wired_internet",
"restaurant",
"gym_fitness_centre",
"laundry_facilities",
"indoor_pool",
"telephone",
"television",
"car_parking",
"iron_facilities",
"electric_kettle",
"meeting_room_facilities",
"travel_agency_facilities"
],
"conditions": []
},
"picture_url": "http://ivectortestadmin.jactravel.com/Content/DataObjects/ThirdPartyProperty/Image/ext398/image_397191_v1.jpg",
"room_types": [
{
"no_of_rooms": 1,
"type": "King Double",
"description": null
}
],
"check_in": "2018-10-10",
"check_out": "2018-10-11",
"nights": 1
},
],
"car_bookings": [
{
"id": "51642f29-69ee-4dcb-8654-0412b62fa9af",
"status": "waitlisted",
"pricing": {
"rate": {
"per_day": {
"recommended_selling_price": {
"amount": null,
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": "USD"
},
"source": {
"amount": null,
"currency": "USD"
}
},
"total": {
"recommended_selling_price": {
"amount": "28.92",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": "USD"
},
"source": {
"amount": null,
"currency": null
}
}
},
"tax": {
"amount": null,
"currency": "USD",
"source": {
"amount": null,
"currency": "USD"
},
"details": []
},
"total_price": {
"recommended_selling_price": {
"amount": "28.92",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": "USD"
},
"source": {
"amount": null,
"currency": null
}
}
},
"refundable": null,
"company_code": "ZI",
"car_code": "Mini",
"pick_up": {
"location": "10 12 SEMLEY PLACE, LONDON VICTORIA,",
"latitude": "51.49198",
"longitude": "-.14977",
"is_airport": false,
"localtime": "2019-06-16T15:00:00"
},
"drop_off": {
"location": "10 12 SEMLEY PLACE, LONDON VICTORIA,",
"latitude": "51.49198",
"longitude": "-.14977",
"is_airport": false,
"localtime": "2019-06-18T15:00:00"
},
"days": 2,
"vendor": {
"vendor_name": "EUROPCAR",
"vendor_name": "EP",
"image_url": {
"url": "vendor full url from meta",
"thumbnail_url": "vendor thumbnail url from meta"
},
},
],
"comments": [],
"post_booking_services": {
"cancel_booking": true,
"seat": false,
"queue": {
"place": true,
"remove": true
},
"add_remarks": {
"general": false,
"accounting": true
},
"add_services": {
"associated": false,
"standalone": false
},
"update_travelers": {
"first_name": false,
"last_name": false,
"phone_number": false,
"email_address": false,
"postal_address": false
},
"ticket_issuance": {
"required": false,
"issued_at": "2020-01-20T12:17:00+00:00",
"until": null
},
"emd": {
"supported": false,
"required": false,
"available": false,
"possible_until": null,
"style": "unavailable"
},
"refund": {
"supported": true,
"available": true,
"possible_until": "2020-03-16T19:20:00.000+00:00",
"style": "with_quote"
},
"exchange": {
"supported": false,
"available": false,
"possible_until": null,
"style": "unavailable"
},
"ticket_void": {
"supported": true,
"available": true,
"possible_until": "2020-01-20T23:59:00+00:00"
},
"form_of_payment": {
"add": [
{
"booking_item_id": "496887e8-b240-4725-b9a0-2fdc54a9c378",
"booking_item_type": "flight",
"supported": true,
"available": true,
"required": true,
"until": "2022-12-13T23:59:00+00:00",
},
{
"booking_item_id": "536967d0-f7fe-418c-a555-3d3b6f2a1d45",
"booking_item_type": "car",
"supported": true,
"available": true,
"required": true,
"until": "2022-12-13T23:59:00+00:00",
},
{
"booking_item_id": "bd9b3a53-b81f-4615-b5b0-a092eaa8bf40",
"booking_item_type": "hotel",
"supported": true,
"available": true,
"required": true,
"until": "2022-12-13T23:59:00+00:00",
}
],
"update": [
{
"fop_id": "deaf3fca-71e7-4d48-91fb-c0b72a2b83a6",
"supported": true,
"available": true,
},
{
"fop_id": "43548465-edb3-4941-b8f2-c5fef23a64db",
"supported": true,
"available": true,
},
{
"fop_id": "2ad3729e-d121-44cf-93df-8d0271631878",
"supported": true,
"available": true,
},
],
"delete": [
{
"fop_id": "deaf3fca-71e7-4d48-91fb-c0b72a2b83a6",
"supported": true,
"available": true,
},
{
"fop_id": "43548465-edb3-4941-b8f2-c5fef23a64db",
"supported": true,
"available": true,
},
{
"fop_id": "2ad3729e-d121-44cf-93df-8d0271631878",
"supported": true,
"available": true,
},
]
}
}
}
Attribute | Description |
---|---|
id |
The ID of a Booking |
booking_id |
Unique ID for the booking |
version |
Version of the booking |
supplier |
Supplier name |
account |
Account used for booking |
creator |
Username used by the agency |
created_at |
Timestamp when booking was created |
travelers |
Detailed information about the travelers |
travelers.id |
Unique ID of a traveler |
travelers.traveler_reference |
Reference of the traveler |
travelers.type |
The type of this traveler, see Traveler Type for more details |
travelers.name_prefix |
Name prefix of the traveler. Example Mr |
travelers.first_name |
First Name of the traveler. Example: John |
travelers.middle_name |
Middle Name of the driver. Example: Ahmed |
travelers.last_name |
Last Name of the driver. Example: Kabir |
travelers.ticket_number |
Travelers ticket number |
travelers.seats |
Seat Reservation Information about the Traveler |
travelers.seats.id |
UUID of the Reserved Seat |
travelers.seats.reference |
Reference of the Reserved Seat, reference: traveler_reference:seat_id seat_id gets from Select Step |
travelers.seats.segment_id |
Segment Identifier of the Reserved Seat |
travelers.seats.row |
Row Number of the Reserved Seat |
travelers.seats.column |
Column Number of the Reserved Seat |
travelers.seats.amount |
Price of the seat. For free seat, it will be 0.0 . For no seat price provided by the supplier, it will be nil . |
travelers.seats.currency |
Currency of the Price of the seat |
travelers.tickets |
Ticket Information about the Traveler |
travelers.tickets.segment_id |
Segment Identifier of the Issued Ticket Eg. d2205966-f506-4fe1-872e-3bdb1207eb6e |
travelers.tickets.number |
Ticket Number of the Issued Ticket. Eg. 082-6384180863 |
travelers.services |
Service Information about the Traveler |
travelers.services.id |
Service Identifier |
travelers.services.reference |
Reference of the Selected Service, reference: traveler_reference:service_id , service_id gets from Select Step |
travelers.services.type |
Type of the service |
travelers.services.text |
Description of the service from the supplier |
travelers.services.amount |
Price of the service |
travelers.services.currency |
Currency of the Price of the services |
travelers.services.segment_ids |
An Array containing all the segments identifiers related to the service |
travelers.services.hotel_ids |
Hotel Reservation Information of the Traveler. It contains the hotel segments identifiers |
travelers.services.car_ids |
Vehicle Reservation Information of the Traveler. It contains the vehicle segments identifiers |
travelers.services.ssr_code |
Special Service Request (SSR) code of the service.A Special Service Request (SSR) is a message sent directly to suppliers to communicate traveler preferences, special services needed by a traveler, or of a procedural requirement necessary of the carrier. SSRs include information such as meal preference or special assistance required the traveler. In addition, the SSR can send an alert message back to the agency or travel provider. SSRs can originate with the travel provider asking for service from the carrier or from the carrier asking for information (like a ticket number) from the travel provider. Each SSR uses a four-character IATA code that specifies the type of service requested. These codes and their recommended use are pre-defined by IATA, however, not all suppliers or providers support the use of all SSR codes. |
travelers.services.description |
Description of the service as given by the supplier |
travelers.services.description_human |
Human readable description of the service |
travelers.services.service_type |
Type of the service. For example, Pets , Baggage etc. |
travelers.services.category |
Category of the service |
travelers.services.image_urls |
Holds the URLs to different sizes of the main image. See Images. |
travelers.services.refundable_until |
The date up to which the service can be cancelled free of cost |
travelers.frequent_flyer_number |
Frequent flyer number of traveler |
travelers.frequent_flyer_number.id |
Unique ID for Frequent Flyer Number of traveler |
travelers.frequent_flyer_number.carrier |
Carrier Code for Frequent Flyer Number |
travelers.frequent_flyer_number.number |
Frequent Flyer Number which is a loyalty program offered by an airline |
travelers.phone_numbers |
Traveler’s phone number details |
travelers.phone_numbers.id |
Unique ID of traveler’s phone number |
travelers.phone_numbers.type |
Type of the phone number |
travelers.phone_numbers.number |
Traveler’s phone number |
travelers.email_addresses |
Traveler’s email address |
travelers.email_addresses.id |
Unique ID of traveler’s phone number |
travelers.email_addresses.type |
Type of the phone number |
travelers.email_addresses.address |
Traveler’s phone number |
travelers.postal_addresses |
Details about traveler’s postal code |
travelers.postal_addresses.id |
Unique ID of traveler’s postal code |
travelers.postal_addresses.type |
Travelers postal code types |
travelers.postal_addresses.lines |
Travelers postal code lines |
flight_bookings |
Detailed information about the flight booking |
flight_bookings.id |
Unique ID for flight booking |
flight_bookings.result_id |
Unique ID for a specific flight result |
flight_bookings.ticket_selling_carrier_code |
Ticket selling carrier code for the booking flight |
flight_bookings.instant_ticket |
Supplier’s instant ticket availability |
flight_bookings.apis_data_required |
Exposes if advanced passer information has to be required, see APIS Data for mor details |
flight_bookings.flight_pricing |
All the information about the cost of the flight |
flight_bookings.flight_pricing.flight_price |
Information related to the price of the the flight |
flight_bookings.flight_pricing.flight_price.recommended_selling_price |
Information about the price of the journey we recommend to use as selling price |
flight_bookings.flight_pricing.flight_price.recommended_selling_price.amount |
The price of the journey we recommend to use as selling price without tax |
flight_bookings.flight_pricing.flight_price.recommended_selling_price.currency |
The currency in which the price of the journey we recommend to use as selling price |
flight_bookings.flight_pricing.flight_price.purchase_price |
Detailed information about the price of the journey you will have to pay |
flight_bookings.flight_pricing.flight_price.purchase_price.amount |
The price of the journey you will have to pay with tax |
flight_bookings.flight_pricing.flight_price.purchase_price.currency |
The currency in which the price of the journey you will have to pay |
flight_bookings.flight_pricing.flight_price.source |
The price of the journey you will have to pay in the IPCC’s default currency |
flight_bookings.flight_pricing.flight_price.source.amount |
The price of the journey you will have to pay in the IPCC’s default currency |
flight_bookings.flight_pricing.flight_price.source.currency |
The currency in which the price of the journey you will have to pay |
flight_bookings.flight_pricing.tax |
Tax Related Information |
flight_bookings.flight_pricing.tax.amount |
The amount of tax you have to pay |
flight_bookings.flight_pricing.tax.currency |
The currency in which the tax is being exposed |
flight_bookings.flight_pricing.tax.source |
Tax Related Information in the IPCC’s default currency |
flight_bookings.flight_pricing.tax.source.amount |
The amount of tax you have to pay in the IPCC’s default currency |
flight_bookings.flight_pricing.tax.source.currency |
The currency in which the tax is being exposed |
flight_bookings.flight_pricing.details |
An Array containing the tax break down of total tax amount |
flight_bookings.flight_pricing.details.code |
Tax Code representing the tax category.It is unique two-lettered code in all caps. |
flight_bookings.flight_pricing.details.amount |
The tax amount for the tax category |
flight_bookings.flight_pricing.details.currency |
The currency of the tax amount |
flight_bookings.flight_pricing.details.description |
Human Readable Description of the tax code representing the tax category as given by the supplier |
flight_bookings.flight_pricing.total_price.recommended_selling_price |
The total price of the flight we recommend you to use as selling price without tax i.e gross price of the flight |
flight_bookings.flight_pricing.total_price.recommended_selling_price.amount |
The price of the journey we recommend to use as selling price without tax |
flight_bookings.flight_pricing.total_price.recommended_selling_price.currency |
The currency in which the price of the journey we recommend to use as selling price |
flight_bookings.flight_pricing.total_price.purchase_price |
The total net price of the flight you will have to pay |
flight_bookings.flight_pricing.total_price.purchase_price.amount |
The price of the journey you will have to pay with tax |
flight_bookings.flight_pricing.total_price.purchase_price.currency |
The currency in which the price of the journey you will have to pay |
flight_bookings.refundable |
Refundable is possible or not. If value is true then possible and if false refundable is not possible. |
flight_bookings.segments |
Detailed information about flight segment |
flight_bookings.segments.status |
Booking Status. Possible values are: confirmed, unconfirmed, pending, closed, not_processed, new, denied, canceled, no_need_status, duplicate, waitlisted, unknown and null |
flight_bookings.segments.catering |
The information about the catering services on this flight segment, see Catering for more details |
flight_bookings.penalties |
Penalty related information of the flight |
flight_bookings.segments.cabin_class |
The cabin class of this trip, see Cabin Class for more details |
flight_bookings.segments.fare.type |
The fare type, see Fare Type for more details |
train_bookings |
Detailed information about the train booking |
hotel_bookings.id |
Unique ID for hotel bookings |
hotel_bookings.status |
Booking Status. Possible values are: confirmed, closed, unconfirmed, pending, not_processed, new, denied, canceled, no_need_status, duplicate, waitlisted, unknown and null |
hotel_bookings.accomodation_id |
Accommodation ID fo the hotel |
hotel_bookings.pricing |
Detailed information of hotel booking pricing |
hotel_bookings.room_rate |
Room Rate Pricing Information |
hotel_bookings.room_rate.total |
Rate for Room for all nights |
hotel_bookings.room_rate.per_night |
Rate for Room as per night basis |
hotel_bookings.taxes |
Tax Related Information |
hotel_bookings.total_price.recommended_selling_price |
Total Recommended Selling Price |
hotel_bookings.total_price.purchase_price |
Total Purchase Price |
hotel_bookings.total_price.source |
Total Source Price |
hotel_bookings.name |
Name of the hotel |
hotel_bookings.code |
The unique code to identify the hotel i.e Hotel Code |
hotel_bookings.address |
The address of the hotel |
hotel_bookings.address.street |
The name of the street of the hotel location |
hotel_bookings.address.city |
The name of the city of the hotel location |
hotel_bookings.address.state |
State name of the hotel |
hotel_bookings.address.zip |
Zip code of the hotel |
hotel_bookings.address.country |
Country code of the hotel |
hotel_bookings.longitude |
Longitude of the hotel |
hotel_bookings.latitude |
Latitude of the hotel |
hotel_bookings.stars |
Star rating system is a system aims to rate hotels based on the quality and amount of amenities it provides its customers. |
hotel_bookings.rating |
Rating of the hotel |
hotel_bookings.rating_source |
Rating source |
hotel_bookings.description |
Description of the hotel property |
hotel_bookings.hotel_facilities |
Detailed facilities provided by the hotel |
hotel_bookings.hotel_facilities.meals_included |
The list of meals that are complimentary with the hotel booking. See Board Type for details for details |
hotel_bookings.hotel_facilities.airport_shuttle |
Detailed information about airport shuttle facility |
hotel_bookings.hotel_facilities.airport_shuttle.pick_up |
Airport pickup information. See Hotel Facility Availabilities for the details |
hotel_bookings.hotel_facilities.airport_shuttle.drop_off |
Airport drop-off information. See Hotel Facility Availabilities for the details |
hotel_bookings.hotel_facilities.wifi |
Wifi related information. See Hotel Facility Availabilities for the details |
hotel_bookings.hotel_facilities.others |
Others facilities provided by this hotel. See Hotel Facilities for details |
hotel_bookings.hotel_facilities.condition |
Conditions for this hotel. See Hotel Conditions for details |
hotel_bookings.picture_urls |
Picture URLs of the Specific Hotel |
hotel_bookings.room_types |
Detailed information about the particular type of room |
hotel_bookings.room_types.no_of_rooms |
Number of rooms of the same room type |
hotel_bookings.room_types.description |
Description of a particular room type |
hotel_bookings.check_in |
Check in time as per hotel policy. Value could be anything from 00:00 to 23:59 or full_day_check_in |
hotel_bookings.check_out |
Check out time as per hotel policy. Value could be anything from 00:00 to 23:59 |
hotel_bookings.nights |
Total number of nights to stay in the hotel |
car_bookings |
Details about the car booking |
car_bookings.id |
Unique ID for car bookings |
car_bookings.status |
Booking Status. Possible values are: confirmed, closed, unconfirmed, pending, not_processed, new, denied, canceled, no_need_status, duplicate, waitlisted, unknown and null |
car_bookings.vendor.image_url |
Image of the specific car |
car_bookings.pricing |
Detailed information of hotel booking pricing |
car_bookings.vendor |
Detailed information of car booking vendor |
car_bookings.vendor.vendor_name |
Name of the vendor. Example EUROPCAR |
car_bookings.vendor.vendor_code |
Code of the corresponding vendor. Example EP |
car_bookings.rate |
Car Rental Rate Pricing Information |
car_bookings.rate.per_day |
Car Rental Rate Pricing Per Day Details |
car_bookings.rate.per_day.recommended_selling_pric |
Information about the cost of car rental we recommend to use as selling price per day |
car_bookings.rate.per_day.recommended_selling_price.amount |
Recommended Car Rental Cost Per Day |
car_bookings.rate.per_day.recommended_selling_price.currency |
Currency of the recommended car rental cost per day |
car_bookings.rate.per_day.purchase_price |
Detailed information about the car rental cost you will have to pay per day |
car_bookings.rate.per_day.purchase_price.amount |
The car rental price with tax per day |
car_bookings.rate.per_day.purchase_price.currency |
The currency of the car rental price with tax per day |
car_bookings.rate.per_day.source |
Detailed information about the car rental cost you will have to pay per day in the IPCC’s default currency |
car_bookings.rate.per_day.source.amount |
The car rental price per day in the IPCC’s default currency |
car_bookings.rate.per_day.source.currency |
The currency of the car rental price per day in the IPCC’s default currency |
car_bookings.rate.total |
Total Car Rental Rate Pricing Details |
car_bookings.rate.total.recommended_selling_price |
Information about the total cost of car rental we recommend to use as selling price |
car_bookings.rate.total.recommended_selling_price.amount |
Recommended Total Car Rental Cost |
car_bookings.rate.total.recommended_selling_price.currency |
Currency of the total recommended car rental cost |
car_bookings.rate.total.purchase_price |
Detailed information about the total car rental cost you will have to pay |
car_bookings.rate.total.purchase_price.amount |
The total car rental price with tax |
car_bookings.rate.total.purchase_price.currency |
The currency of the car rental price with tax per day |
car_bookings.rate.total.source |
Detailed information about the total car rental cost you will have to pay in the IPCC’s default currency |
car_bookings.rate.total.source.amount |
The total car rental price in the IPCC’s default currency |
car_bookings.rate.total.source.currency |
The IPCC’s default currency |
car_bookings.tax |
Tax Related Information |
car_bookings.tax.amount |
Tax amount |
car_bookings.tax.currency |
Currency of the Tax amount |
car_bookings.tax.source |
Tax Related Information in the IPCC’s default currency |
car_bookings.tax.source.amount |
Tax amount in the IPCC’s default currency |
car_bookings.tax.source.currency |
The IPCC’s default currency |
car_bookings.total_price.recommended_selling_price |
Total Recommended Selling Price |
car_bookings.total_price.recommended_selling_price.amount |
Total amount we recommended as selling price |
car_bookings.total_price.recommended_selling_price.currency |
Currency of the Total Recommended Selling Price |
car_bookings.total_price.purchase_price |
Details about total Price of car rental you actually have to pay |
car_bookings.total_price.purchase_price.amount |
Total Price of car rental you actually have to pay |
car_bookings.total_price.purchase_price.currency |
Currency of the Total Purchase Price |
car_bookings.total_price.source |
Information about total price in the IPCC’s default currency |
car_bookings.total_price.source.amount |
Total Price in the IPCC’s default currency |
car_bookings.total_price.source.currency |
IPCC’s default currency |
car_bookings.refundable |
Indicator of whether the car booking is refundable or not. If true, it is refundable otherwise it is non-refundable. If it is null, then there is no information about refund. See Possible Values for more details. |
car_bookings.company_code |
The unique code to identify the car company i.e Company Code |
car_bookings.car_code |
The unique code to identify the car i.e Car Code |
car_bookings.pick_up |
Pick Up related information |
car_bookings.pick_up.location |
Pick Up Location |
car_bookings.pick_up.latitude |
Latitude of the pickup location in Decimal Degree(DD) format |
car_bookings.pick_up.longitude |
Longitude of the pickup location in Decimal Degree(DD) format |
car_bookings.pick_up.is_airport |
Returns true or false if the pick-up location is airport or not. See Possible Values for more details. |
car_bookings.pick_up.localtime |
Pick Up Time and Date |
car_bookings.drop_off |
Drop off related information |
car_bookings.drop_off.location |
Drop off Location |
car_bookings.drop_off.latitude |
Latitude of the drop-off location in Decimal Degree(DD) format |
car_bookings.drop_off.longitude |
Longitude of the drop-off location in Decimal Degree(DD) format |
car_bookings.drop_off.is_airport |
Returns true or false if the drop-off location is airport or not. See Possible Values for more details. |
car_bookings.drop_off.localtime |
Drop off Time and Date |
car_bookings.days |
The number of days for which the car is being rented |
post_booking_services |
Details about the post booking services supported by Welltravel. |
post_booking_services.cancel_booking |
Specifies whether the booking can be cancelled or not by Welltravel. See Possible Values for more details. |
post_booking_services.add_seat |
Specifies whether seat can be added to a PNR in the post booking is supported by Welltravel for the PNR. See Possible Values for more details. |
post_booking_services.queue |
Details about whether placing or removing a PNR into/from a queue in the post booking is supported by Welltravel or not for the PNR. |
post_booking_services.queue.place |
Specifies whether placing a PNR into a queue in the post booking is supported by Welltravel or not for the PNR. See Possible Values for more details. |
post_booking_services.queue.remove |
Specifies whether removing a PNR from a queue in the post booking is supported by Welltravel or not for the PNR. See Possible Values for more details. |
post_booking_services.add_remarks |
Details about whether remarks can be added to a PNR in post booking is supported by Welltravel or not for the PNR. |
post_booking_services.add_remarks.general |
Specifies about whether general remark can be added to a PNR in post booking is supported by Welltravel or not for the PNR. See Possible Values for more details. |
post_booking_services.add_remarks.accounting |
Specifies about whether accounting remarks can be added to a PNR in post booking is supported by Welltravel or not for the PNR. See Possible Values for more details. |
post_booking_services.add_services |
Ancillary Services are optional services that a passenger can purchase in combination with an airline ticket. All the information about whether ancillary services can be added to a PNR in post booking is supported by Welltravel or not for the PNR. |
post_booking_services.add_services.associated |
An associated service is issued for the collection of miscellaneous charges and excess baggage charges. For example, sports equipment, pets in cabin or animal in hold, excess baggage, and so on. Specifies whether associated ancillary services of the booking can be added to a PNR in post booking is supported by Welltravel or not. See Possible Values for more details. |
post_booking_services.add_services.standalone |
A standalone service is issued for a residual value or the collection of miscellaneous charges that are not lifted with an e-ticket coupon. For example vouchers, group deposits, change fees, and so on. Standalone Services are other ancillary services that can be purchased within or not within a flight reservation. For example lounge access or a promotional item (t-shirt, mug, etc). Specifies whether standalone ancillary services can be added to a PNR in post booking is supported by Welltravel or not for the PNR. See Possible Values for more details. |
post_booking_services.update_travelers |
Details about whether the traveler details in post booking services can be updated is supported by Welltravel or not. |
post_booking_services.update_travelers.first_name |
Specifies whether first name of the travelers can be updated. See Possible Values for more details. |
post_booking_services.update_travelers.last_name |
Specifies whether last name of the travelers can be updated. See Possible Values for more details. |
post_booking_services.update_travelers.phone_number |
Specifies whether phone number of the travelers can be updated. See Possible Values for more details. |
post_booking_services.update_travelers.email_address |
Specifies whether email address of the travelers can be updated. See Possible Values for more details. |
post_booking_services.update_travelers.postal_address |
Specifies whether postal address of the travelers can be updated. See Possible Values for more details. |
post_booking_services.ticket_issuance |
Detailed information about the ticket issuance |
post_booking_services.ticket_issuance.required |
Ticket issuance is required or not. See Possible Values for more details. |
post_booking_services.ticket_issuance.issued_at |
Timestamp when ticket issuance was done |
post_booking_services.ticket_issuance.until |
Ticket issuance is possible until this date |
post_booking_services.emd |
Details about whether the traveler can issue an EMD is supported by Welltravel or not. |
post_booking_services.emd.supported |
Specifies whether issuance of EMD is supported by Welltravel or not. See Possible Values for more details. |
post_booking_services.emd.required |
Specifies whether it is mandatory to issue the EMD. See Possible Values for more details. |
post_booking_services.emd.available |
Specifies whether the EMD is already issued or not. See Possible Values for more details. |
post_booking_services.emd.possible_until |
The date until which EMD issuance is possible for the booking |
post_booking_services.emd.style |
Specifies whether the EMD can be issued with or without issuing ticket and if no information is available regarding the matter, the value will be unavailable . See Style for more details |
post_booking_services.refund |
Details about whether the booking can be refunded is supported by Welltravel or not. |
post_booking_services.refund.supported |
Specifies whether refund of booking is supported by Welltravel or not. See Possible Values for more details. |
post_booking_services.refund.required |
Specifies whether it is mandatory to refund the booking for cancellation. See Possible Values for more details. |
post_booking_services.refund.available |
Specifies whether the booking is already refunded or not. See Possible Values for more details. |
post_booking_services.refund.possible_until |
The date until which refund is possible for the booking |
post_booking_services.refund.style |
Specifies whether the booking fee can be refunded with or without issuing ticket and if no information is available regarding the matter, the value will be unavailable . See Exchange/ Refund Style for more details. |
post_booking_services.exchange |
Details about whether the flight(s) can be exchanged in post booking is supported by Welltravel or not. |
post_booking_services.exchange.supported |
Specifies whether flight(s) exchange is supported by Welltravel or not. See Possible Values for more details. |
post_booking_services.exchange.available |
Specifies whether the ticket is already exchanged or not. See Possible Values for more details. |
post_booking_services.exchange.possible_until |
The date until which exchange is possible for the flight(s) |
post_booking_services.exchange.style |
Specifies whether the flight can be exchanged with or without issuing ticket and if no information is available regarding the matter, the value will be unavailable . See Exchange/ Refund Style for more details. |
post_booking_services.ticket_void |
Voiding any ticket means invalidating the ticket. Usually, a ticket can be voided within 24 hours of document issuance, however, the period during which a ticket can be voided may vary. The period of time during which a void can occur is handled by the provider. Details about whether the flight ticket can be voided in post booking is supported by Welltravel or not. |
post_booking_services.ticket_void.supported |
Specifies whether voiding ticket is supported by Welltravel or not. See Possible Values for more details. |
post_booking_services.ticket_void.available |
Specifies whether the ticket is already voided or not. See Possible Values for more details. |
post_booking_services.ticket_void.possible_until |
The date until which voiding ticket is possible for the booking |
post_booking_services.ticket_void.style |
Specifies whether the ticket can be voided with or without issuing ticket and if no information is available regarding the matter the value will be unavailable . See Style for more details |
post_booking_services.form_of_payment |
Details about whether add, update and delete of form of payment of the booking in the post booking is supported by Welltravel or not. |
post_booking_services.form_of_payment.add |
Specifies whether a form of payment can be added to the booking. It is possible to add a form of payment to the booking, only if it is not cancelled or issued, or the operation is supported by the supplier. It is an array of hashes containing all the supported add form of payment information for each booking. |
post_booking_services.form_of_payment.add.booking_item_id |
Specifies one of flight booking or hotel booking or car booking id for which a form of payment is added |
post_booking_services.form_of_payment.add.booking_item_type |
Specifies the booking item. It should flight or car or hotel |
post_booking_services.form_of_payment.add.supported |
Specify whether an addition of form of payment is supported or not for the booking. See Possible Values for more details. |
post_booking_services.form_of_payment.add.available |
Specify whether an addition of form of payment is available or not for the booking. See Possible Values for more details. |
post_booking_services.form_of_payment.add.required |
Specify whether an addition of form of payment is required or not for the booking. If form of payment is already added then required should be false otherwise true. See Possible Values for more details. |
post_booking_services.form_of_payment.add.until |
The last or final date of adding form of payment for the hold booking. Indicates payment will be added later upto the final date. |
post_booking_services.form_of_payment.update |
Specifies whether a form of payment of the booking can be updated. It is possible to update the form of payment to the booking, only if it exists and the booking is not cancelled or issued or the operation is supported by the supplier. It is a an array of hashes containing all the supported update form of payment information for each booking. |
post_booking_services.form_of_payment.update.fop_id |
Specifies form of payment id which needs to be updated |
post_booking_services.form_of_payment.update.supported |
Specify whether an updating of form of payment is supported or not for the booking. See Possible Values for more details. |
post_booking_services.form_of_payment.update.available |
Specify whether an updating of form of payment is available or not for the booking. See Possible Values for more details. |
post_booking_services.form_of_payment.delete |
Specifies whether a form of payment of the booking can be deleted. It is possible to delete the form of payment of a booking, only if it exists, and the booking is not cancelled, or issued, or the delete operation is supported by the supplier. It is an array of hashes containing all the supported add form of payment information for each booking. |
post_booking_services.form_of_payment.delete.fop_id |
Specifies form of payment id which needs to be deleted |
post_booking_services.form_of_payment.delete.supported |
Specify whether an deletion of form of payment is supported or not for the booking. See Possible Values for more details. |
post_booking_services.form_of_payment.delete.available |
Specify whether an deletion of form of payment is available or not for the booking. See Possible Values for more details. |
Cancel a Booking
DELETE /api/sabre/6ZQH/bookings/YRURQU HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
DELETE /api/:supplier/:account/bookings/:id?item[]=item_1_id&item[]=item_2_id
Cancel a booking. With most suppliers this will remove any flight, hotel or car bookings but the main booking will still be available.
If no item is provided the whole booking will be cancelled. Otherwise only the selected items provided by the endpoint will be canceled from the booking.
Here items are the item ids of flight, hotel or car bookings in the booking.
Cancel Booking Response
HTTP/1.1 204 No Content
Cache-Control: no-cache
X-Request-Id: 81024a46-71dc-4222-b2c3-025e1c03e2b6
X-Runtime: 12.150931
Vary: Origin
Connection: close
In the response, No Content is returned.
Cancel a Booking
DELETE /api/bookings/08488879-1023-4eaa-a4e3-ba9dd2e5282f?items%5B%5D=6e624f2f-1d0b-4148-9f1b-04ef7e4822ab HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
DELETE api/bookings/:booking_id?items[]=:item_id
With most suppliers this will remove any flight, hotel or car bookings.
If no item is provided the whole booking will be canceled. Otherwise only the selected items provided by the endpoint will be canceled from the booking.
Here items are the item ids of flight, hotel or car bookings in the booking.
Cancel Booking Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "S3IXWX",
"booking_id": "08488879-1023-4eaa-a4e3-ba9dd2e5282f",
"requested_items": [
"6e624f2f-1d0b-4148-9f1b-04ef7e4822ab"
],
"cancelled_items": [
"6e624f2f-1d0b-4148-9f1b-04ef7e4822ab"
],
"active_items": []
}
Attribute | Type | Description |
---|---|---|
id | String | Record Locator or PNR |
booking_id | UUID | Id of the corresponding booking for the PNR |
requested_items | Array | Items that are requested for cancellation |
cancelled_items | Array | Items that are successfully cancelled in a booking |
active_items | Array | Items that are still active in a booking |
Issue a Ticket
You should consume the new endpoint because this old endpoint will be deprecated soon.
POST /api/sabre/6ZZZ/bookings/ABCD12/ticket HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
POST /api/:supplier/:account/bookings/:record_locator/ticket
Issues a ticket for the given booking.
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
item | Array | ✘ | Item Ids that you want to issue a ticket of a PNR. This feature is only available for Amadeus, Galileo and Sabre. |
issue_all_emds | Boolean | ✘ | Whether you want to issue all EMDs in the booking with ticket issue. This feature is only available for LH Group NDC and Galileo. |
Issue Ticket Response
HTTP/1.1 201 Created
Content-Type: application/json
[
{
"id": "123456578",
}
]
Attribute | Type | Description |
---|---|---|
Array | An array of Hash of issued tickets | |
Hash | A Hash containing Ticket number of an issued ticket | |
id | String | Issued Ticket Number |
Issue a Ticket (NEW)
POST /api/bookings/680203d2-3ddd-4ea1-a97a-cbfbcb72f550/issue HTTP/1.1
{
"items": ["120203d2-3ddd-4ea1-a97a-cbfbcb72f551"],
}
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
POST api/bookings/:booking_id/issue
Issues a ticket for the given booking.
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
items | Array | ✘ | Item Ids that you want to issue ticket of PNR |
Issue Ticket Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "ABCD12",
"booking_id": "680203d2-3ddd-4ea1-a97a-cbfbcb72f550",
"requested_items": ["120203d2-3ddd-4ea1-a97a-cbfbcb72f551"],
"issued_items": [
{
"id": "6e624f2f-1d0b-4148-9f1b-04ef7e4822ab",
"tickets": [
"1234512341"
]
}
],
"unissued_items": []
}
Attribute | Type | Description |
---|---|---|
id | String | Record Locator or PNR |
booking_id | UUID | Id of the booking |
requested_items | Array | Requested Items for issuance |
issued_items | Array | Details of the Issued Items |
issued_items.id | UUID | Id of the issued item |
issued_items.tickets | Array | Ticket Number |
unissued_items | Array | Details of the Unissued Items |
unissued_items.id | UUID | Id of the unissued item |
unissued_items.tickets | Array | Ticket Number |
Void Tickets
POST /api/bookings/680203d2-3ddd-4ea1-a97a-cbfbcb72f550/void HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
POST /api/bookings/:booking_id/void
If there are any issued tickets that you want to void, you can void the ticket with this endpoint.
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
items | Array | ✘ | Item Ids that you want to void ticket of PNR |
Void Ticket Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"voided": [
"7246502573858",
"7246502573859"
],
"active": []
}
Attribute | Type | Description |
---|---|---|
voided | Array | Array of voided tickets |
active | Array | Array of still active tickets |
Refund Quote
You should consume the new endpoint because this old endpoint will be deprecated soon.
GET /api/lh_group/ACT5/bookings/5RHJEU/refund HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
GET api/:backend/:account_identifier/bookings/record_locator/refund
This endpoint returns the Quote for the refund amount for the given booking.
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
traveler_ids | Array | ✘ | Traveler Ids of Passenger that you want to quote refund for. |
Refund Quote Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"backend": "lh_group",
"account_identifier": "ACT5",
"reservation_id": "5RHJEU",
"currency": "CHF",
"price": "126.45",
"validity": "2021-10-27T07:30:33",
"timezone": "+00:00"
}
Attribute | Type | Description |
---|---|---|
backend | String | Name of the supplier |
account_identifier | String | Account identifier of the supplier |
reservation_id | String | Record locator or PNR |
currency | String | Currency of the refunded amount |
price | String | Total refunded amount |
validity | String | Validity of the refunded amount. Format: YYYY-MM-DDThh:mm:ss |
timezone | String | Timezone |
Refund Quote (NEW)
GET /api/bookings/:booking_id/refund HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
GET api/bookings/:booking_id/refund
This endpoint returns the Quote for the refund amount for the given booking.
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
traveler_ids | Array | ✘ | Traveler Ids of Passenger that you want to quote refund for. Traveler ids are given for partial refund. Partial refund is supported suppliers are listed here Partial Refund Supported Suppliers. |
items | Array | ✘ | Item Ids that you want to refund of PNR. Currently itemwise refund is not supported from our side. So passing item ids will not bear any effect. |
Refund Quote Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"backend": "lh_group",
"account_identifier": "ACT5",
"reservation_id": "5RHJEU",
"currency": "CHF",
"price": "126.45",
"validity": "2022-10-27T07:30:33",
"timezone": "+00:00"
}
Attribute | Type | Description |
---|---|---|
backend | String | Name of the supplier |
account_identifier | String | Account identifier of the supplier |
reservation_id | String | Record locator or PNR |
currency | String | Currency of the refunded amount |
price | String | Total refunded amount |
validity | String | Validity of the refunded amount. Format: YYYY-MM-DDThh:mm:ss |
timezone | String | Timezone |
Refund
You should consume the new endpoint because this old endpoint will be deprecated soon.
DELETE /api/amadeus/NCFPE123/bookings/5RHJEU/refund HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
{
"expected_refund_amount": "126.45",
"currency": "CHF",
"traveler_ids": "f1d388a4-5826-4914-9237-8df7bc49bf75",
}
DELETE api/:backend/:account_identifier/bookings/record_locator/refund
This endpoint returns the Quote for the refund amount for the given booking.
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
expected_refund_amount | String | ✔ | Expected refund amount |
currency | String | ✔ | Currency of refund amount. |
traveler_ids | Array | ✘ | Traveler Ids of Passenger that you want to quote refund for. Traveler ids are given for partial refund. Partial refund is supported suppliers are listed here Partial Refund Supported Suppliers. |
Refund Response
HTTP/1.1 204 No Content
Cache-Control: no-cache
X-Request-Id: 7ea80f9e-1a8a-4e6c-9058-c54c0fefbc62
X-Runtime: 17.898201
Vary: Origin
Connection: close
In the response, No Content is returned.
Refund (NEW)
DELETE /api/bookings/:booking_id/refund HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
{
"expected_refund_amount": "126.45",
"currency": "CHF",
"traveler_ids": "fe93e8de-7ae9-495b-a821-241f18f568eb",
"items": "357bb941-ec5b-4552-a745-4c1762426056",
}
DELETE api/bookings/:booking_id/refund
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
expected_refund_amount | String | ✔ | Expected refund amount |
currency | String | ✔ | Currency of refund amount. |
traveler_ids | Array | ✘ | Traveler Ids of Passenger that you want to quote refund for. Traveler ids are given for partial refund. Partial refund is supported suppliers are listed here Partial Refund Supported Suppliers. |
items | Array | ✘ | Item Ids that you want to refund of PNR. Currently itemwise refund is not supported from our side. So passing item ids will not bear any effect. |
Refund Response
HTTP/1.1 204 No Content
Cache-Control: no-cache
X-Request-Id: 7ea80f9e-1a8a-4e6c-9058-c54c0fefbc62
X-Runtime: 17.898201
Vary: Origin
Connection: close
In the response, No Content is returned.
Partial Refund Supported Suppliers
Suppliers |
---|
Amadeus |
British Airways |
Post Booking Transactions Overview
After booking, the following workflow demonstrates how to avail post booking service over an existing passenger name record(PNR) through our system:
- Seat Map : Post Booking Seat Map services
- Frequent Flyer Number : Post Booking Frequent Flyer Number
- Services : Post Booking Services
- Form of Payment : Add/Update/Delete Form of Payment
- Flight Exchange : Exchange a Flight
- Phone Number : Add/Update/Delete Phone number of a passenger
- Email : Add/Update/Delete Email of a passenger
- Document : Add/Update/Delete Document of a passenger
- Postal Address : Add/Update/Delete Postal Address of a passenger
- Meal : Add/Update/Delete Meal of a passenger
- Assistance Request : Add/Update/Delete Assistance Request of a passenger
- Remarks : Add/Update/Delete remarks
- Traveler Name Correction : correct a traveler name
- EMD Issue : Issue a EMD
Seat Map
The Seat Map Service in post booking transaction provides support to fetch the seat map for a particular flight segment and to add a seat to a particular flight segment for a particular traveler.
Get Seat Map
The Get Seat Map Entity returns the seat map for a particular flight segment after booking has been made.
Get Seat Map Request
GET /api/segments/4e49f208-1922-4055-bd80-4387406a7785/seat_map HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
This API endpoint allows you to get seat map for a particular flight segment.
You may do this by sending a GET
request to api/segments/:segment_id/seat_map
.
Get Seat Map Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 20
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
{
"origin": "LHR",
"destination": "ZRH",
"seat_map": {
"class": "economy",
"rows": {
"6": {
"wing": false,
"exit": false,
"seats": {
"A": {
"id": "92908939-5c0d-47e9-8618-32c361300d2e",
"chargeable": true,
"infant_restricted": true,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": true,
"child_restricted": null,
},
"B": {
"id": "bb86fe69-f41c-4a7d-b519-8546a29dfa4d",
"chargeable": true,
"infant_restricted": true,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": false,
"child_restricted": false,
},
"C": {
"id": "e0da2e49-6137-4aeb-bce5-324d4517e061",
"chargeable": true,
"infant_restricted": true,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": true,
"window": false,
"child_restricted": false
},
"D": {
"id": "90b77ba3-9278-49c1-ab17-a63f927e32c9",
"chargeable": true,
"infant_restricted": false,
"occupied": true,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": true,
"window": false,
"child_restricted": false
},
"E": {
"id": "977d8094-cfc9-4e7d-88ae-0c9f76c9ae69",
"chargeable": true,
"infant_restricted": false,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": false,
"child_restricted": false
},
"F": {
"id": "c941d14a-3c4b-45d5-9f80-1a0a868991a0",
"chargeable": true,
"infant_restricted": false,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": true,
"child_restricted": true
}
}
},
"7": {
"wing": false,
"exit": false,
"seats": {
"A": {
"id": "c664b233-8c4d-4de0-b814-f3b46e3e4ac7",
"chargeable": true,
"infant_restricted": true,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": true,
"child_restricted": true
},
"B": {
"id": "792ca73d-55c4-4e02-abe0-de7235075681",
"chargeable": true,
"infant_restricted": true,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": false,
"child_restricted": true
},
"C": {
"id": "5f2ec530-4896-4391-82d4-50a56bd18b6d",
"chargeable": true,
"infant_restricted": true,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": true,
"window": false,
"child_restricted": false
},
"D": {
"id": "d2a2a948-303f-4dc7-9d52-3c676eeb4174",
"chargeable": true,
"infant_restricted": false,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": true,
"window": false,
"child_restricted": true,
},
"E": {
"id": "3f0d8d6a-0e07-46a4-96e8-8f8b7b3df223",
"chargeable": true,
"infant_restricted": false,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": false,
"child_restricted": false
},
"F": {
"id": "8b79860a-2c38-419c-a14b-550a5b922037",
"chargeable": true,
"infant_restricted": false,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": true,
"child_restricted": true
}
}
},
"8": {
"wing": false,
"exit": false,
"seats": {
"A": {
"id": "510b34da-cdbf-455c-ac66-31bbd6aa1ff8",
"chargeable": true,
"infant_restricted": true,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": true,
"child_restricted": true
},
"B": {
"id": "6fe066bc-be1d-488a-9e2a-7c785ff0fb54",
"chargeable": true,
"infant_restricted": true,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": false,
"child_restricted": false
},
"C": {
"id": "57f69640-4888-47c9-bb96-7710a95205da",
"chargeable": true,
"infant_restricted": true,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": true,
"window": false,
"child_restricted": false,
},
"D": {
"id": "cfc0c5dd-b894-4b1b-9704-3a534ce44b31",
"chargeable": true,
"infant_restricted": false,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": true,
"window": false,
"child_restricted": false,
},
"E": {
"id": "5860bf94-4130-4ea6-86ec-f978ebaf34d5",
"chargeable": true,
"infant_restricted": false,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": false,
"child_restricted": false
},
"F": {
"id": "170ccb75-8e4a-455e-8b85-ee345370cf9b",
"chargeable": true,
"infant_restricted": false,
"occupied": false,
"pricing_info": {
"currency_code": "CHF",
"seat_reservation_price": "25.0"
},
"recline_restricted": false,
"seat_existence": true,
"aisle": false,
"window": true,
"child_restricted": true
}
}
}
}
}
}
Attribute | Type | Description |
---|---|---|
origin |
String | Origin of the flight segment for which the seat map is requested for |
destination |
String | Destination of the flight segment for which the seat map is requested for |
seat_map |
Object | Information related to the seat map of this trip |
seat_map.class |
String | Class of the Seat map |
seat_map.rows |
Object | Row of the seat map, all the details of specific row. |
seat_map.rows.[:row_number] |
Integer | Row number |
seat_map.rows.[:row_number].wing |
Boolean | The value is true if it is a wing seat and vice versa |
seat_map.rows.[:row_number].exit |
Boolean | The value is true if it is a exit seat and vice versa |
seat_map.rows.[:row_number].[:seats] |
Object | The details about the seats of all the column in the row |
seat_map.rows.[:row_number].[:seats][:seat_letter] |
String | The seat number |
seat_map.rows.[:row_number].[:seats][:seat_letter].id |
String | ID of the seat, use it to book this seat on third step |
seat_map.rows.[:row_number].[:seats][:seat_letter].chargeable |
Boolean | The value is true if the seat is not free and you have to pay seat reservation fee. |
seat_map.rows.[:row_number].[:seats][:seat_letter].infant_restricted |
Boolean | The value is true if the seat is infant restricted and vice versa |
seat_map.rows.[:row_number].[:seats][:seat_letter].occupied |
Boolean | The value is true if the seat is not available |
seat_map.rows.[:row_number].[:seats][:seat_letter].pricing_info |
Object | The details about seat reservation fee |
seat_map.rows.[:row_number].[:seats][:seat_letter].pricing_info.currency_code |
String | Currency in which seat price is exposed |
seat_map.rows.[:row_number].[:seats][:seat_letter].pricing_info.seat_reservation_price |
String | Price to reserve the seat |
seat_map.rows.[:row_number].[:seats][:seat_letter].recline _restricted |
Boolean | The value is true if the seat is recline restricted and vice versa |
seat_map.rows.[:row_number].[:seats][:seat_letter].seat_existence |
Boolean | The value is true if there is a seat and vice versa |
seat_map.rows.[:row_number].[:seats][:seat_letter].aisle |
Boolean | The value is true if the seat is an aisle seat and vice versa |
seat_map.rows.[:row_number].[:seats][:seat_letter].window |
Boolean | The value is true if the seat is a window seat and vice versa |
seat_map.rows.[:row_number].[:seats][:seat_letter].child_restricted |
Boolean | The value is true if the seat restricted for child and vice versa |
Add Seat
The Add Seat Map Entity avails us to add a seat, by requesting with row and column number of the seat with a traveller id from the PNR, to a particular flight segment for a particular traveler after booking has been made. Now, we can add multiple seats. Form of payment is an optional field to add a seat and required field for the EMD issue.
Add Seat Request (OLD)
You should consume the new endpoint because this old endpoint is deprecated.
POST /api/segments/52f6d464-a293-4d75-b0a9-94cd76431974/seat_map
POST /api/segments/52f6d464-a293-4d75-b0a9-94cd76431974/seat_map HTTP/1.1
Authorization: Bearer f26ef60fa588389d07d344ea4b0d4527da1389405250bb765e986efc89854128
Accept-Version: v1
Authorization: Bearer b34d2de5bbd5f727a0fae5d555a58fc5fc7cb44349e7a8fabc59ae54118892ec
Content-Type: text/plain; charset=utf-8
{
seats: [
{
"traveler_id": "aeee8d46-9f26-45bb-827b-5220abdf208b",
"seat": "B",
"row": "6"
},
],
form_of_payment: "credit_card",
card_details: {
name: "Davy Jones",
number: "5275009999993833",
type: "master_card",
expiry_date: "12/22",
code: "111",
cardholder_address": {
street: "Some Street",
city: "Some City",
zip: "1337",
country: "SE"
}
}
}
Request Parameters
Below is a list of all available request parameters
Parameter | RQ | Type | Description |
---|---|---|---|
seats |
✔ | Array | An array of seats which can take multiple values of traveler_id, seat and row. |
traveler_id |
✔ | UUID | Traveler ID is the unique identifier of the traveler for whom this service will be booked. |
seat |
✔ | String | Seat Column. Example, A |
row |
✔ | String | Seat Row. Example, 4 |
|
✘ | String | Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata, welltravel_wallet. Default is cash . Please note that some supplies might only support a certain payment method, supplying otherwise will give you a HTTP 422 unprocessable entity error. |
card_details |
✘/✔ | Object | Card details, required if form_of_payment is credit_card |
card_details.name |
✔ | String | Card Holder Name |
card_details.number |
✔ | String | Credit Card Number. Please enter the number as in the card. No space or special character is allowed. |
card_details.type |
✔ | String | Credit Card Type. Possible values: visa , master_card , amex . |
card_details.expiry_date |
✔ | String | Credit Card Expiry Date. Format is: MM/YY . example: 01/19 . |
card_details.code |
✔ | String | Credit Card Code/CVV/CVC |
card_details.bank_name |
✘/✔ | String | The name of the bank. |
card_details.bank_country_code |
✘/✔ | String | The country code of the country in which the bank is located. Usually it is a two or three letters code. |
card_details.cardholder_address |
✘ | Object | Card Holder Address Details |
card_details.cardholder_address.address_name |
✘ | String | Card Holder Address Name. Like: Family Doe |
card_details.cardholder_address.street |
✔ | String | Card Holder Street Name |
card_details.cardholder_address.city |
✔ | String | Card Holder City Code |
card_details.cardholder_address.state |
✘ | String | Card Holder State Name |
card_details.cardholder_address.zip |
✔ | String | Card Holder ZIP Code or Post Code |
card_details.cardholder_address.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code |
Add Seat Response
After requesting for the seat, the seat if available will be reserved for the traveller and will be added to the PNR.
POST
/api/segments/:segment_id/seat_map
This API endpoint allows you to reserve a particular seat for a particular traveler after booking has been made.
HTTP/1.1 201 OK
Content-Type: application/json
X-Total: 20
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
[
{
"id": "LT6TKT",
"version": null,
"flight_segment_id": "4e49f208-1922-4055-bd80-4387406a7785",
"traveler_id": "81cfc605-2ab9-4683-8aa4-2eca00d5ba98",
"seat": {
"id": "bb86fe69-f41c-4a7d-b519-8546a29dfa4d",
"chargeable": true,
"infant_restricted": true,
"occupied": true,
"currency_code": "CHF",
"seat_reservation_price": "25.0",
"recline_restricted": false,
"seat_existence": true,
"row": "6",
"column": "B"
}
},
]
Response Parameters
Key | Type | Description |
---|---|---|
id |
UUID | The unique id of the select result, used for Reserve |
version |
String | Version number. |
flight_segment_id |
UUID | Id of the segment the specific seat belongs to |
traveller_id |
UUID | Id of the traveler the specific seat belongs to. |
seat |
Object | Details of the seat |
seat[:id] |
UUID | ID of the seat |
seat[:chargeable] |
Boolean | The value is true if the seat is not free and you have to pay seat reservation fee. |
seat[:infant_restricted] |
Boolean | The value is true if the seat is infant restricted and vice versa |
seat[:occupied] |
Boolean | The value is true if the seat is not available |
seat[:currency_code] |
String | Currency in which seat price is exposed |
seat[:seat_reservation_price] |
String | Price to reserve the seat |
seat[:recline _restricted] |
Boolean | The value is true if the seat is recline restricted and vice versa |
seat[:seat_existence] |
Boolean | The value is true if there is a seat and vice versa |
seat_map[:row] |
String | Row number of the reserved seat |
seat_map[:column] |
String | Column number of the reserved seat |
Add Seat (NEW)
The Add Seat Map Entity avails us to add a seat, by requesting with row and column number of the seat with a traveller id from the PNR, to a particular flight booking for a particular traveler before booking has been made. Now, we can add multiple seats. Form of payment is an optional field to add a seat and required field for the EMD issue.
Add Seat Request
POST /api/flight_bookings/:flight_booking_id/seat_map
POST /api/flight_bookings/61917ee1-8a7d-49af-a566-adad19f0ae30/seat_map HTTP/1.0
Authorization: Bearer f26ef60fa588389d07d344ea4b0d4527da1389405250bb765e986efc89854128
Accept-Version: v1.1
Authorization: Bearer b34d2de5bbd5f727a0fae5d555a58fc5fc7cb44349e7a8fabc59ae54118892ec
Content-Type: text/plain; charset=utf-8
{
seats: [
{
"traveler_id": "4b32b41f-13d2-41aa-824b-1047f48ac6af",
"segment_id": "3b29352b-7918-4222-a22b-433576832cf3",
"seat": "A",
"row": "8"
},
],
form_of_payment: "cash"
}
Request Parameters
Below is a list of all available request parameters
Parameter | RQ | Type | Description |
---|---|---|---|
seats |
✔ | Array | An array of seats which can take multiple values of traveler_id, seat and row. |
seats[:segment_id] |
✔ | UUID | Traveler ID is the unique identifier of the traveler for whom this service will be booked. |
seats[:traveler_id] |
✔ | UUID | Traveler ID is the unique identifier of the traveler for whom this service will be booked. |
seats[:seat] |
✔ | String | Seat Column. Example, A |
seats[:row] |
✔ | String | Seat Row. Example, 4 |
|
✘ | String | Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata, welltravel_wallet. Default is cash . Please note that some supplies might only support a certain payment method, supplying otherwise will give you a HTTP 422 unprocessable entity error. |
card_details |
✘/✔ | Object | Card details, required if form_of_payment is credit_card |
card_details.name |
✔ | String | Card Holder Name |
card_details.number |
✔ | String | Credit Card Number. Please enter the number as in the card. No space or special character is allowed. |
card_details.type |
✔ | String | Credit Card Type. Possible values: visa , master_card , amex . |
card_details.expiry_date |
✔ | String | Credit Card Expiry Date. Format is: MM/YY . example: 01/19 . |
card_details.code |
✔ | String | Credit Card Code/CVV/CVC |
card_details.bank_name |
✘/✔ | String | The name of the bank. |
card_details.bank_country_code |
✘/✔ | String | The country code of the country in which the bank is located. Usually it is a two or three letters code. |
card_details.cardholder_address |
✘ | Object | Card Holder Address Details |
card_details.cardholder_address.address_name |
✘ | String | Card Holder Address Name. Like: Family Doe |
card_details.cardholder_address.street |
✔ | String | Card Holder Street Name |
card_details.cardholder_address.city |
✔ | String | Card Holder City Code |
card_details.cardholder_address.state |
✘ | String | Card Holder State Name |
card_details.cardholder_address.zip |
✔ | String | Card Holder ZIP Code or Post Code |
card_details.cardholder_address.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code |
metadata |
✘ | Object | Metadata for ancillaries value |
|
✔ | Array | Seats Objects |
metadata.ancillaries.seats.source_identifier |
✔ | String | Item ID in Reservation (ie. booked_seat_id or seat ID from the seat map) |
metadata.ancillaries.seats.order_identifier |
✔ | Integer | Order ID in Agent |
metadata.ancillaries.seats.order_item_reference |
✔ | String | Title of Order Item in Agent (This will be used in AFF transaction page) |
metadata.ancillaries.seats.traveler_reference |
✔ | Integer | Traveler ID in Agent |
Add Seat Response
After requesting for the seat, the seat if available will be reserved for the traveller and will be added to the PNR.
POST
/api/flight_bookings/:flight_booking_id/seat_map
This API endpoint allows you to reserve a particular seat for a particular traveler after booking has been made.
HTTP/1.1 201 OK
Content-Type: application/json
X-Total: 20
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
[
{
"id": "15865-LH1929-8A",
"version": 2,
"flight_segment_id": "3b29352b-7918-4222-a22b-433576832cf3",
"traveler_id": "4b32b41f-13d2-41aa-824b-1047f48ac6af",
"seat": {
"id": "18d52d12-a476-48b1-b1bd-cd59c764014b",
"chargeable": true,
"infant_restricted": true,
"occupied": true,
"currency_code": "CHF",
"seat_reservation_price": "30.0",
"recline_restricted": false,
"seat_existence": true,
"row": "8",
"column": "A"
}
},
]
Response Parameters
Key | Type | Description |
---|---|---|
id |
UUID | The unique id of the select result, used for Reserve |
version |
String | Version number. |
flight_segment_id |
UUID | Id of the segment the specific seat belongs to |
traveller_id |
UUID | Id of the traveler the specific seat belongs to. |
seat |
Object | Details of the seat |
seat[:id] |
UUID | ID of the seat |
seat[:chargeable] |
Boolean | The value is true if the seat is not free and you have to pay seat reservation fee. |
seat[:infant_restricted] |
Boolean | The value is true if the seat is infant restricted and vice versa |
seat[:occupied] |
Boolean | The value is true if the seat is not available |
seat[:currency_code] |
String | Currency in which seat price is exposed |
seat[:seat_reservation_price] |
String | Price to reserve the seat |
seat[:recline_restricted] |
Boolean | The value is true if the seat is recline restricted and vice versa |
seat[:seat_existence] |
Boolean | The value is true if there is a seat and vice versa |
seat_map[:row] |
String | Row number of the reserved seat |
seat_map[:column] |
String | Column number of the reserved seat |
Update Seat
The Update Seat Entity avails us to update a seat, by requesting with row and column number of the seat. You need to provide the id of the seat which you want to update in the endpoint. The seat id can be found in the retrieve response.
Update Seat Request
PATCH /api/seat_map/:seat_id
PATCH /api/seat_map/52f6d464-a293-4d75-b0a9-94cd76431974 HTTP/1.1
Authorization: Bearer f26ef60fa588389d07d344ea4b0d4527da1389405250bb765e986efc89854128
Accept-Version: v1
Authorization: Bearer b34d2de5bbd5f727a0fae5d555a58fc5fc7cb44349e7a8fabc59ae54118892ec
Content-Type: text/plain; charset=utf-8
{
seat: "A",
row: "8",
form_of_payment: "credit_card",
card_details: {
name: "Davy Jones",
number: "5275009999993833",
type: "master_card",
expiry_date: "12/22",
code: "111",
cardholder_address": {
street: "Some Street",
city: "Some City",
zip: "1337",
country: "SE"
}
}
}
Request Parameters
Below is a list of all available request parameters
Parameter | RQ | Type | Description |
---|---|---|---|
seat |
✔ | String | Seat Column. Example, A |
row |
✔ | String | Seat Row. Example, 4 |
|
✘ | String | Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata, welltravel_wallet. Default is cash . Please note that some supplies might only support a certain payment method, supplying otherwise will give you a HTTP 422 unprocessable entity error. |
card_details |
✘/✔ | Object | Card details, required if form_of_payment is credit_card |
card_details.name |
✔ | String | Card Holder Name |
card_details.number |
✔ | String | Credit Card Number. Please enter the number as in the card. No space or special character is allowed. |
card_details.type |
✔ | String | Credit Card Type. Possible values: visa , master_card , amex . |
card_details.expiry_date |
✔ | String | Credit Card Expiry Date. Format is: MM/YY . example: 01/19 . |
card_details.code |
✔ | String | Credit Card Code/CVV/CVC |
card_details.bank_name |
✘/✔ | String | The name of the bank. |
card_details.bank_country_code |
✘/✔ | String | The country code of the country in which the bank is located. Usually it is a two or three letters code. |
card_details.cardholder_address |
✘ | Object | Card Holder Address Details |
card_details.cardholder_address.address_name |
✘ | String | Card Holder Address Name. Like: Family Doe |
card_details.cardholder_address.street |
✔ | String | Card Holder Street Name |
card_details.cardholder_address.city |
✔ | String | Card Holder City Code |
card_details.cardholder_address.state |
✘ | String | Card Holder State Name |
card_details.cardholder_address.zip |
✔ | String | Card Holder ZIP Code or Post Code |
card_details.cardholder_address.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code |
Update Seat Response
After requesting for the specific seat, the seat if available will be updated for the traveller.
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 20
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
[
{
"id": "RDTBXU",
"version": null,
"flight_segment_id": "0a7d38b4-6f86-423e-bb1a-cbb18556b01f",
"traveler_id": "77c547d2-7c5b-4ef9-b7f5-41cd6575be7c",
"seat": {
"id": "DXBJNB-EK761-8A",
"chargeable": false,
"infant_restricted": false,
"occupied": true,
"currency_code": null,
"seat_reservation_price": "0.0",
"recline_restricted": false,
"seat_existence": true,
"row": "8",
"column": "A"
}
}
]
Response Parameters
Key | Type | Description |
---|---|---|
id |
UUID | The unique id of the select result, used for Reserve |
version |
String | Version number. |
flight_segment_id |
UUID | Id of the segment the specific seat belongs to |
traveller_id |
UUID | Id of the traveler the specific seat belongs to. |
seat |
Object | Details of the seat |
seat[:id] |
UUID | ID of the seat |
seat[:chargeable] |
Boolean | The value is true if the seat is not free and you have to pay seat reservation fee. |
seat[:infant_restricted] |
Boolean | The value is true if the seat is infant restricted and vice versa |
seat[:occupied] |
Boolean | The value is true if the seat is not available |
seat[:currency_code] |
String | Currency in which seat price is exposed |
seat[:seat_reservation_price] |
String | Price to reserve the seat |
seat[:recline _restricted] |
Boolean | The value is true if the seat is recline restricted and vice versa |
seat[:seat_existence] |
Boolean | The value is true if there is a seat and vice versa |
seat_map[:row] |
String | Row number of the reserved seat |
seat_map[:column] |
String | Column number of the reserved seat |
Delete Seat
The Delete Seat Entity avails us to delete a seat. You need to provide the id of the seat which you want to delete in the endpoint. The seat id can be found in the retrieve response.
Delete Seat Request
DELETE /api/seat_map/:seat_id
DELETE /api/seat_map/56df59e8-c7b1-4110-aa23-859cc62cc7df HTTP/1.1
Authorization: Bearer f26ef60fa588389d07d344ea4b0d4527da1389405250bb765e986efc89854128
Accept-Version: v1
Content-Type: text/plain; charset=utf-8
Delete Seat Response
After requesting for the deletion of specific seat, the seat will be deleted for the traveller.
HTTP/1.1 204 No Content
Cache-Control: no-cache
X-Request-Id: 81024a46-71dc-4222-b2c3-025e1c03e2b6
X-Runtime: 12.150931
Vary: Origin
Connection: close
We get status 204
No Content in the response.
Frequent Flyer Number
This service provides the functionality to add, update and delete a frequent flyer number(ffn) to a passenger in a PNR in Post Booking.
Add Frequent Flyer Number
POST /api/travelers/dadf3841-2977-403e-99bd-5d9b00f5712f/frequent_flyer_number HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
This API endpoint allows you to add a frequent flyer number to a passenger in a PNR.
You may do this by sending a POST
request to:
api/travelers/:traveler_id/frequent_flyer_number
.
Request Parameters
Below is a list of all available request parameters
Parameter | RQ | Type | Description |
---|---|---|---|
carrier |
✔ | String | Carrier code for which frequent flyer number is valid. i.e ‘BA’, ‘LX’ etc` |
number |
✔ | String | Frequent Flyer Number |
Add Frequent Flyer Number Response
HTTP/1.1 201 Created
Content-Type: application/json
ETag: W/"f446d2939ceb13f39c9ccb30b328be76"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: d28f96e5-a6ed-491c-bf46-c87218bab138
X-Runtime: 4.966928
Vary: Origin
Connection: close
Content-Length: 87
{
"id": "19fbc878-63ce-488d-8988-66145a0eed81",
"carrier": "LX",
"number": "88888888888"
}
Response Parameters | Type | Description |
---|---|---|
id |
UUID | Unique ID for Frequent Flyer Number of traveler |
carrier |
String | Carrier Code for Frequent Flyer Number |
number |
String | Frequent Flyer Number which is a loyalty program offered by an airline |
Update Frequent Flyer Number
PATCH api/frequent_flyer_number/12c87c10-fc2c-4e2e-bc5d-7a5a08af441c HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
This API endpoint allows you to update a frequent flyer number to a passenger in a PNR.
You may do this by sending a PATCH
request to:
api/frequent_flyer_number/:frequent_flyer_number_id
.
Request Parameters
Below is a list of all available request parameters
Parameter | RQ | Type | Description |
---|---|---|---|
carrier |
✔ | String | Carrier code for which frequent flyer number is valid. i.e ‘BA’, ‘LX’ etc` |
number |
✔ | String | Frequent Flyer Number |
Update Frequent Flyer Number Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"carrier": "LX",
"number": "88888888812"
}
Attribute | Type | Description |
---|---|---|
carrier |
String | Carrier Code for Frequent Flyer number |
number |
String | Frequent Flyer Number which is a loyalty program offered by an airline.. |
Delete Frequent Flyer Number
This API endpoint allows you to Delete a frequent flyer number to a passenger in a PNR.
You may do this by sending a DELETE
request to:
/api/frequent_flyer_number/:frequent_flyer_number_id
DELETE /api/frequent_flyer_number/56df59e8-c7b1-4110-aa23-859cc62cc7df HTTP/1.1
Authorization: Bearer f26ef60fa588389d07d344ea4b0d4527da1389405250bb765e986efc89854128
Accept-Version: v1
Authorization: Bearer b34d2de5bbd5f727a0fae5d555a58fc5fc7cb44349e7a8fabc59ae54118892ec
Content-Type: text/plain; charset=utf-8
Delete Frequent Flyer Number Response
After requesting the deletion of a specific frequent flyer number, the frequent flyer number will be deleted for the traveler.
HTTP/1.1 204 No Content
Cache-Control: no-cache
X-Request-Id: 81024a46-71dc-4222-b2c3-025e1c03e2b6
X-Runtime: 12.150931
Vary: Origin
Connection: close
You’ll get status 204
No Content in the response.
Post Booking Services
The Services Entity returns all the services for a particular flight trip or segment and to add a service to a flight trip or segment for a particular traveller after a booking has been made.
Available Services
The Available Services Entity returns all the services for a particular flight trip or segment after a booking has been made.
Available Services Request
GET /api/bookings/8d37de16-ba8d-4689-87cc-3747b06f2788/flight_bookings/ecbcd32e-c24d-44aa-bd79-9343d33bdc04/services HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
This API endpoint allows you to get details about available services for a particular flight.
You may do this by sending a GET
request to api/bookings/:booking_id/flight_bookings/:flight_booking_id/services
.
Available Services Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 20
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
{
"services": [],
"trips": [
{
"origin": "LHR",
"destination": "NRT",
"services": [
{
"id": "54de915f-60aa-4c1a-93d7-27077a4cb5ae",
"meta_identifier": null,
"price": "140.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": "Baggage",
"maximum_scope": "traveler",
"traveler_id": "81cfc605-2ab9-4683-8aa4-2eca00d5ba98",
"name": "UPTO50LB 23KG AND62LI 158LCM"
},
{
"id": "8a07e934-f327-4697-b75d-fbec68b7c180",
"meta_identifier": null,
"price": "140.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": "Baggage",
"maximum_scope": "traveler",
"traveler_id": "aeee8d46-9f26-45bb-827b-5220abdf208b",
"name": "UPTO50LB 23KG AND62LI 158LCM"
}
],
"segments": [
{
"origin": "LHR",
"destination": "ZRH",
"operating_flight_number": "317",
"operating_carrier_code": "LX",
"services": [
{
"id": "d002bfef-8fa9-4622-bafd-c173cd05456f",
"meta_identifier": null,
"price": "140.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": "Baggage",
"maximum_scope": "traveler",
"traveler_id": "81cfc605-2ab9-4683-8aa4-2eca00d5ba98",
"name": "UPTO50LB 23KG AND62LI 158LCM"
},
{
"id": "6bfa7fa2-cbcd-4426-a566-97e6276ca7cc",
"meta_identifier": null,
"price": "140.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": "Baggage",
"maximum_scope": "traveler",
"traveler_id": "aeee8d46-9f26-45bb-827b-5220abdf208b",
"name": "UPTO50LB 23KG AND62LI 158LCM"
}
]
},
{
"origin": "ZRH",
"destination": "NRT",
"operating_flight_number": "160",
"operating_carrier_code": "LX",
"services": [
{
"id": "d84efdf8-fdc2-4831-bd31-5c6b1821563e",
"meta_identifier": null,
"price": "140.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": "Baggage",
"maximum_scope": "traveler",
"traveler_id": "81cfc605-2ab9-4683-8aa4-2eca00d5ba98",
"name": "UPTO50LB 23KG AND62LI 158LCM"
},
{
"id": "ea3e0840-db8d-4cd6-b880-3d821db89b06",
"meta_identifier": null,
"price": "140.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": "Baggage",
"maximum_scope": "traveler",
"traveler_id": "aeee8d46-9f26-45bb-827b-5220abdf208b",
"name": "UPTO50LB 23KG AND62LI 158LCM"
},
{
"id": "50713e7c-42db-4a74-9c7f-c1930d9eccae",
"meta_identifier": null,
"price": "39.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": "Baggage",
"maximum_scope": "traveler",
"traveler_id": "81cfc605-2ab9-4683-8aa4-2eca00d5ba98",
"name": "LOUNGE ACCESS"
},
{
"id": "92c125e2-215b-43cf-bbfd-b5b5e605713e",
"meta_identifier": null,
"price": "39.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": "Baggage",
"maximum_scope": "traveler",
"traveler_id": "aeee8d46-9f26-45bb-827b-5220abdf208b",
"name": "LOUNGE ACCESS"
},
{
"id": "9e85cc26-3f8e-456c-9531-14bf07f464e0",
"meta_identifier": null,
"price": "39.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": "Baggage",
"maximum_scope": "traveler",
"traveler_id": "dfd17670-4daa-4d9a-9616-74011465a7b3",
"name": "LOUNGE ACCESS"
}
]
}
]
}
]
}
Response Parameters
Key | Type | Description |
---|---|---|
services |
Array | These services are available only for the particular booking id |
services.id |
UUID | Id of the Service |
services.meta_identifier |
UUID | Unique Identifier of the service |
services.price |
String | The cost of the service |
services.currency |
String | The currency in which the service fee is being exposed |
services.refundable |
String | Indicator of the service fee is refundable or not |
services.maximum_per_group |
String | Indicates the maximum number services that can be availed per group |
services.group |
String | Name of the Service Group |
services.maximum_scope |
String | Indicates the scope of the service. If the value is traveler, then user can add one service from each group for each passenger. If the value is booking, then user can add one service from each group for whole booking. If the value is null, then user can add multiple service for each passenger. |
trips |
Array | Information about ancillary services about the trips for the particular booking |
trips.origin |
String | Origin of the trips |
trips.destination |
String | Destination of the trips |
trips.services |
Array | These services are available for the current trip |
trips.services.id |
UUID | Id of the Service |
trips.services.meta_identifier |
UUID | Unique Identifier of the service |
trips.services.price |
String | The cost of the service |
trips.services.currency |
String | The currency in which the service fee is being exposed |
trips.services.refundable |
String | Service Fee Refundable information. If it is true, then there will be a refund |
trips.maximum_per_group |
String | Indicates the maximum number services that can be availed per group |
trips.group |
String | Name of the Service Group |
trips.maximum_scope |
String | Indicates the scope of the service. If the value is traveler, then user can add one service from each group for each passenger. If the value is booking, then user can add one service from each group for whole booking. If the value is null, then user can add multiple service for each passenger. |
travelers.id |
UUID | Unique ID of a traveler |
travelers.name |
String | Name of the traveler. Example: John |
trips.segments |
Array | Information about trip segment of the ancillary services about the trips |
trips.segments |
Array | Information about trip segment of the ancillary services about the trips |
trips.segments.origin |
String | Origin airport code for the trip segment |
trips.segments.destination |
String | Destination airport code for the trip segment |
trips.segments.operating_flight_number |
String | Refers to the identifier used in flight schedule, flight number of the operating carrier |
trips.segments.operating_carrier_code |
String | Operating Carrier Code refers to the identifier used in flight schedule, generally the two-character IATA airline designator code |
trips.segments.services |
Array | These services are available for the current trip segment |
trips.segments.services.id |
UUID | Id of the Service |
trips.segments.services.meta_identifier |
UUID | Use this identifier to lookup the service details on Meta. Please refer to ancillary-services. |
trips.segments.services.price |
String | The cost of the service |
trips.segments.services.currency |
String | The currency in which the service fee is being exposed |
trips.segments.services.refundable |
String | Whether the service fee is refundable or not |
trips.segments.maximum_per_group |
String | Indicates the maximum number services that can be availed per group |
trips.segments.group |
String | Name of the Service Group |
trips.segments.maximum_scope |
String | Indicates the scope of the service. If the value is traveler, then user can add one service from each group for each passenger. If the value is booking, then user can add one service from each group for whole booking. If the value is null, then user can add multiple service for each passenger. |
Add Services
The Add Services Entity lets us add multiple services to a flight trip or segment for a particular traveler/travelers after a booking has been made. Now, we can add multiple services. Form of payment is an optional field to add a service and required field for the EMD issue.
Add Services Request
POST /api/bookings/e0e13eb9-233a-4ba2-91de-48a2170d9983/services HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
{
"services":
[
{
"traveler_id": "6daffd37-f8eb-4055-945e-7f8aaedae729",
"service_id": "c4d1964f-e57c-4284-9ccc-dcbf951f6666"
}
],
form_of_payment: "credit_card",
card_details: {
name: "Davy Jones",
number: "5275009999993833",
type: "master_card",
expiry_date: "12/22",
code: "111",
cardholder_address": {
street: "Some Street",
city: "Some City",
zip: "1337",
country: "SE"
}
}
}
This API endpoint allows you to add services to a particular booking.
You may do this by sending a POST
request to api/bookings/:booking_id/services
.
Request Parameters
Below is a list of all available request parameters
Parameter | RQ | Type | Description |
---|---|---|---|
services |
✔ | Array | Details of Service Requested |
traveler_id |
✔ | UUID | Traveler ID is the unique identifier of the traveler for whom this service will be booked |
service_id |
✔ | UUID | Id of the Service |
|
✘ | String | Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata, welltravel_wallet. Default is cash . Please note that some supplies might only support a certain payment method, supplying otherwise will give you a HTTP 422 unprocessable entity error. |
card_details |
✘/✔ | Object | Card details, required if form_of_payment is credit_card |
card_details.name |
✔ | String | Card Holder Name |
card_details.number |
✔ | String | Credit Card Number. Please enter the number as in the card. No space or special character is allowed. |
card_details.type |
✔ | String | Credit Card Type. Possible values: visa , master_card , amex . |
card_details.expiry_date |
✔ | String | Credit Card Expiry Date. Format is: MM/YY . example: 01/19 . |
card_details.code |
✔ | String | Credit Card Code/CVV/CVC |
card_details.bank_name |
✘/✔ | String | The name of the bank. |
card_details.bank_country_code |
✘/✔ | String | The country code of the country in which the bank is located. Usually it is a two or three letters code. |
card_details.cardholder_address |
✘ | Object | Card Holder Address Details |
card_details.cardholder_address.address_name |
✘ | String | Card Holder Address Name. Like: Family Doe |
card_details.cardholder_address.street |
✔ | String | Card Holder Street Name |
card_details.cardholder_address.city |
✔ | String | Card Holder City Code |
card_details.cardholder_address.state |
✘ | String | Card Holder State Name |
card_details.cardholder_address.zip |
✔ | String | Card Holder ZIP Code or Post Code |
card_details.cardholder_address.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code |
Add Services Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 20
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
[
{
"id": "e916e086-89df-4660-88d7-24319645da95",
"meta_identifier": null,
"price": "140.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": "BG",
"maximum_scope": "booking",
"traveler_id": "81cfc605-2ab9-4683-8aa4-2eca00d5ba98",
"name": "UPTO50LB 23KG AND62LI 158LCM"
}
]
Response Parameters
Key | Type | Description |
---|---|---|
id |
UUID | Id of the Service |
meta_identifier |
UUID | Unique Identifier of the service |
price |
String | The cost of the service |
currency |
String | The currency in which the service fee is being exposed |
refundable |
String | Service Fee Refundable information. If it is true, then there will be a refund |
maximum_per_group |
String | Indicates the maximum number services that can be availed per group |
group |
String | Name of the Service Group |
maximum_scope |
String | Indicates the scope of the service. If the value is traveler, then user can add one service from each group for each passenger. If the value is booking, then user can add one service from each group for whole booking. If the value is null, then user can add multiple service for each passenger. |
traveler_id |
UUID | Unique ID of a traveler |
name |
String | Name of the service. |
Update Services
PATCH /api/services/05c6b485-7deb-4a4b-9bd5-eb5a30477085 HTTP/1.1
Authorization: ***** Hidden credentials *****
Accept-Version: v1
{
"new_service_id": “05c6b485-7deb-4a4b-9bd5-eb5a30477081”,
"form_of_payment": "cash",
}
This API endpoint allows you to update service of a passenger in a booking.
You may do this by sending a PATCH
request to:
api/services/:service_id
.
Request Parameters
Below is a list of all available request parameters
Parameter | RQ | Type | Description |
---|---|---|---|
new_service_id |
✔ | Array | Details of Service Requested |
|
✘ | String | Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata, welltravel_wallet. Default is cash . Please note that some supplies might only support a certain payment method, supplying otherwise will give you a HTTP 422 unprocessable entity error. |
card_details |
✘/✔ | Object | Card details, required if form_of_payment is credit_card |
card_details.name |
✔ | String | Card Holder Name |
card_details.number |
✔ | String | Credit Card Number. Please enter the number as in the card. No space or special character is allowed. |
card_details.type |
✔ | String | Credit Card Type. Possible values: visa , master_card , amex . |
card_details.expiry_date |
✔ | String | Credit Card Expiry Date. Format is: MM/YY . example: 01/19 . |
card_details.code |
✔ | String | Credit Card Code/CVV/CVC |
card_details.bank_name |
✘/✔ | String | The name of the bank. |
card_details.bank_country_code |
✘/✔ | String | The country code of the country in which the bank is located. Usually it is a two or three letters code. |
card_details.cardholder_address |
✘ | Object | Card Holder Address Details |
card_details.cardholder_address.address_name |
✘ | String | Card Holder Address Name. Like: Family Doe |
card_details.cardholder_address.street |
✔ | String | Card Holder Street Name |
card_details.cardholder_address.city |
✔ | String | Card Holder City Code |
card_details.cardholder_address.state |
✘ | String | Card Holder State Name |
card_details.cardholder_address.zip |
✔ | String | Card Holder ZIP Code or Post Code |
card_details.cardholder_address.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code |
Update Service Response Parameters
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "e916e086-89df-4660-88d7-24319645da95",
"meta_identifier": null,
"price": "140.0",
"currency": "CHF",
"refundable": null,
"maximum_per_group": null,
"group": null,
"maximum_scope": null,
"traveler_id": "81cfc605-2ab9-4683-8aa4-2eca00d5ba98",
"name": "UPTO50LB 23KG AND62LI 158LCM"
}
]
Key | Type | Description |
---|---|---|
id |
UUID | Id of the Service |
meta_identifier |
UUID | Unique Identifier of the service |
price |
String | The cost of the service |
currency |
String | The currency in which the service fee is being exposed |
refundable |
String | Service Fee Refundable information. If it is true, then there will be a refund |
maximum_per_group |
String | Indicates the maximum number services that can be availed per group |
group |
String | Name of the Service Group |
maximum_scope |
String | Indicates the scope of the service. If the value is traveler, then user can add one service from each group for each passenger. If the value is booking, then user can add one service from each group for whole booking. If the value is null, then user can add multiple service for each passenger. |
traveler_id |
UUID | Unique ID of a traveler |
name |
String | Name of the service. |
Delete Services
This API endpoint allows you to Delete services of a passenger in a PNR.
You may do this by sending a DELETE
request to:
api/services/:service_id
DELETE /api/services/05c6b485-7deb-4a4b-9bd5-eb5a30477085 HTTP/1.1
Authorization: Bearer f26ef60fa588389d07d344ea4b0d4527da1389405250bb765e986efc89854128
Accept-Version: v1
Authorization: Bearer b34d2de5bbd5f727a0fae5d555a58fc5fc7cb44349e7a8fabc59ae54118892ec
Content-Type: text/plain; charset=utf-8
Delete Service Response
After requesting for the deletion of specific service, the service will be deleted for the traveler.
HTTP/1.1 204 No Content
Cache-Control: no-cache
X-Request-Id: 81024a46-71dc-4222-b2c3-025e1c03e2b6
X-Runtime: 12.150931
Vary: Origin
Connection: close
You’ll get status 204
No Content in the response.
Form of Payment
This service allows us to create, update or delete form of payment of a booking in post booking. FOP add/ delete/ update only possible before issue a ticket.
Create Form of Payment
POST api/flight_bookings/:flight_booking_id/form_of_payments
POST api/hotel_bookings/:hotel_booking_id/form_of_payments
POST api/car_bookings/:car_booking_id/form_of_payments
This API endpoint allows us to add form of payment of a particular segment of a booking. Please check FOP Create Supported Suppliers to find out which suppliers support creation of form of payment.
Create FOP Request
POST api/flight_bookings/:flight_booking_id/form_of_payments/ HTTP/1.1
Authorization: Bearer 91153c5cf855f5e814087c6456fcfd48e5cc1f845649759f77ee02a51351a75f
Accept-Version: v1
{
"form_of_payment": "credit_card",
"card_details": {
"name": "Davy Jones",
"number": "5275009999993833",
"type": "master_card",
"expiry_date": "12/20",
"code": "111",
"cardholder_address": {
"address_name": "Some Address",
"street": "Some Street",
"city": "Some City",
"state": "Some State"
"zip": "1337",
"country": "SE"
}
}
}
POST /api/hotel_bookings/:hotel_booking_id/form_of_payments/ HTTP/1.1
Authorization: Bearer 91153c5cf855f5e814087c6456fcfd48e5cc1f845649759f77ee02a51351a75f
Accept-Version: v1
{
"form_of_payment": "credit_card",
"card_details": {
"name": "Davy Jones",
"number": "5275009999993833",
"type": "master_card",
"expiry_date": "12/20",
"code": "111",
"cardholder_address": {
"address_name": "Some Address",
"street": "Some Street",
"city": "Some City",
"state": "Some State"
"zip": "1337",
"country": "SE"
}
}
}
POST /api/car_bookings/:car_booking_id/form_of_payments/ HTTP/1.1
Authorization: Bearer 91153c5cf855f5e814087c6456fcfd48e5cc1f845649759f77ee02a51351a75f
Accept-Version: v1
{
"form_of_payment": "credit_card",
"card_details": {
"name": "Davy Jones",
"number": "5275009999993833",
"type": "master_card",
"expiry_date": "12/20",
"code": "111",
"cardholder_address": {
"address_name": "Some Address",
"street": "Some Street",
"city": "Some City",
"state": "Some State",
"zip": "1337",
"country": "SE"
}
}
}
Request Parameters
Parameter | RQ | Type | Description |
---|---|---|---|
form_of_payment |
✔ | String | Form of Payment. valid values are listed here: Supported Payment Forms |
card_details |
✘/✔ | Object | Card details, required if form_of_payment is credit_card |
card_details.name |
✔ | String | Card Holder Name |
card_details.number |
✔ | String | Credit Card Number. Please enter the number as in the card. No space or special character is allowed. |
card_details.type |
✔ | String | Credit Card Type. Possible values are listed in Supported Cards. |
card_details.expiry_date |
✔ | String | Credit Card Expiry Date. Format is: MM/YY . example: 01/19 . |
card_details.code |
✔ | String | Credit Card Code/CVV/CVC |
card_details.cardholder_address |
✘ | Object | Card Holder Address Details |
card_details.cardholder_address.address_name |
✘ | String | Card Holder Address Name. Like: Family Doe |
card_details.cardholder_address.street |
✔ | String | Card Holder Street Name |
card_details.cardholder_address.city |
✔ | String | Card Holder City Code |
card_details.cardholder_address.state |
✘ | String | Card Holder State Name |
card_details.cardholder_address.zip |
✔ | String | Card Holder ZIP Code or Post Code |
card_details.cardholder_address.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code |
metadata |
✘/✔ | Object | Metadata, required if form_of_payment is welltravel_wallet |
|
✔ | Object | Flight Object |
metadata.flight.source_identifier |
✔ | String | Item ID in Reservation (ie. flight_query_result_id or flight_booking_id) |
metadata.flight.order_identifier |
✔ | Integer | Order ID in Agent |
metadata.flight.order_item_reference |
✔ | String | Title of Order Item in Agent (This will be used in AFF transaction page) |
|
✔ | Array | Seats Objects |
metadata.ancillaries.seats.source_identifier |
✔ | String | Item ID in Reservation (ie. booked_seat_id or seat ID from the seat map) |
metadata.ancillaries.seats.order_identifier |
✔ | Integer | Order ID in Agent |
metadata.ancillaries.seats.order_item_reference |
✔ | String | Title of Order Item in Agent (This will be used in AFF transaction page) |
|
✔ | Array | Services Objects |
metadata.ancillaries.services.source_identifier |
✔ | String | Item ID in Reservation (ie. ancillary_service_id or service_id) |
metadata.ancillaries.services.order_identifier |
✔ | Integer | Order ID in Agent |
metadata.ancillaries.services.order_item_reference |
✔ | String | Title of Order Item in Agent (This will be used in AFF transaction page) |
Create FOP Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 20
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
[
{
"type": "credit_card",
"details": "Davy Jones-5275009999993833-master_card-2020/12"
}
]
Response Parameters
Key | Type | Description |
---|---|---|
type |
String | Form of payment type. It can be cash / credit_card/counter. |
details |
String | Details about the form of payment. |
Update Form of Payment
PATCH /api/form_of_payments/:id HTTP/1.1
This API endpoint allows you to update an existing form of payment of a particular item of a booking. Here id
is the id of that particular form of payment. Please check FOP Update Supported Suppliers to find out which suppliers support form of payment update.
Update FOP Request
PATCH /api/form_of_payments/6fb5ac7b-879f-49bd-9658-f60ad81bcf62 HTTP/1.1
Authorization: Bearer 91153c5cf855f5e814087c6456fcfd48e5cc1f845649759f77ee02a51351a75f
Accept-Version: v1
{
"form_of_payment": "credit_card",
"card_details": {
"name": "Davy Jones",
"number": "5275009999993833",
"type": "master_card",
"expiry_date": "12/20",
"code": "111",
"cardholder_address": {
"address_name": "Some Address",
"street": "Some Street",
"city": "Some City",
"state": "Sone state",
"zip": "1337",
"country": "SE"
}
}
}
Request Parameters
Parameter | RQ | Type | Description |
---|---|---|---|
form_of_payment |
✔ | String | Form of Payment. valid values are listed here: Supported Payment Forms. |
card_details |
✘/✔ | Object | Card details, required if form_of_payment is credit_card |
card_details.name |
✔ | String | Card Holder Name |
card_details.number |
✔ | String | Credit Card Number. Please enter the number as in the card. No space or special character is allowed. |
card_details.type |
✔ | String | Credit Card Type. Possible values are listed in Supported Cards. |
card_details.expiry_date |
✔ | String | Credit Card Expiry Date. Format is: MM/YY . example: 01/19 . |
card_details.code |
✔ | String | Credit Card Code/CVV/CVC |
card_details.cardholder_address |
✘ | Object | Card Holder Address Details |
card_details.cardholder_address.address_name |
✘ | String | Card Holder Address Name. Like: Family Doe |
card_details.cardholder_address.street |
✔ | String | Card Holder Street Name |
card_details.cardholder_address.city |
✔ | String | Card Holder City Code |
card_details.cardholder_address.state |
✘ | String | Card Holder State Name |
card_details.cardholder_address.zip |
✔ | String | Card Holder ZIP Code or Post Code |
card_details.cardholder_address.country |
✔ | String | ISO 3166-1 alpha-2 Issuing Country Code |
metadata |
✘/✔ | Object | Metadata, required if form_of_payment is welltravel_wallet |
|
✔ | Object | Flight Object |
metadata.flight.source_identifier |
✔ | String | Item ID in Reservation (ie. flight_query_result_id or flight_booking_id) |
metadata.flight.order_identifier |
✔ | Integer | Order ID in Agent |
metadata.flight.order_item_reference |
✔ | String | Title of Order Item in Agent (This will be used in AFF transaction page) |
|
✔ | Array | Seats Objects |
metadata.ancillaries.seats.source_identifier |
✔ | String | Item ID in Reservation (ie. booked_seat_id or seat ID from the seat map) |
metadata.ancillaries.seats.order_identifier |
✔ | Integer | Order ID in Agent |
metadata.ancillaries.seats.order_item_reference |
✔ | String | Title of Order Item in Agent (This will be used in AFF transaction page) |
|
✔ | Array | Services Objects |
metadata.ancillaries.services.source_identifier |
✔ | String | Item ID in Reservation (ie. ancillary_service_id or service_id) |
metadata.ancillaries.services.order_identifier |
✔ | Integer | Order ID in Agent |
metadata.ancillaries.services.order_item_reference |
✔ | String | Title of Order Item in Agent (This will be used in AFF transaction page) |
Update FOP Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 20
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
[
{
"type": "cash",
"details": "cash"
},
{
"type": "credit_card",
"details": "Davy Jones-5275009999993833-master_card-2020/12"
}
]
Response Parameters
Key | Type | Description |
---|---|---|
type |
String | Form of payment type. It can be cash / credit_card/ counter |
details |
String | Details about the form of payment. |
Delete Form of Payment
DELETE /api/form_of_payments/:id HTTP/1.1
This API endpoint allows us to delete a form of payment of a particular booking(flight booking, hotel booking or car booking of a booking. Here id
is the unique identifier of that particular form of payment. Please check FOP Delete Supported Suppliers to find out which suppliers support deletion of form of payment.
Delete FOP Request
PATCH /api/form_of_payments/6fb5ac7b-879f-49bd-9658-f60ad81bcf62 HTTP/1.1
Authorization: Bearer 91153c5cf855f5e814087c6456fcfd48e5cc1f845649759f77ee02a51351a75f
Accept-Version: v1
Delete FOP Response
We will get status 204
in response
HTTP/1.1 204 No Content
Cache-Control: no-cache
X-Request-Id: 0c632a65-1017-4414-b5bf-4f24044249ab
X-Runtime: 13.006583
Vary: Origin
Server: WEBrick/1.3.1 (Ruby/2.3.6/2017-12-14)
Date: Mon, 17 Feb 2020 13:33:08 GMT
Connection: close
Supported cards
The available card types for form of payment
are as follows.
Card Types |
---|
visa |
visa_corporate |
master_card |
master_card_corporate |
amex |
amex_corporate |
diners_club |
diners_club_corporate |
uatp |
discover |
discover_corporate |
jcb |
Payment Forms
Please note that some supplies might only support a certain payment method, supplying otherwise will give you a HTTP 422 unprocessable entity
error.
Payment forms |
---|
cash |
credit_card |
iata |
counter |
welltravel_wallet |
Exchange
Flight Exchange workflow allows us to exchange a ticketed PNR with trips with different dates, booking class or origin destination. For this a PNR must be ticketed before performing this operation. This service allows us to exchange a flight booking in post booking.
- Search: Search & fetch flight results for exchange
- Quote: Confirm availability and fetch exchange information
- Exchange: Create a exchange
Every step is required. You can’t leave one out.
Exchange Search Flow
To create a exchange flight search, send a POST
request to /api/bookings/:booking_id/exchange/flight/searches
. We have to provide full trips in the request for exchange search.
It will return the result ID
of the created search.
This ID can be used to fetch the results by sending a GET
request to /api/flights/searches/:id/results
.
Exchange Search Examples
Exchange Search with all parameters
POST /api/bookings/007639e4-49f8-48e4-b2a1-9c6a23431d4a/exchange/flight/searches HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
Content-Type: application/json; charset=utf-8
{
"trips": [
{
"origin": "FRA",
"destination": "TXL",
"date": "2017-12-29",
"cabin_class": "economy",
"departure_time": "10:20"
},
{
"origin": "TXL",
"destination": "FRA",
"date": "2017-12-30",
"cabin_class": "economy",
"departure_time": "15:40"
}
],
"airline_preferences": {
"type": "exclusive",
"carriers": ["EI"]
}
"flexible": true,
"non_stop": true,
"codes": ["EXEL"],
}
Below is a list of all available request parameters
Parameter | RQ | Type | Description |
---|---|---|---|
trips |
✔ | Array | An array of trips, supports up to 9 trips on certain suppliers. Please check your supplier specific details. |
trips.origin |
✔ | String | The origin for this trip. It is a 3 letter code. IATA airport code |
trips.destination |
✔ | String | The destination for this trip. It is a 3 letter IATA airport code |
trips.date |
✔ | String | Date of the trip, in ISO-8601 format |
trips.cabin_class |
✔ | String | The cabin class for this trip |
trips.departure_time |
✘ | String | The starting departure time for this trip. Value should be between 00:01 to 23:59 |
airline_preferences |
✘ | Object | A hash of all preferred Airline Carrier Codes |
airline_preferences.type |
✔ | String | Type of airline preferences. Possible values are exclusive and preferred . If you want to get results from only mentioned carrier code(s), you should choose exclusive as type otherwise it is advised to choose preferred . |
airline_preferences.carriers |
✔ | Array | An Array of carrier Code of Preferences. Two-character IATA-assigned code that identifies a carrier on arrival/departure signs, baggage tags, Global Distribution System (GDS), tickets, etc. Usually it is an alpha code (such as AI for Air India, EI for Air Lingus, and WN for Southwest Airlines) but sometimes it is alphanumeric (such as F9 for Frontier Airlines, 7Z for Laker Airlines, and 5X United Parcel Service). For more information Carrier Code. For example, TP |
flexible |
✘ | Boolean | Flexible of search dates. Please check your supplier specific details. |
non_stop |
✘ | Boolean | true for only non-stop flight. false for all flights. |
codes |
✘ | Array | An array of corporate codes. |
Exchange Search with Minimum Parameters
This is an example for possible minimum request you can do in our system.
POST /api/bookings/007639e4-49f8-48e4-b2a1-9c6a23431d4a/exchange/flight/searches HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
Content-Type: application/json; charset=utf-8
{
"trips": [
{
"origin": "FRA",
"destination": "TXL",
"date": "2018-10-29",
"cabin_class": "economy"
}
],
}
Search Response
After creating the search the system will return an UUID
which points to the search that you just created. You need to use this UUID
in order to fetch the results returned in the search.
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "d51d7770-3046-414a-81e8-2a148414a6db"
}
Parameter | Type | Description |
---|---|---|
id |
UUID | The unique id of the search, use it to fetch the results |
Fetch Search Results
Use the id
from the search response to fetch the results. This endpoint supports pagination.
GET /api/flights/searches/d51d7770-3046-414a-81e8-2a148414a6db/results?page=1&per_page=50&order_by=segment_count&order_direction=asc HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
Request Parameters
Parameter | Required | Description |
---|---|---|
order_by |
✘ | Order the results by departure , arrival , duration , segment_count or total_price , default: total_price |
order_direction |
✘ | Order the results ascending (asc ) or descending (desc ), default: asc |
include_duplicates |
✘ | Whether to include or exclude duplication result. Default is false |
Response Parameters
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 935
X-Total-Pages: 935
X-Per-Page: 1
X-Page: 1
X-Next-Page: 2
[
{
"id": "3537a351-076a-45b1-97d8-a7e354d58f8c",
"source": { "supplier": "galileo", "account": "ACT2", "currency": "USD" },
"fare_calculations": [
{ "passenger_type": "adult", "price": "100.0", "currency": "EUR" },
{ "passenger_type": "child", "price": "80.0", "currency": "EUR" },
{ "passenger_type": "infant", "price": "10.0", "currency": "EUR" }
],
"pricing": {
"flight_price": {
"recommended_selling_price": { "amount": "190.0", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": null, "currency": null }
},
"tax": {
"amount": "103.3",
"currency": "USD",
"source": { "amount": null, "currency": null }
},
"total_price": {
"recommended_selling_price": { "amount": "293.3", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": null, "currency": null }
}
},
"refundable": false,
"penalties": {
"change": { "amount": null, "currency": null },
"cancel": { "amount": null, "currency": null }
},
"apis_data_required": "none",
"reservation_manageable": true,
"free_cancellation_duration_in_minutes": 4290,
"trips": [
{
"ticket_selling_carrier_code": "AB",
"trip_duration_in_minutes": 70,
"origin_code": "FRA",
"origin_timezone": "Europe/Berlin",
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-29T15:00:00",
"arrival_localtime": "2017-12-29T16:10:00",
"destination_offset_in_days": 0,
"destination_code": "TXL",
"stopover_count": 0,
"segments": [
{
"origin_code": "FRA",
"origin_terminal": "2",
"origin_timezone": "Europe/Berlin",
"destination_code": "TXL",
"destination_terminal": null,
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-29T15:00:00",
"arrival_localtime": "2017-12-29T16:10:00",
"operating_carrier_code": "AB",
"operating_flight_number": "6588",
"aircraft_operated_by": "AB",
"marketing_carrier_code": "AB",
"marketing_flight_number": "6588",
"aircraft_type": "320",
"booking_class": "W",
"flight_duration_in_minutes": 70,
"catering": [],
"cabin_class": "economy",
"technical_stop_count": 0,
"air_miles": null,
"wifi": {
"available": true,
"packages": [
{ "amount": "10.0", "currency": "EUR", "volume_in_mbyte": 10 },
{ "amount": "14.0", "currency": "EUR", "volume_in_mbyte": 15 },
{ "amount": "90.0", "currency": "EUR", "volume_in_mbyte": 100 }
]
},
"on_time_in_percentage": 99.8,
"baggage_pieces_included": { "count": 0, "kg_per_piece": null },
"fare": { "brand": "ECONOMY LIGHT", "basis_code": "WNY05RT", "type": "published" }
}
]
},
{
"ticket_selling_carrier_code": "AB",
"trip_duration_in_minutes": 75,
"origin_code": "TXL",
"origin_timezone": "Europe/Berlin",
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-30T13:05:00",
"arrival_localtime": "2017-12-30T14:20:00",
"destination_offset_in_days": 0,
"destination_code": "FRA",
"stopover_count": 0,
"segments": [
{
"origin_code": "TXL",
"origin_terminal": null,
"origin_timezone": "Europe/Berlin",
"destination_code": "FRA",
"destination_terminal": "2",
"destination_timezone": "Europe/Berlin",
"departure_localtime": "2017-12-30T13:05:00",
"arrival_localtime": "2017-12-30T14:20:00",
"operating_carrier_code": "AB",
"operating_flight_number": "6585",
"aircraft_operated_by": "AB",
"marketing_carrier_code": "AB",
"marketing_flight_number": "6585",
"aircraft_type": "320",
"booking_class": "W",
"flight_duration_in_minutes": 75,
"catering": [],
"cabin_class": "economy",
"technical_stop_count": 0,
"air_miles": null,
"wifi": { "available": null, "packages": null },
"on_time_in_percentage": null,
"baggage_pieces_included": { "count": 1, "kg_per_piece": 23 },
"fare": { "brand": "ECONOMY LIGHT", "basis_code": "WNY05RT", "type": "published" }
}
]
}
]
},
]
Key | Type | Description |
---|---|---|
id |
UUID | The unique id of the search result, used for Select and Reserve |
source |
Object | Information about the source of the result |
source.supplier |
String | The supplier on which this result has been found |
source.account |
String | The account on which the result has been found |
source.currency |
String | The currency of the result returned from the supplier |
fare_calculations |
Array | Describes how the flight price (not the total price) has been calculated for ONE passenger |
fare_calculations.passenger_type |
String | Type of passenger. Example: adult , child or infant |
fare_calculations.price |
String | Price for one passenger for the specific type to make reservation |
fare_calculations.currency |
String | The currency in which the price is displayed |
pricing |
Object | Detailed Pricing Information |
pricing.flight_price |
Object | Detailed Flight Price Information |
pricing.flight_price.recommended_selling_price |
Object | Detailed information about the price of the room we recommend to use as selling price |
pricing.flight_price.recommended_selling_price.amount |
String | The price of the room/rooms we recommend to use as selling price |
pricing.flight_price.recommended_selling_price.currency |
String | The currency of the price of the room we recommend to use as selling price |
pricing.flight_price.purchase_price |
Object | Detailed information about the price of the trip you will have to pay |
pricing.flight_price.purchase_price.amount |
String | The price of the journey you will have to pay |
pricing.flight_price.purchase_price.currency |
String | The currency of the price of the trip you will have to pay |
pricing.flight_price.source |
Object | Detailed information about the price of the journey you will have to pay for the default currency of the IPCC |
pricing.flight_price.source.amount |
String | The price of the journey you will have to pay |
pricing.flight_price.source.currency |
String | Default currency in which the pricing is being exposed |
pricing.tax |
Object | Tax related Information |
pricing.tax.amount |
String | the amount of tax to be paid |
pricing.tax.currency |
String | Currency in which the tax has been exposed |
pricing.tax.source |
Object | Tax in IPCC’s default currency related information |
pricing.tax.source.amount |
String | The tax you have to pay in terms of default currency |
pricing.tax.source.currency |
String | Default Currency of the IPCC |
pricing.total_price |
Object | Information related to the total price of the Flight |
pricing.total_price.recommended_selling_price |
Object | Information related to the total price of the trip including tax we recommend you to use as selling price |
pricing.total_price.recommended_selling_price.amount |
String | The total price of the result we recommend you to use as selling price |
pricing.total_price.recommended_selling_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price.purchase_price |
Object | Detailed information about the total purchase price |
pricing.total_price.purchase_price.amount |
String | The price of the journey including tax you will have to pay |
pricing.total_price.purchase_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price.source |
Object | Detailed information about the total price of the journey you will have to pay for the default currency of the IPCC |
pricing.total_price.source.amount |
String | The total price of the journey you will have to pay for the default currency of the IPCC |
pricing.total_price.source.currency |
String | Default currency in which the pricing is being exposed |
refundable |
Boolean | Booking Refund Information |
penalties |
Object | The detailed information about penalties for cancelling the booking |
penalties.change |
Object | The information about the penalty for changing the flight booking. It can be changing the dates, destinations, or times. |
penalties.change.amount |
String | The penalty fee for changing the flight booking |
penalties.change.currency |
String | The currency in which the penalty fee is being exposed |
penalties.cancel |
Object | The information about the penalty for cancelling the flight booking |
penalties.cancel.amount |
String | Cancellation fee |
penalties.cancel.currency |
String | The currency in which the cancellation fee is being exposed |
apis_data_required |
String | Exposes if advanced passer information has to be required, see APIS data for more details |
reservation_manageable |
Boolean | Marks if it is possible to modify a reservation of this result from our API |
fare_rule |
Boolean | Marks if fare rules available or not for this flight. |
free_cancellation_duration_in_minutes |
Integer | Total duration of the time for free cancellation of the flight in minutes. For example, 75 |
trips |
Array | All the trip information about the flight |
trips.ticket_selling_carrier_code |
String | Carrier Code of the ticket for the trip. It is two letter code. For example, BA |
trips.trip_duration_in_minutes |
Integer | Total duration of the flight trip expressed in minutes. For example, 75 |
trips.origin_code |
String | The airport code of the origin of the trip. For example, for a flight from Madrid to NewYork, the origin code will be MAD |
trips.origin_timezone |
String | The timezone of the place where the flight trip will take off. For example, Europe/Berlin |
trips.destination_timezone |
String | The timezone of the place where the flight trip will land. For example, Europe/Berlin |
trips.departure_localtime |
String | The local time of the airport at the time of departure |
trips.arrival_localtime |
String | The local time of the airport at the time of arrival |
trips.destination_offset_in_days |
Integer | The number of days required to reach the destination |
trips.destination_code |
String | The airport code of the destination of the trip. For example, for a flight from Madrid to NewYork, the origin code will be JFK |
trips.stopover_count |
Integer | The number of stopovers for the whole trip |
trips.segments |
String | Information about the segments of the trip |
trips.segments.origin_code |
String | The origin airport code for the segment |
trips.segments.origin_timezone |
String | The local timezone of the origin airport of the segment |
trips.segments.destination_code |
String | The airport code of the destination for this segment |
trips.segments.destination_timezone |
String | The timezone of the destination airport |
trips.segments.departure_localtime |
String | The local time of the airport at the time of departure for this segment |
trips.segments.arrival_localtime |
String | The local time of the airport at the time of arrival |
trips.segments.operating_carrier_code |
String | Operating Carrier Code refers to the identifier used in flight schedule, generally the two-character IATA airline designator code |
trips.segments.operating_flight_number |
String | Refers to the identifier used in flight schedule, flight number of the operating carrier |
trips.segments.aircraft_operated_by |
String | Refer to the identifier for the aircraft operated by the operating carrier |
trips.segments.marketing_carrier_code |
String | Refers to the ticket selling carrier |
trips.segments.aircraft_type |
String | Type of the aircraft for this trip segment. |
trips.segments.booking_class |
String | Indicates Travel Class. Usually the first letter of the fare basis code. For example, ‘O’ |
trips.segments.flight_duration_in_minutes |
Integer | Total duration of the flight trip expressed in minutes. For example, 75 |
trips.segments.catering |
Array | The kind of catering that will be offered on this flight, see catering for more details |
trips.segments.cabin_class |
String | Refers to the quality of the cabin for this trip segment.See Cabin Class for more details |
trips.segments.technical_stop_count |
Integer | The number of technical stop will be taken by the aircraft. A technical stop most commonly used to refuel the aircraft, to make unexpected essential repairs or to respond to some emergency need to land the aircraft. No traffic is unloaded or loaded during a technical stop. |
trips.segments.air_miles |
String | A nautical mile used as a measure of distance flown by aircraft. |
trips.segments.wifi |
Object | Information related to the wifi connection for this trip segment |
trips.segments.wifi.available |
Boolean | The availability of wifi |
trips.segments.wifi.packages |
Array | Details about the wifi packages of this airline |
trips.segments.wifi_packages.amount |
String | The cost of the wifi package |
trips.segments.wifi_packages.currency |
String | The currency in which the cost of wifi package has ben exposed |
trips.segments.wifi_packages.volume_in_mbyte |
String | The volume in megabyte of wifi package is included |
trips.segments.on_time_in_percentage |
String | The percentage of punctuality of this flight of this trip segment |
trips.segments.baggage_pieces_included |
Object | The default included baggage, if not specified differently |
trips.segments.baggage_pieces_included.count |
Integer | The count of included baggage pieces |
trips.segments.baggage_pieces_included.kg_per_piece |
Integer | The weight allowed for the included baggage piece |
trips.segments.fare |
String | Information related to fare |
trips.segments.fare.brand |
String | The brand of the fare. For example, ECONOMY LIGHT |
trips.segments.fare.basis_code |
String | A fare basis code is an alphabetic or alpha-numeric code used by airlines to identify a fare type and allow airline staff and travel agents to find the rules applicable to that fare. For example, WNY05RT |
trips.segments.fare.type |
String | The fare type, see fare type for more details |
Exchange Quote
This API endpoint allows you to get details about exchanging the existing flight booking with a particular flight from exchange search results.
You may do this by sending a GET request to api/bookings/:booking_id/exchange/flight/results/:result_id/quote
.
Exchange Quote Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Total: 20
X-Total-Pages: 1
X-Per-Page: 250
X-Page: 1
{
"booking_id": "007639e4-49f8-48e4-b2a1-9c6a23431d4a",
"result_id": "94bbe4fc-9ebe-4b2b-b3b2-baec2663bd19",
"quote_id": "4b91a9de-cd24-4dda-97e4-406c50b8571b",
"supplier": "lh_group",
"account": "ACT5",
"passengers": {
"adults": 1,
"children": 0,
"infants": 0
},
"pricing": {
"flight_price": {
"recommended_selling_price": {
"amount": "61.0",
"currency": "CHF"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "61.0",
"currency": "CHF"
}
},
"tax": {
"amount": "44.0",
"currency": "CHF",
"source": {
"amount": "44.0",
"currency": "CHF"
}
},
"total_price_without_penalty": {
"recommended_selling_price": {
"amount": "105.0",
"currency": "CHF"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "105.0",
"currency": "CHF"
}
},
"penalty": {
"amount": "80.0",
"currency": "CHF"
},
"total_price_with_penalty": {
"recommended_selling_price": {
"amount": "185.0",
"currency": "CHF"
},
"purchase_price": {
"amount": null,
"currency": null
},
"source": {
"amount": "185.0",
"currency": "CHF"
}
},
"already_paid_amount": {
"amount": null,
"currency": null
},
"payable_amount": {
"amount": null,
"currency": null
}
},
"trips": [
{
"origin": "ZRH",
"destination": "LHR",
"departure_localtime": "2020-07-26T15:30:00",
"arrival_localtime": "2020-07-26T16:20:00",
"segments": [
{
"origin": "ZRH",
"destination": "LHR",
"departure_localtime": "2020-07-26T15:30:00",
"arrival_localtime": "2020-07-26T16:20:00",
"operating_flight_number": "324",
"operating_carrier_code": "LX",
"marketing_flight_number": "324",
"marketing_carrier_code": "LX"
}
]
}
],
Response Parameters
Key | Type | Description |
---|---|---|
booking_id |
UUID | Unique ID for the booking |
result_id |
UUID | Unique ID for the search result |
quote_id |
UUID | Unique ID for the exchange |
supplier |
String | Supplier name |
account |
String | Account used for booking |
passengers |
Object | Passenger count information |
passengers.adults |
Integer | Number of adults |
passengers.children |
Integer | Number of children |
passengers.infants |
Integer | Number of infants |
pricing |
Object | Detailed Pricing Information |
pricing.flight_price |
Object | Detailed Flight Price Information |
pricing.flight_price.recommended_selling_price |
Object | Detailed information about the price of the flight we recommend to use as selling price |
pricing.flight_price.recommended_selling_price.amount |
String | The price of the flight we recommend to use as selling price |
pricing.flight_price.recommended_selling_price.currency |
String | The currency of the price of the flight we recommend to use as selling price |
pricing.flight_price.purchase_price |
Object | Detailed information about the price of the trip you will have to pay |
pricing.flight_price.purchase_price.amount |
String | The price of the journey you will have to pay |
pricing.flight_price.purchase_price.currency |
String | The currency of the price of the trip you will have to pay |
pricing.flight_price.source |
Object | Detailed information about the price of the journey you will have to pay for the default currency of the IPCC |
pricing.flight_price.source.amount |
String | The price of the journey you will have to pay |
pricing.flight_price.source.currency |
String | Default currency in which the pricing is being exposed |
pricing.tax |
Object | Tax related Information |
pricing.tax.amount |
String | the amount of tax to be paid |
pricing.tax.currency |
String | Currency in which the tax has been exposed |
pricing.tax.source |
Object | Tax in IPCC’s default currency related information |
pricing.tax.source.amount |
String | The tax you have to pay in terms of default currency |
pricing.tax.source.currency |
String | Default Currency of the IPCC |
pricing.total_price_without_penalty |
Object | Information related to the total price of the Flight without penalty for exchange |
pricing.total_price_without_penalty.recommended_selling_price |
Object | Information related to the total price of the trip including tax without penalty we recommend you to use as selling price |
pricing.total_price_without_penalty.recommended_selling_price.amount |
String | The total price without penalty of the result we recommend you to use as selling price |
pricing.total_price_without_penalty.recommended_selling_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price_without_penalty.purchase_price |
Object | Detailed information about the total purchase price without penalty |
pricing.total_price_without_penalty.purchase_price.amount |
String | The price of the journey including tax you will have to pay without penalty |
pricing.total_price_without_penalty.purchase_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price_without_penalty.source |
Object | Detailed information about the total price of the journey you will have to pay without penalty for the default currency of the IPCC |
pricing.total_price_without_penalty.source.amount |
String | The total price of the journey you will have to pay without penalty for the default currency of the IPCC |
pricing.total_price_without_penalty.source.currency |
String | Default currency in which the pricing is being exposed |
pricing.penalty |
Object | Detailed information about the penalty for exchange |
pricing.penalty.amount |
String | The amount of penalty for exchange |
pricing.penalty.currency |
String | The currency of penalty for exchange |
pricing.total_price_with_penalty |
Object | Information related to the total price of the Flight with penalty for exchange |
pricing.total_price_with_penalty.recommended_selling_price |
Object | Information related to the total price of the trip including tax with penalty we recommend you to use as selling price |
pricing.total_price_with_penalty.recommended_selling_price.amount |
String | The total price with penalty of the result we recommend you to use as selling price |
pricing.total_price_with_penalty.recommended_selling_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price_with_penalty.purchase_price |
Object | Detailed information about the total purchase price with penalty |
pricing.total_price_with_penalty.purchase_price.amount |
String | The price of the journey including tax you will have to pay with penalty |
pricing.total_price_with_penalty.purchase_price.currency |
String | Currency in which the pricing has been exposed |
pricing.total_price_with_penalty.source |
Object | Detailed information about the total price of the journey you will have to pay with penalty for the default currency of the IPCC |
pricing.total_price_with_penalty.source.amount |
String | The total price of the journey you will have to pay with penalty for the default currency of the IPCC |
pricing.total_price_with_penalty.source.currency |
String | Default currency in which the pricing is being exposed |
pricing.already_paid_amount |
Object | Detailed information about the amount already paid |
pricing.already_paid_amount.amount |
String | The total price already paid |
pricing.already_paid_amount.currency |
String | Currency of the price already paid |
pricing.payable_amount |
Object | Detailed information about payment amount requirement |
pricing.payable_amount.amount |
String | The total additional price need to pay |
pricing.payable_amount.currency |
String | Currency of the additional price |
trips |
Array | Information about trips for the exchanged booking |
trips.origin |
String | Origin of the trips |
trips.destination |
String | Destination of the trips |
trips.departure_localtime |
String | The local time of the airport at the time of departure for this trip |
trips.arrival_localtime |
String | The local time of the airport at the time of arrival for this trip |
trips.segments |
Array | Information about trip segment of the trips |
trips.segments.origin |
String | Origin airport code for the trip segment |
trips.segments.destination |
String | Destination airport code for the trip segment |
trips.segments.departure_localtime |
String | The local time of the airport at the time of departure for this segment |
trips.segments.arrival_localtime |
String | The local time of the airport at the time of arrival for this segment |
trips.segments.operating_flight_number |
String | Refers to the identifier used in flight schedule, flight number of the operating carrier |
trips.segments.operating_carrier_code |
String | Operating Carrier Code refers to the identifier used in flight schedule, generally the two-character IATA airline designator code |
trips.segments.marketing_flight_number |
String | Refers to the identifier used in flight schedule, flight number of the marketing carrier |
trips.segments.marketing_carrier_code |
String | Refers to the ticket selling carrier |
Exchange
Finally, to perform the exchange, send a PATCH
request to /api/bookings/:booking_id
.
It returns the details of exchanged booking.
PATCH /api/bookings/:booking_id HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1
{
"quote_id": "8b19c5c1-e26b-428b-a655-1c2d01cb0e31",
"form_of_payment": "credit_card",
"card_details":
{
"name": "Davy Jones",
"number": "5275009999993833",
"type": "master_card",
"expiry_date": "12/20",
"code": "111",
"cardholder_address":
{
"street": "Some Street",
"city": "Some City",
"zip": "1337",
"country": "SE"
}
}
}
Request Parameters
Parameter | Required | Description |
---|---|---|
quote_id |
✔ | quote_id got from exchange quote API |
|
✘ | String |
card_details |
✘/✔ | Object |
card_details.name |
✔ | String |
card_details.number |
✔ | String |
card_details.type |
✔ | String |
card_details.expiry_date |
✔ | String |
card_details.code |
✔ | String |
card_details.bank_name |
✘/✔ | String |
card_details.bank_country_code |
✘/✔ | String |
card_details.cardholder_address |
✘ | Object |
card_details.cardholder_address.address_name |
✘ | String |
card_details.cardholder_address.street |
✔ | String |
card_details.cardholder_address.city |
✔ | String |
card_details.cardholder_address.state |
✘ | String |
card_details.cardholder_address.zip |
✔ | String |
card_details.cardholder_address.country |
✔ | String |
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ABC123",
"supplier": "galileo",
"account": "ACT1",
"creator": "ACT1",
"created_at": "2017-03-01T11:31:31.176+00:00",
"travelers": [
{
"id": "K1JBNmNCRGhUNjZJQnFQN2xxTTgzQT09",
"type": "adult",
"name_prefix": "mr",
"first_name": "Peter",
"middle_name": null,
"last_name": "Smith",
"seats" : [
{
"segment_id": "941d987f-186d-492e-8be4-0189a89916b0",
"row": 26,
"column": "J",
"amount": "51.0",
"currency": "EUR"
}
],
"services":
{
"id": "service_1_id",
"type": "ABAG",
"text": "Paid Associated Baggage",
"amount": "150.0",
"currency": "EUR",
"segment_ids": ["9676aaef-e76e-4110-b339-30c9e6d835ff"],
"hotel_ids": ["9535322c-f543-4179-87eb-d9fd740c98ce"],
"car_ids": ["b03a0940-b650-4a13-a5df-57ec22e03119"],
"ssr_code": "ABAG",
"description": "UPTO50LB 23KG AND62LI 158LCM",
"description_human": "Additional bag up to 23 kilogramm",
"service_type": "Baggage",
"category": "bag",
"image_urls":
{
"small": "/media/W1siZiIsIjIwMTcvMDEvMTYvOThxM3N2ejZjNV9wdWcuanBnIl1d?sha=87535f0efb7bc55e",
"medium": "/media/W1siZiIsIjIwMTcvMDEvMTYvMzNrNjg3MnMzNV9wdWcuanBnIl1d?sha=86400b5e1115a328",
"large": "/media/W1siZiIsIjIwMTcvMDEvMTYvMThrcXNiYzg0Zl9wdWcuanBnIl1d?sha=3d4e705297aba62a",
},
"refundable_until": nil,
}
"frequent_flyer_number": [],
"phone_numbers": [
{ "type": null, "number": "0041435508800" }
],
"email_addresses": [],
"postal_addresses": []
}
],
"flight_bookings": [
{
"id": "TENRNFhE",
"ticket_selling_carrier_code": "BA",
"apis_data_required": "none",
"flight_pricing": {
"flight_price": {
"recommended_selling_price": { "amount": "52.0", "currency": "EUR" },
"purchase_price": { "amount": null, "currency": "EUR" },
"source": { "amount": "55.0", "currency": "CHF" }
},
"tax": {
"amount": "32.79",
"currency": "EUR",
"source": { "amount": null, "currency": null }
},
"total_price": {
"recommended_selling_price": { "amount": "84.79", "currency": "EUR" },
"purchase_price": { "amount": null, "currency": "EUR" },
"source": { "amount": "90.54", "currency": "CHF" }
}
},
"refundable": null,
"penalties": {
"change": { "amount": null, "currency": null },
"cancel": { "amount": null, "currency": null }
},
"segments": [
{
"id": "9e1df0e1-44cd-4e7b-8e01-19659ce0be46",
"status": "confirmed",
"origin_code": "ZRH",
"origin_terminal": null,
"origin_timezone": "Europe/Zurich",
"destination_code": "LCY",
"destination_terminal": null,
"destination_timezone": "Europe/London",
"departure_localtime": "2017-05-15T10:05",
"arrival_localtime": "2017-05-15T10:45",
"operating_carrier_code": "BA",
"operating_flight_number": "8764",
"aircraft_operated_by": "BA",
"marketing_carrier_code": "BA",
"marketing_flight_number": "8764",
"aircraft_type": "E70",
"booking_class": "O",
"flight_duration_in_minutes": 100,
"catering": [],
"technical_stop_count": 0,
"air_miles": "478",
"cabin_class": "economy",
"wifi_packages": [],
"on_time_in_percentage": null,
"baggage_pieces_included": { "count": 1, "kg_per_piece": "23" },
"fare": { "brand": null, "basis_code": "OV2CO", "type": "published" },
"carrier": { "reservation_id": "POPOM9", "eticket_id": null }
}
]
}
],
"train_bookings": [],
"hotel_bookings": [
{
"id": "8dc144ce-74ca-4526-8eb9-4569457de0ec",
"status": "pending",
"accomodation_id": null,
"pricing": {
"room_rate": {
"total": {
"recommended_selling_price": { "amount": "106.0", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": "106.0", "currency": null }
},
"per_night": [
{
"date": "2018-10-10",
"recommended_selling_price": { "amount": "106.0", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": "106.0", "currency": "USD" }
}
]
},
"taxes": {
"amount": null,
"currency": "USD",
"source": { "amount": null, "currency": null },
"details": []
},
"total_price": {
"recommended_selling_price": { "amount": "106.0", "currency": "USD" },
"purchase_price": { "amount": null, "currency": "USD" },
"source": { "amount": "106.0", "currency": null }
}
},
"name": "La Quinta Inn and Suites LAX",
"code": "92447",
"address": {
"street": "5249 West Century Blvd.",
"city": "Los Angeles",
"state": null,
"zip": "USA",
"country": "US"
},
"longitude": "-118.37261",
"latitude": "33.9456",
"stars": null,
"rating": "3",
"rating_source": "galileo",
"description": "\u003cp\u003eOverview\u003cbr\u003eConveniently located less than a mile from one of the world\u0026#39;s busiest airports and within five miles of Manhattan Beach, the ten-story La Quinta Inn \u0026amp; Suites LAX is a welcoming oasis for travel weary guests. The spacious guest rooms and suites feature convenient amenities like free wireless high-speed Internet access and premium cable TV channels. The hotel also features an outdoor swimming pool as well as an on-site restaurant and cocktail lounge.\u003cbr\u003e\u003cbr\u003eLocation\u003cbr\u003eThe hotel is conveniently located less than a mile from LAX Airport and within five miles of Manhattan Beach. Hollywood, Beverly Hills, and downtown Los Angeles are also easily accessible via the 405. Universal Studios is less than 14 miles away, while Disneyland is a short 27-mile drive from the hotel. \u003cbr\u003e\u003cbr\u003eRooms\u003cbr\u003eThe spacious guest rooms and suites feature convenient amenities pillow-top mattresses, like free wireless high-speed Internet access, a coffee maker, free local calls, voicemail, and premium cable TV channels. \u003cbr\u003e\u003cbr\u003eFeatures\u003cbr\u003eThis full-service hotel features an outdoor pool with sundeck, fitness center, and meeting/banquet facilities for up to 300 guests. Wireless high-speed Internet access is available throughout the hotel as well. \u003cbr\u003e\u003cbr\u003eFood \u0026amp; Drink\u003cbr\u003eThe onsite Restaurant serves American cuisine.\u003cbr\u003e\u003cbr\u003eTourist information\u003cbr\u003e3.4 km ti Los Angeles International Airport LAX\u003cbr\u003e22.4 km to Universal Studios\u003cbr\u003e43.2 km to Disneyland\u003c/p\u003e\u003cbr\u003e",
"hotel_facilities": {
"meals_included": "none",
"airport_shuttle": {
"pick_up": null,
"drop_off": null
},
"wifi": null,
"others": [
"bar",
"wired_internet",
"restaurant",
"gym_fitness_centre",
"laundry_facilities",
"indoor_pool",
"telephone",
"television",
"car_parking",
"iron_facilities",
"electric_kettle",
"meeting_room_facilities",
"travel_agency_facilities"
],
"conditions": []
},
"picture_url": "http://ivectortestadmin.jactravel.com/Content/DataObjects/ThirdPartyProperty/Image/ext398/image_397191_v1.jpg",
"room_types": [
{
"no_of_rooms": 1,
"type": "King Double",
"description": null
}
],
"check_in": "2018-10-10",
"check_out": "2018-10-11",
"nights": 1
},
],
"car_bookings": [
{
"id": "51642f29-69ee-4dcb-8654-0412b62fa9af",
"status": 'waitlisted',
"pricing": {
"rate": {
"per_day": {
"recommended_selling_price": {
"amount": null,
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": "USD"
},
"source": {
"amount": null,
"currency": "USD"
}
},
"total": {
"recommended_selling_price": {
"amount": "28.92",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": "USD"
},
"source": {
"amount": null,
"currency": null
}
}
},
"tax": {
"amount": null,
"currency": "USD",
"source": {
"amount": null,
"currency": "USD"
},
"details": []
},
"total_price": {
"recommended_selling_price": {
"amount": "28.92",
"currency": "USD"
},
"purchase_price": {
"amount": null,
"currency": "USD"
},
"source": {
"amount": null,
"currency": null
}
}
},
"refundable": null,
"company_code": "ZI",
"car_code": "Mini",
"pick_up": {
"location": "10 12 SEMLEY PLACE, LONDON VICTORIA,",
"latitude": "51.49198",
"longitude": "-.14977",
"is_airport": false,
"localtime": "2019-06-16T15:00:00"
},
"drop_off": {
"location": "10 12 SEMLEY PLACE, LONDON VICTORIA,",
"latitude": "51.49198",
"longitude": "-.14977",
"is_airport": false,
"localtime": "2019-06-18T15:00:00"
},
"days": 2
}
],
"comments": [],
"post_booking_services": {
"cancel_booking": true,
"add_seat": false,
"queue": {
"place": true,
"remove": true
},
"add_remarks": {
"general": false,
"accounting": true
},
"add_services": {
"associated": false,
"standalone": false
},
"update_travelers": {
"first_name": false,
"last_name": false,
"phone_number": false,
"email_address": false,
"postal_address": false
},
"ticket_issuance": {
"required": false,
"issued_at": "2020-01-20T12:17:00+00:00",
"until": null
},
"emd": {
"supported": false,
"required": false,
"available": false,
"possible_until": null,
"style": "unavailable"
},
"refund": {
"supported": true,
"available": true,
"possible_until": "2020-03-16T19:20:00.000+00:00",
"style": "with_quote"
},
"exchange": {
"supported": false,
"available": false,
"possible_until": null,
"style": "unavailable"
},
"ticket_void": {
"supported": true,
"available": true,
"possible_until": "2020-01-20T23:59:00+00:00"
},
"form_of_payment": {
"add": {
"9e1df0e1-44cd-4e7b-8e01-19659ce0be46": true,
"8dc144ce-74ca-4526-8eb9-4569457de0ec": false,
"51642f29-69ee-4dcb-8654-0412b62fa9af": true,
},
"update": {
"9e1df0e1-44cd-4e7b-8e01-19659ce0be46": false,
"8dc144ce-74ca-4526-8eb9-4569457de0ec": true,
"51642f29-69ee-4dcb-8654-0412b62fa9af": true,
},
"delete": {}
}
}
}
Attribute | Description |
---|---|
id |
The ID of a Booking |
booking_id |
Unique ID for the booking |
version |
Version of the booking |
supplier |
Supplier name |
account |
Account used for booking |
creator |
Username used by the agency |
created_at |
Timestamp when booking was created |
travelers |
Detailed information about the travelers |
travelers.id |
Unique ID of a traveler |
travelers.type |
The type of this traveler, see Traveler Type for more details |
travelers.name_prefix |
Name prefix of the traveler. Example mr |
travelers.first_name |
First Name of the traveler. Example: John |
travelers.middle_name |
Middle Name of the driver. Example: Ahmed |
travelers.last_name |
Last Name of the driver. Example: Kabir |
travelers.ticket_number |
Travelers ticket number |
travelers.seats |
Seat Reservation Information about the Traveler |
travelers.seats.segment_id |
Segment Identifier of the Reserved Seat |
travelers.seats.row |
Row Number of the Reserved Seat |
travelers.seats.column |
Column Number of the Reserved Seat |
travelers.seats.amount |
Price of the seat. For free seat, it will be 0.0 . For no seat price provided by the supplier, it will be nil . |
travelers.seats.currency |
Currency of the Price of the seat |
travelers.services |
Service Information about the Traveler |
travelers.services.id |
Service Identifier |
travelers.services.type |
Type of the service |
travelers.services.text |
Description of the service from the supplier |
travelers.services.amount |
Price of the service |
travelers.services.currency |
Currency of the Price of the services |
travelers.services.segment_ids |
An Array containing all the segments identifiers related to the service |
travelers.services.hotel_ids |
Hotel Reservation Information of the Traveler. It contains the hotel segments identifiers |
travelers.services.car_ids |
Vehicle Reservation Information of the Traveler. It contains the vehicle segments identifiers |
travelers.services.ssr_code |
Special Service Request (SSR) code of the service.A Special Service Request (SSR) is a message sent directly to suppliers to communicate traveler preferences, special services needed by a traveler, or of a procedural requirement necessary of the carrier. SSRs include information such as meal preference or special assistance required the traveler. In addition, the SSR can send an alert message back to the agency or travel provider. SSRs can originate with the travel provider asking for service from the carrier or from the carrier asking for information (like a ticket number) from the travel provider. Each SSR uses a four-character IATA code that specifies the type of service requested. These codes and their recommended use are pre-defined by IATA, however, not all suppliers or providers support the use of all SSR codes. |
travelers.services.description |
Description of the service as given by the supplier |
travelers.services.description_human |
Human readable description of the service |
travelers.services.service_type |
Type of the service. For example, Pets , Baggage etc. |
travelers.services.category |
Category of the service |
travelers.services.image_urls |
Holds the URLs to different sizes of the main image. See Images. |
travelers.services.refundable_until |
The date up to which the service can be cancelled free of cost |
travelers.frequent_flyer_number |
Frequent flyer number of traveler |
travelers.phone_numbers |
Traveler’s phone number details |
travelers.phone_numbers.id |
Unique ID of traveler’s phone number |
travelers.phone_numbers.type |
Type of the phone number |
travelers.phone_numbers.number |
Traveler’s phone number |
travelers.email_addresses |
Traveler’s email address |
travelers.email_addresses.id |
Unique ID of traveler’s phone number |
travelers.email_addresses.type |
Type of the phone number |
travelers.email_addresses.address |
Traveler’s phone number |
travelers.postal_addresses |
Details about traveler’s postal code |
travelers.postal_addresses.id |
Unique ID of traveler’s postal code |
travelers.postal_addresses.type |
Travelers postal code types |
travelers.postal_addresses.lines |
Travelers postal code lines |
flight_bookings |
Detailed information about the flight booking |
flight_bookings.id |
Unique ID for flight booking |
flight_bookings.ticket_selling_carrier_code |
Ticket selling carrier code for the booking flight |
flight_bookings.apis_data_required |
Exposes if advanced passer information has to be required, see APIS Data for mor details |
flight_bookings.flight_pricing |
All the information about the cost of the flight |
flight_bookings.flight_pricing.flight_price |
Information related to the price of the the flight |
flight_bookings.flight_pricing.flight_price.recommended_selling_price |
Information about the price of the journey we recommend to use as selling price |
flight_bookings.flight_pricing.flight_price.recommended_selling_price.amount |
The price of the journey we recommend to use as selling price without tax |
flight_bookings.flight_pricing.flight_price.recommended_selling_price.currency |
The currency in which the price of the journey we recommend to use as selling price |
flight_bookings.flight_pricing.flight_price.purchase_price |
Detailed information about the price of the journey you will have to pay |
flight_bookings.flight_pricing.flight_price.purchase_price.amount |
The price of the journey you will have to pay with tax |
flight_bookings.flight_pricing.flight_price.purchase_price.currency |
The currency in which the price of the journey you will have to pay |
flight_bookings.flight_pricing.flight_price.source |
The price of the journey you will have to pay in the IPCC’s default currency |
flight_bookings.flight_pricing.flight_price.source.amount |
The price of the journey you will have to pay in the IPCC’s default currency |
flight_bookings.flight_pricing.flight_price.source.currency |
The currency in which the price of the journey you will have to pay |
flight_bookings.flight_pricing.tax |
Tax Related Information |
flight_bookings.flight_pricing.tax.amount |
The amount of tax you have to pay |
flight_bookings.flight_pricing.tax.currency |
The currency in which the tax is being exposed |
flight_bookings.flight_pricing.tax.source |
Tax Related Information in the IPCC’s default currency |
flight_bookings.flight_pricing.tax.source.amount |
The amount of tax you have to pay in the IPCC’s default currency |
flight_bookings.flight_pricing.tax.source.currency |
The currency in which the tax is being exposed |
flight_bookings.flight_pricing.details |
An Array containing the tax break down of total tax amount |
flight_bookings.flight_pricing.details.code |
Tax Code representing the tax category.It is unique two-lettered code in all caps. |
flight_bookings.flight_pricing.details.amount |
The tax amount for the tax category |
flight_bookings.flight_pricing.details.currency |
The currency of the tax amount |
flight_bookings.flight_pricing.details.description |
Human Readable Description of the tax code representing the tax category as given by the supplier |
flight_bookings.flight_pricing.total_price.recommended_selling_price |
The total price of the flight we recommend you to use as selling price without tax i.e gross price of the flight |
flight_bookings.flight_pricing.total_price.recommended_selling_price.amount |
The price of the journey we recommend to use as selling price without tax |
flight_bookings.flight_pricing.total_price.recommended_selling_price.currency |
The currency in which the price of the journey we recommend to use as selling price |
flight_bookings.flight_pricing.total_price.purchase_price |
The total net price of the flight you will have to pay |
flight_bookings.flight_pricing.total_price.purchase_price.amount |
The price of the journey you will have to pay with tax |
flight_bookings.flight_pricing.total_price.purchase_price.currency |
The currency in which the price of the journey you will have to pay |
flight_bookings.refundable |
Refundable is possible or not. If value is true then possible and if false refundable is not possible. |
flight_bookings.segments |
Detailed information about flight segment |
flight_bookings.segments.status |
Booking Status. Possible values are: confirmed, unconfirmed, pending, closed, not_processed, new, denied, canceled, no_need_status, duplicate, waitlisted, unknown and null |
flight_bookings.segments.catering |
The information about the catering services on this flight segment, see Catering for more details |
flight_bookings.penalties |
Penalty related information of the flight |
flight_bookings.segments.cabin_class |
The cabin class of this trip, see Cabin Class for more details |
flight_bookings.segments.fare.type |
The fare type, see Fare Type for more details |
train_bookings |
Detailed information about the train booking |
hotel_bookings.id |
Unique ID for hotel bookings |
hotel_bookings.status |
Booking Status. Possible values are: confirmed, closed, unconfirmed, pending, not_processed, new, denied, canceled, no_need_status, duplicate, waitlisted, unknown and null |
hotel_bookings.accomodation_id |
Accommodation ID fo the hotel |
hotel_bookings.pricing |
Detailed information of hotel booking pricing |
hotel_bookings.room_rate |
Room Rate Pricing Information |
hotel_bookings.room_rate.total |
Rate for Room for all nights |
hotel_bookings.room_rate.per_night |
Rate for Room as per night basis |
hotel_bookings.taxes |
Tax Related Information |
hotel_bookings.total_price.recommended_selling_price |
Total Recommended Selling Price |
hotel_bookings.total_price.purchase_price |
Total Purchase Price |
hotel_bookings.total_price.source |
Total Source Price |
hotel_bookings.name |
Name of the hotel |
hotel_bookings.code |
The unique code to identify the hotel i.e Hotel Code |
hotel_bookings.address |
The address of the hotel |
hotel_bookings.address.street |
The name of the street of the hotel location |
hotel_bookings.address.city |
The name of the city of the hotel location |
hotel_bookings.address.state |
State name of the hotel |
hotel_bookings.address.zip |
Zip code of the hotel |
hotel_bookings.address.country |
Country code of the hotel |
hotel_bookings.longitude |
Longitude of the hotel |
hotel_bookings.latitude |
Latitude of the hotel |
hotel_bookings.stars |
Star rating system is a system aims to rate hotels based on the quality and amount of amenities it provides its customers. |
hotel_bookings.rating |
Rating of the hotel |
hotel_bookings.rating_source |
Rating source |
hotel_bookings.description |
Description of the hotel property |
hotel_bookings.hotel_facilities |
Detailed facilities provided by the hotel |
hotel_bookings.hotel_facilities.meals_included |
The list of meals that are complimentary with the hotel booking. See Board Type for details for details |
hotel_bookings.hotel_facilities.airport_shuttle |
Detailed information about airport shuttle facility |
hotel_bookings.hotel_facilities.airport_shuttle.pick_up |
Airport pickup information. See Hotel Facility Availabilities for the details |
hotel_bookings.hotel_facilities.airport_shuttle.drop_off |
Airport drop-off information. See Hotel Facility Availabilities for the details |
hotel_bookings.hotel_facilities.wifi |
Wifi related information. See Hotel Facility Availabilities for the details |
hotel_bookings.hotel_facilities.others |
Others facilities provided by this hotel. See Hotel Facilities for details |
hotel_bookings.hotel_facilities.condition |
Conditions for this hotel. See Hotel Conditions for details |
hotel_bookings.picture_urls |
Picture URLs of the Specific Hotel |
hotel_bookings.room_types |
Detailed information about the particular type of room |
hotel_bookings.room_types.no_of_rooms |
Number of rooms of the same room type |
hotel_bookings.room_types.description |
Description of a particular room type |
hotel_bookings.check_in |
Check in time as per hotel policy. Value could be anything from 00:00 to 23:59 or full_day_check_in |
hotel_bookings.check_out |
Check out time as per hotel policy. Value could be anything from 00:00 to 23:59 |
hotel_bookings.nights |
Total number of nights to stay in the hotel |
car_bookings |
Details about the car booking |
car_bookings.id |
Unique ID for car bookings |
car_bookings.status |
Booking Status. Possible values are: confirmed, closed, unconfirmed, pending, not_processed, new, denied, canceled, no_need_status, duplicate, waitlisted, unknown and null |
car_bookings.pricing |
Detailed information of hotel booking pricing |
car_bookings.rate |
Car Rental Rate Pricing Information |
car_bookings.rate.per_day |
Car Rental Rate Pricing Per Day Details |
car_bookings.rate.per_day.recommended_selling_pric |
Information about the cost of car rental we recommend to use as selling price per day |
car_bookings.rate.per_day.recommended_selling_price.amount |
Recommended Car Rental Cost Per Day |
car_bookings.rate.per_day.recommended_selling_price.currency |
Currency of the recommended car rental cost per day |
car_bookings.rate.per_day.purchase_price |
Detailed information about the car rental cost you will have to pay per day |
car_bookings.rate.per_day.purchase_price.amount |
The car rental price with tax per day |
car_bookings.rate.per_day.purchase_price.currency |
The currency of the car rental price with tax per day |
car_bookings.rate.per_day.source |
Detailed information about the car rental cost you will have to pay per day in the IPCC’s default currency |
car_bookings.rate.per_day.source.amount |
The car rental price per day in the IPCC’s default currency |
car_bookings.rate.per_day.source.currency |
The currency of the car rental price per day in the IPCC’s default currency |
car_bookings.rate.total |
Total Car Rental Rate Pricing Details |
car_bookings.rate.total.recommended_selling_price |
Information about the total cost of car rental we recommend to use as selling price |
car_bookings.rate.total.recommended_selling_price.amount |
Recommended Total Car Rental Cost |
car_bookings.rate.total.recommended_selling_price.currency |
Currency of the total recommended car rental cost |
car_bookings.rate.total.purchase_price |
Detailed information about the total car rental cost you will have to pay |
car_bookings.rate.total.purchase_price.amount |
The total car rental price with tax |
car_bookings.rate.total.purchase_price.currency |
The currency of the car rental price with tax per day |
car_bookings.rate.total.source |
Detailed information about the total car rental cost you will have to pay in the IPCC’s default currency |
car_bookings.rate.total.source.amount |
The total car rental price in the IPCC’s default currency |
car_bookings.rate.total.source.currency |
The IPCC’s default currency |
car_bookings.tax |
Tax Related Information |
car_bookings.tax.amount |
Tax amount |
car_bookings.tax.currency |
Currency of the Tax amount |
car_bookings.tax.source |
Tax Related Information in the IPCC’s default currency |
car_bookings.tax.source.amount |
Tax amount in the IPCC’s default currency |
car_bookings.tax.source.currency |
The IPCC’s default currency |
car_bookings.total_price.recommended_selling_price |
Total Recommended Selling Price |
car_bookings.total_price.recommended_selling_price.amount |
Total amount we recommended as selling price |
car_bookings.total_price.recommended_selling_price.currency |
Currency of the Total Recommended Selling Price |
car_bookings.total_price.purchase_price |
Details about total Price of car rental you actually have to pay |
car_bookings.total_price.purchase_price.amount |
Total Price of car rental you actually have to pay |
car_bookings.total_price.purchase_price.currency |
Currency of the Total Purchase Price |
car_bookings.total_price.source |
Information about total price in the IPCC’s default currency |
car_bookings.total_price.source.amount |
Total Price in the IPCC’s default currency |
car_bookings.total_price.source.currency |
IPCC’s default currency |
car_bookings.refundable |
Indicator of whether the car booking is refundable or not. If true, it is refundable otherwise it is non-refundable. If it is null, then there is no information about refund. See Possible Values for more details. |
car_bookings.company_code |
The unique code to identify the car company i.e Company Code |
car_bookings.car_code |
The unique code to identify the car i.e Car Code |
car_bookings.pick_up |
Pick Up related information |