NAV Navbar
HTTP

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:

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:

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:

  1. Search: Search & fetch flight results
  2. Select: Confirm availability and fetch available ancillary services
  3. 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

  1. Request with all parameters
  2. Request with minimum parameters
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.

accounts

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

  1. The number of passenger has to be defined in such a way that total number of passengers/guests would not be more than 9
  2. The number of adults must be greater than number of infants.
  3. There must be at least one adult.
  4. The child has to be younger than 12 years at start of journey.
  5. 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

form_of_payment

String Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata. 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": "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

  1. Request with all parameters
  2. Request with minimum parameters
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.

accounts

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:

  1. Select: Confirm availability and fetch available ancillary services
  2. Reserve: Create a reservation

Search & Book: Hotel

After authentication, you are able to book a Hotel in three steps:

  1. Search: Search & fetch Hotel results
  2. Select: Confirm availability and Fetch the room prices
  3. 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

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

accounts

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

  1. 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)
  2. The number of adults must be greater than number of children.
  3. Total number of rooms should less than or equals to adults
  4. The check-out date must not be before the check-in date
  5. 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.
  6. 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)

form_of_payment

String Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata. 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:

  1. Search: Search & fetch the car rental results
  2. Select: Confirm availability and fetch available services
  3. 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

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

accounts

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)

form_of_payment

String Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata. 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",
  "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"
        }
      ],
      "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": 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",
      "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",
          "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.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.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.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.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.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 Ticket Response
HTTP/1.1 201 Created
Content-Type: application/json

[
  {
    "id": "123456578",
  }
]

Attribute Type Description
Array An array of 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

Issue EMDs (NEW)

POST /api/bookings/:booking_id/emds

EMDs are instantly issued in our flow. But if for some reason instant EMD issuance fails for a specific seats or services in a booking, you may issue the EMDs with this endpoint.

Query Parameters
POST /api/bookings/:booking_id/emds HTTP/1.1
Authorization: Bearer c796d2a2dcad2e38d8156257e91b0deb914f5269866b338cdbaee32898e48db6
Accept-Version: v1

{
  "services": [ "2e2d08a9-8f3c-4e58-981a-f1d6c049a00a" ],
  "seats": [ "2e2d08a9-8f3c-4e58-981a-f1d6c049a001" ],
  form_of_payment: "credit_card",
    card_details: {
      name: "Davy Jones",
      number: "5275009999993833",
      type: "master_card",
      expiry_date: "12/22",
      code: "111",
      cardholder_address": {
        street: "Schaffhauserstrasse 4",
        city: "Winterthur",
        zip: "8400",
        country: "CH"
      }
   }
}


Parameter Required Type Description
services Array Service Ids that you want to Issue EMD of PNR
seats Array Seat Ids that you want to Issue EMD of PNR

form_of_payment

String Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata. 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 Parameters
Attribute Type Description
seats Array An array of Seats object with EMD identifier details
seats.status String Status of the specific seat. It can be either ‘confirmed’ or ‘pending’.
seats.emd_identifier String EMD Identifier of the specific seat
services Array An array of Service object with EMD identifier details
services.status String Status of the specific service. It can be either ‘confirmed’ or ‘pending’.
services.segment_ids Array Array of segment ids the specific service belongs to
services.segment_ids.segment_id UUID Segment Id of the specific service
services.segment_ids.emd_identifier String EMD Identifier of specific service on specific segment

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:

  1. Seat Map : Post Booking Seat Map services
  2. Frequent Flyer Number : Post Booking Frequent Flyer Number
  3. Services : Post Booking Services
  4. Form of Payment : Add/Update/Delete Form of Payment
  5. Flight Exchange : Exchange a Flight
  6. Phone Number : Add/Update/Delete Phone number of a passenger
  7. Email : Add/Update/Delete Email of a passenger
  8. Document : Add/Update/Delete Document of a passenger
  9. Postal Address : Add/Update/Delete Postal Address of a passenger
  10. Meal : Add/Update/Delete Meal of a passenger
  11. Assistance Request : Add/Update/Delete Assistance Request of a passenger
  12. Remarks : Add/Update/Delete remarks
  13. Traveler Name Correction : correct a traveler name

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

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

form_of_payment

String Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata. 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

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

form_of_payment

String Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata. 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

form_of_payment

String Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata. 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

form_of_payment

String Form of Payment. Welltravel Supported Payment options are cash, none, credit_card, iata. 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
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
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

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.

  1. Search: Search & fetch flight results for exchange
  2. Quote: Confirm availability and fetch exchange information
  3. 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
  1. Request with all parameters
  2. Request with minimum parameters
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

form_of_payment

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
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 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 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 a hash containing all the supported add form of payment information for each booking. See Possible Values for more details.
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 hash containing all the supported update form of payment information for each 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 a hash containing all the supported add form of payment information for each booking. See Possible Values for more details. .

Phone Number

This service provides the functionality to add, update and delete phone numbers to a passenger in a PNR in Post Booking.

Add Phone Number

POST /api/travelers/05c6b485-7deb-4a4b-9bd5-eb5a30477085/phone_number HTTP/1.1
Authorization: ***** Hidden credentials *****
Accept-Version: v1

{
  "type": "mobile",
  "number": "41444396031"
}

This API endpoint allows you to add a phone number to a passenger in a PNR.

You may do this by sending a POST request to:

api/travelers/:traveler_id/phone_number.

Request Parameters

Below is a list of all available request parameters

Parameter RQ Type Description
type String The types of phone number. See the types
number String Phone Number
Add Phone Number Response
HTTP/1.1 201 Created
Content-Type: application/json
ETag: W/"f446d2939ceb13f39c9ccb30b328be76"
Cache-Control: max-age=0, private, must-revalidate