Suggest Edits

Introduction

 

Sabre APIs power the travel industry

Powered by the Sabre Platform, Corporate Travel Services allow you to deploy a travel-policy driven shopping and booking experience; combined with intelligent retailing and travel provider preferencing, across mobile and desktop experiences.

This collection of corporate travel focused services are GDS agnostic, including multi-sourced content, that enables end-to-end business travel workflows.

Corporate Travel Service APIs follow the REST standard; a modern, human-friendly technique that's widely supported across different platforms. All request and response bodies, including errors, are coded in JSON format.

Check out the topics below to get an under-the-hood look at our APIs, and how they can work for you.

Need help?

Have a question? We can help in two ways:

UNDER CONSTRUCTION

The Sandbox environment is currently under construction. Full functionality is coming soon!

Suggest Edits

Authentication

 

Contact a designated Sabre Account Representative to sign up for access to the Corporate Travel Services suite of RESTful APIs. Once authorized, follow the instructions in our Getting Started guide to get up and running.

 
Suggest Edits

Environments

 

Discover the multiple environments for consuming the Corporate Travel Services suite of APIs for client development, testing, and production.

Requirements & access

Your Sabre Account Representative grants access to our environments, which are accessed via the following URLs:

Certification/Test

https://api-crt.cert.havail.sabre.com

  • Test APIs before you deploy your application to production
  • View the response format of a specific API
  • Experiment, develop code, and fix bugs
  • Send and cancel test passenger name records (PNRs)

Production

https://api.havail.sabre.com

  • Complete bookings
  • Access ticketless carriers
  • Conduct a complete beta test of your application
  • API support is 24 x 7 x 365

Caution

Cancel any production environment bookings and PNRs created for test purposes. If these bookings are not canceled, you and possibly your customers will be billed by suppliers or other vendors for all associated fees.

Sandbox

UNDER CONSTRUCTION

The Sandbox environment is currently under construction. Full functionality is coming soon!

The sandbox feature on the right side of the screen makes calls to a demo environment, denoted by the host URL http://gtdev02.dev.sabre.com:17000/router/v1/tex/api/catalogs. This host will always return mock data, and is meant only for demo purposes.

When developing with Sabre Platform APIs, ensure to always use one of the host URL environments listed above to call back accurate data.

 
Suggest Edits

Return Codes

v2

 

Every API call returns with a HTTP status code. Some of the return codes indicate success, and others are a sign that an error occurred. This topic explains our approach to return codes, and provides an overview of why they're sent. You'll better understand how to look for return codes received from our system so you can decide how to best handle them in your application.

See the API Reference endpoints for specific return codes.

HTTP status code

Sabre Platform APIs return standard HTTP status codes. In general, status codes are grouped into meaningful ranges:

  • In the 200 range, everything worked as expected.
  • In the 400 range, the application made a bad request, and changing it may result in a successful response.
  • In the 500 range, the API failed to respond correctly.

The following table contains specific detail about individual status codes:

Code
Meaning
Description

200

OK

Successful call. APIs that read data will return it in the response body.

201

OK

Successful call. APIs that create an object will return an identifier in the location response header.

400

Bad Request

The request message has syntax problems. For example, a required field is missing or data is in an invalid format.

404

Not Found

The resource id is invalid (unknown).

422

Unprocessable Entity

The request is syntactically correct, however, it cannot be processed due to semantic problems. For example, an air shop request has a departure date in the past.

500

Internal Server Error

The API did something wrong, or detected a problem that can't be corrected by another application request.

Error format

The response body contains information in the event of an error. Its JSON structure is common between all APIs, and contains the following attributes:

Field
Type
Description

category

string

Indicates the general scenario of the error and suggests a general behavior for similar errors.

type

string

The general class of the error.

description

array

A human-readable message describing what went wrong.

fieldName

string

The value of this field indicates the key under which an object or a value exists in the request.

Example: For the REQUIRED_FIELD_MISSING type, fieldName will indicate what field is required.

fieldPath

string

The value of this field indicates the full path to an object or a value that is the source of an error.

Example: For the REQUIRED_FIELD_MISSING type, fieldPath will indicate a path to a field that is required.

fieldValue

string

The value of this field indicates the value that is the source of an error.

{
    "errors": [
        {
            "category": "BAD_REQUEST",
            "type": "REQUIRED_FIELD_MISSING",
            "description": "may not be null",
            "fieldName": "toAirportCode",
            "fieldPath": "oneWay.toAirportCode",
            "fieldValue": null
        },
        {
            "category": "BAD_REQUEST",
            "type": "REQUIRED_FIELD_MISSING",
            "description": "may not be null",
            "fieldName": "fromAirportCode",
            "fieldPath": "oneWay.fromAirportCode",
            "fieldValue": null
        }
    ]
}

In some errors, a resourceId is provided, which serves as an identifier of the resource that causing the error:

{
    "errors": [
        {
            "category": "INVALID_DATA",
            "type": "INVALID_SUPPLEMENTARY_QUESTION_RESPONSE",
            "description": "Supplementary question response is not valid",
            "resourceId": "12345"
        },
        {
            "category": "MISSING_DATA",
            "type": "MISSING_SUPPLEMENTARY_QUESTION_RESPONSE",
            "description": "Supplementary question response is required to make a booking",
            "resourceId": "6789"
        }
    ]
}

In this example, the response provided for a supplementary question with a resourceId of 12345 does not meet configured constraints. Also, the response for a supplementary question with a resourceId of 6789 is missing.

Error categories and types

Category
Type
Description
HTTP Status Code

BAD_REQUEST

The request is not syntactically correct (doesn't conform to the schema). This usually means there is a bug on the client side sending a bad request.

400

EXACTLY_ONE_FIELD_REQUIRED

Either none of the given fields or more than one were provided. The detailed information about the field is not required for this type of error, but the parent field can be provided to make diagnostics a little easier.

INVALID_VALUE

The value of a given field in the request is not valid. It can be caused by violating a pattern restriction, an invalid date format string, a number exceeding the required range, etc. The information about the missing field should be provided in the siblings: fieldName, fieldPath and fieldValue.

REQUIRED_FIELD_MISSING

The required request field is missing. The information about the missing field should be provided in the siblings: fieldName, fieldPath and fieldValue.

TOO_MANY_FIELDS_PROVIDED

Too many fields were provided. The detailed information about the field is not required for this type of error, but the parent field can be provided to make diagnostics a little easier.

UNPARSEABLE_REQUEST

The provided request is not valid JSON content.

UNAUTHORIZED

The client is not authorized to access these site resources.

403

UNAUTHORIZED_ACCESS

Not authorized to use the site.

RESOURCE_NOT_FOUND

The requested resource or one of the resources required to perform the operation does not exist. The type of the error should indicate what type of resource does not exist.

404

BOOKING_NOT_FOUND

The booking for a given id does not exist.

CART_NOT_FOUND

The requested cart resource does not exist.

CATALOG_NOT_FOUND

The requested catalog resource does not exist.

FARE_RULES_NOT_FOUND

The fare rule for a given id does not exist.

ITINERARY_NOT_FOUND

The requested itinerary does not exist.

PAYMENT_CARD_NOT_FOUND

The card coupled with the provided id does not exist.

SEATMAP_NOT_FOUND

The requested seatmap does not exist.

SEAT_NOT_FOUND

The requested seat does not exist.

SITE_NOT_FOUND

The site with the given name does not exist.

SUPPLEMENTARY_QUESTION_NOT_FOUND

The supplementary question with the given identifier does not exist.

TRAVELER_NOT_FOUND

The requested traveler resource or a traveler needed to perform the operation does not exist.

BAD_CONFIGURATION

The configuration is invalid. This may be a problem with site settings, the traveler profile, etc. This is a client defect and can be fixed by the client's admin.

422

INVALID_PROFILE_ON_SUPPLIER_SIDE

An error occurred while trying to retrieve the profile on the supplier's side.

EXPIRED_DATA

Some data is no longer available. This usually means to go back and repeat some action.

422

CATALOG_EXPIRED

The catalog has expired. Start a new catalog.

FARE_QUOTE_EXPIRED

The fare quote has expired. Start a new catalog.

FARE_RULES_EXPIRED

The fare rules have expired. Start a new catalog.

FLIGHT_NOT_AVAILABLE

The flight is no longer available and another itinerary needs to be selected. The identifier of the flight is returned in the resourceId field.

ITINERARY_EXPIRED

The itinerary has expired. Start a new catalog.

SEATMAP_EXPIRED

The seat map of a seat added to the cart has expired.

INVALID_DATA

The request is syntactically correct, but the provided data is not valid due to a business related validation or due to site specific configuration. All types of errors that belong to this category must be possible to eliminate for the traveler by correcting the data.

422

AIRPORTS_MUST_BE_DIFFERENT

The fromAirportCode and toAirportCode values are equal.

DATES_IN_WRONG_ORDER

One of the flight dates is in the wrong order compared to the other dates of this flight or other flights in the shopping request. For example, the return date is before the departure date.

FARE_LED_SEARCH_PRIORITIES_MUST_BE_DIFFERENT

Some of the fare led search priority values are equal.

FLIGHT_DATE_RANGE_EXCEEDED

The flight date range is either in the past, or is more than the configured number of days in the future.

INVALID_BILLING_ADDRESS

The provided billing data is invalid or was declined by the supplier.

INVALID_LOYALTY

The provided loyalty is invalid or was declined by the supplier.

INVALID_PAYMENT_CARD

Indicates that an invalid payment card was provided.

INVALID_SUPPLEMENTARY_QUESTION_RESPONSE

The provided supplementary question response is not valid. For example, the question required a numeric response, but text was provided.

NOT_A_TEMPLATE_SITE

The provided site is not a template.

PAYMENT_DECLINED

The payment card used during the booking was declined by the supplier.

SUBSITE_ADMIN_NOT_UNIQUE

The administrator user name provided in the create subsite request is already in use for the main site.

SUBSITE_ALREADY_EXISTS

A new subsite cannot be created because a subsite with this name already exists.

SUBSITE_LIMIT_REACHED

A new subsite cannot be added to the site due to the maximum number of allowed subsites limit.

MISSING_DATA

The request is syntactically correct, but some information required to process the request is missing. It's not required in the request schema and in some cases this information may be provided in other ways. For example, in the traveler profile or site configuration. Types that belong to this category provide more detailed information about missing data.

422

MISSING_BILLING_ADDRESS

In order to make a booking, a correct billing address for the payment card is required.

MISSING_FARE_TYPE

The fare type in the shop request is required for this specific subsite.

MISSING_ITINERARY

The booking cannot be made because there is no itinerary in the cart.

MISSING_PAYMENT_FOR_PAID_SEAT

The seat from the booking request is a paid seat, but payment details were not provided in the request.

MISSING_PHONE_NUMBER

In order to make a booking, a phone number must be provided.

MISSING_SUPPLEMENTARY_QUESTION_RESPONSE

A response is required for one of the supplementary questions. The questions missing the responses are located in the resourceId field value.

MISSING_TSA_INFO

In order to make a booking, TSA information must be provided.

POLICY_VIOLATION

The action the traveler is performing is against the policy setup for the site. Types that belong to this category provide more detailed information about the policy violation.

422

AUTHORIZER_REQUIRED

A booking cannot be made since the policy requires authorizer data to be provided along with the booking.

CLASS_OF_SERVICE_NOT_ALLOWED

The class of service provided in the shop request (or the default one if not provided) is not one of allowed classes configured for this subsite.

DEPARTURE_TIME_TOO_CLOSE

The departure time of the flight is less than the minimum time ahead setup in the policy configuration.

FARE_TYPE_NOT_ALLOWED

The fare type provided in the shop request (or the default one if not provided in the request) is not one of allowed fare types configured for this subsite.

ITINERARY_NOT_COMPLIANT_WITH_POLICY

A booking cannot be made since the itinerary is not compliant with the configured policy. The traveler has to rebuild the itinerary to meet policy constraints.

JUSTIFICATION_FOR_AIR_REQUIRED

A booking cannot be made, as a justification must be provided detailing why the booking has an air component.

JUSTIFICATION_FOR_CAR_REQUIRED

A booking cannot be made, as a justification must be provided detailing why the booking has a car component.

JUSTIFICATION_FOR_HOTEL_REQUIRED

A booking cannot be made, as a justification must be provided detailing why the booking has a hotel component.

JUSTIFICATION_FOR_NO_CAR_REQUIRED

A booking cannot be made, as a justification must be provided detailing why the booking does not have a car component.

JUSTIFICATION_FOR_NO_HOTEL_REQUIRED

A booking cannot be made, as a justification must be provided detailing why the booking does not have a hotel component.

NOT_ALLOWED_TO_BOOK_UNDER_DIFFERENT_NAME

A booking cannot be made, as the policy does not allow a different name to be used for the booking.

TRAVEL_PURPOSE_REQUIRED

A booking cannot be made, as the policy requires exemption data to be provided along with the booking.

REQUEST_NOT_ALLOWED

The request is syntactically correct, but the business scenario is not valid. This is a defect present on the client side.

422

BOOKING_ALREADY_CANCELED

Rules retrieved are for a booking that has been canceled.

BOOKING_ALREADY_IN_PROGRESS

A booking is already in progress, and another one cannot be made.

BOOKING_EMPTY_CART

The cart is empty and cannot be booked.

BOOKING_NON_CANCELABLE

The booking cannot be canceled.

DUPLICATED_BOOKING

The booking being made is identical to an earlier attempt. The booking request has been blocked on the supplier side.

DUPLICATES_NOT_ALLOWED

The cart cannot contain duplicated elements

MORE_THAN_ONE_ITINERARY

The cart contains more than one itinerary, and cannot be booked.

MORE_THAN_ONE_RESPONSE_TO_SUPPLEMENTARY_QUESTION

More than one response was provided for a supplementary data question.

MORE_THAN_ONE_SEAT_FOR_FLIGHT

More than one seat for the same flight was added to the cart.

REQUEST_ITEMS_DO_NOT_MATCH_CART_ITEMS

Attempted to book items not in the cart.

SEAT_NOT_SELECTABLE

The seat being added to the cart is non-selectable.

SEAT_WITHOUT_ITINERARY

A seat has been added to the cart without adding a matching itinerary.

SITE_CLOSED

The site is closed, and the client does not have permissions to operate on it.

INTERNAL_SERVER_ERROR

The request caused an unrecognized error on the server side. If possible, more details are provided using the error type.

500

CANNOT_SAVE_BOOKING_DETAILS

Booking details cannot be saved.

INTERNAL_SERVER_ERROR

An unknown internal server error has occurred.

UNABLE_TO_CANCEL

Cannot cancel the given booking.

UNABLE_TO_GET_FARE

Cannot retrieve fare basis for all segments.

 
Suggest Edits

Versioning

 

We post all updates to our Corporate Travel Services APIs in a detailed Change Log. When planning development, it’s important to first check the Change Log to ensure the version you are using is the most current. If your version is not current, plan to migrate your service over to the new version as soon as possible to take advantage of new features and bug fixes.

Each of our Corporate Travel Services APIs is versioned. When any of these APIs are called, an application must include the version in the request URI, in the form of vn, where n represents the version number.

Compatibility

  • Changes to existing API versions: An existing API version will receive fixes and minor changes that expose new behavior when the changes are backward compatible and do not impact clients negatively.
  • New API versions: A new API version will be added when new functionality and major changes are not backward compatible.
  • Multiple concurrent versions: Sabre maintains multiple concurrent versions of an API. Before a version becomes obsolete, Sabre will provide adequate notification, including on the applicable API documentation page, before removing the version from service.
 
 

The Catalog service is used for Shopping functions. Catalog pairs with your application's UI to generate a shopping list of flight options available to the traveler based on search criteria.

 
Suggest Edits

/catalogs/{id}

Gets a catalog of shopping options available to the traveler.

 
gethttp://swagger.ui.host/router/v1/tex/api/catalogs/id

Path Params

id
string
required

The unique identifier of a previously created Catalog to retrieve.

Travel policy violations

Travel Policy violations are returned in the GET Catalogs response.

Violations are reported at the Journey level and the Itinerary level. The Itinerary level contains all violations at the Journey level, and provides a single location to view all violations. Itinerary also allows you to drill down to see where the individual violations are happening. Currently, flight level violations are only reported in the Journey and Itinerary levels.

Response

Name
Type
Description

catalogType

enum

catalogId

string

The unique identifier of the catalog.

request

object

itineraries

object

{
  "catalogType": "FLIGHT_ITINERARY",
  "catalogId": "c23e107e-2b3a-4793-a442-217fdec4dcb2",
  "request": {
    "travelerId": "site-siteNameuser-userName",
    "classOfService": "COACH",
    "shopByPrice": {
      "fareType": "LOWEST_AVAILABLE"
    },
    "oneWay": {
      "fromAirportCode": "YYZ",
      "toAirportCode": "DFW",
      "date": "2018-04-20",
      "time": "13:00"
    }
  },
  "itineraries": [
    {
      "itineraryId": "c23e107e-2b3a-4793-a442-217fdec4dcb2",
      "isSecuredByTSA": true,
      "fare": {
        "negotiated": true,
        "quotedPrice": {
          "baseFare": {
            "amount": 15600,
            "currencyCode": "USD"
          },
          "taxes": [
            {
              "code": "X12",
              "amount": 15600,
              "currencyCode": "USD"
            }
          ],
          "totalTaxes": {
            "amount": 15600,
            "currencyCode": "USD"
          },
          "totalFare": {
            "amount": 15600,
            "currencyCode": "USD"
          }
        },
        "localizedPrice": {
          "baseFare": {
            "amount": 15600,
            "currencyCode": "USD"
          },
          "taxes": [
            {
              "code": "X12",
              "amount": 15600,
              "currencyCode": "USD"
            }
          ],
          "totalTaxes": {
            "amount": 15600,
            "currencyCode": "USD"
          },
          "totalFare": {
            "amount": 15600,
            "currencyCode": "USD"
          }
        }
      },
      "journeys": [
        {
          "journeyId": "string",
          "context": {
            "fromAirportCode": "DFW",
            "toAirportCode": "LAX",
            "date": "2018-04-26",
            "time": "12:00"
          },
          "soldOut": true,
          "flights": [
            {
              "flightId": "c23e107e-2b3a-4793-a442-217fdec4dcb2",
              "fromAirportCode": "DFW",
              "toAirportCode": "LAX",
              "departureDate": "2018-04-26",
              "departureTime": "03:00",
              "arrivalDate": "2018-04-26",
              "arrivalTime": "22:30",
              "marketingAirlineCode": "AA",
              "marketingAirlineName": "American Airlines",
              "operatingAirlineCode": "AA",
              "operatingAirlineName": "American Airlines",
              "flightNumber": 1276,
              "numberOfStops": 0,
              "equipment": {
                "type": 777,
                "name": "Boeing 777"
              },
              "distance": {
                "length": 0,
                "unit": "MILE"
              },
              "durationInMinutes": 125,
              "cabinTypeName": "Coach",
              "fareBasis": "KRA0AWEN",
              "fareBrandName": "SeatAndBag",
              "isAirConnect": false,
              "seatMapId": "SM&FROM_LOWFARE%3A24f47785-ec7e-4d29-9b96-7c94ee8d81c0.-1315553978%3AAA%3A2587%3A0704&site-siteNameuser-userName",
              "fareRulesId": "FR&site-siteNameuser-userName&2696bdcf-7108-457f-bab2-b966ff8088f7.686962979&AA%3A2563%3A2510&7c03d335-b37c-4b02-aad9-8161c53a4bf5.-84724865",
              "agencyPreference": {
                "preferred": true,
                "label": "Company preferred"
              },
              "corporatePreference": {
                "preferred": true,
                "label": "Company preferred"
              },
              "policyViolations": [
                {
                  "type": {
                    "code": 1,
                    "context": "TPV"
                  },
                  "behavior": {
                    "code": 1,
                    "context": "TPV"
                  },
                  "ruleName": "",
                  "fromAirportCode": "DFW",
                  "toAirportCode": "LAX"
                }
              ],
              "customNote": {
                "label": "Not recommended",
                "text": "Flight is not recommended based on frequency of lateness",
                "url": ""
              },
              "airlineConfirmationId": "ADGETD"
            }
          ],
          "policyViolations": [
            {
              "type": {
                "code": 1,
                "context": "TPV"
              },
              "behavior": {
                "code": 1,
                "context": "TPV"
              },
              "ruleName": "",
              "fromAirportCode": "DFW",
              "toAirportCode": "LAX"
            }
          ]
        }
      ],
      "policyViolations": [
        {
          "type": {
            "code": 1,
            "context": "TPV"
          },
          "behavior": {
            "code": 1,
            "context": "TPV"
          },
          "ruleName": "",
          "fromAirportCode": "DFW",
          "toAirportCode": "LAX"
        }
      ],
      "customNotes": [
        {
          "label": "Not recommended",
          "text": "Flight is not recommended based on frequency of lateness",
          "url": ""
        }
      ]
    }
  ]
}

Returns

Code
Meaning
Description

200

Successful Response

Retrieved the catalog object.

403

Bad Request

The API doesn't support, or is unable to recognize, the request made to it.

404

Catalog not found

The requested catalog resource does not exist.

422

Unable to process

Refer to Return Codes for more information.

500

Internal System Error

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/catalogs/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/catalogs/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/catalogs/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/catalogs/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/catalogs/id"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/catalogs/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

/catalogs

Creates a catalog of shopping options available to the traveler. After defining a set of search criteria, completes the shopping request and assigns a unique identifier to the resulting catalog.

 
posthttp://swagger.ui.host/router/v1/tex/api/catalogs

Body Params

travelerId
string
required

The unique identifier of the Traveler making the request.

classOfService
string

The fare class the traveler prefers. Can be COACH, PREMIUM_ECONOMY, BUSINESS, FIRST.

hoursTolerance
integer

The range of allowable hours to search before and after the traveler’s requested flight time.

shopByPrice
object

An object that contains pricing details if shopping by price.

 
shopByPrice.fareType
string

The requested pricing type for the fare, and what restrictions are acceptable. Can be LOWEST_AVAILABLE, NO_ADVANCE_PURCHASE, NO_PENALTY, UNRESTRICTED.

shopByTime
object

An object that contains pricing details if shopping by time.

 
shopByTime.fareType
string

The requested pricing type for the fare, and what restrictions are acceptable. Can be LOWEST_AVAILABLE, NO_ADVANCE_PURCHASE, NO_PENALTY, UNRESTRICTED.

oneWay
object

An object that contains details of the one-way flight. Cannot be used with roundTrip.

 
oneWay.fromAirportCode
string
required

The 3 letter code of the airport from which the traveler wants to depart.

oneWay.toAirportCode
string
required

The 3 letter code of the airport where the traveler wants to arrive.

oneWay.dateTimeType
string

Indicates if the date and time provided applies to the plane take-off or landing.

oneWay.date
date
required

The date of the one-way flight in YYYY-MM-DD format.

oneWay.time
date-time
required

The time of the one-way flight in hh:mm format.

roundTrip
object

An object that contains details of the round-trip flight. Cannot be used with oneWay.

 
roundTrip.fromAirportCode
string
required

The 3 letter code of the airport from which the traveler wants to depart.

roundTrip.toAirportCode
string
required

The 3 letter code of the airport where the traveler wants to arrive.

roundTrip.departDate
date
required

The date of the round-trip departure flight in YYYY-MM-DD format.

roundTrip.departTime
date-time
required

The time of the round-trip departure flight in hh:mm format.

roundTrip.departDateTimeType
string

Indicates whether the plane is landing or taking off for the provided departure time.

roundTrip.returnDate
date
required

The date of the round-trip return flight in YYYY-MM-DD format.

roundTrip.returnTime
date-time
required

The time of the round-trip return flight in hh:mm format.

roundTrip.returnDateTimeType
string

Indicates whether the plane is landing or taking off for the provided return time.

Important!

oneWay and roundTrip cannot both exist in the body request. oneWay requires only one date and time, whereas roundTrip requires separate values for depart and return.

One-way request

{
    "travelerId": "site-texcorpuser-texcorp15",
    "classOfService": "COACH",
    "shopByPrice": {
        "fareType": "LOWEST_AVAILABLE"
    },
    "oneWay": {
        "fromAirportCode": "DAL",
        "toAirportCode": "PHX",
        "date": "2017-11-17",
        "time": "8:00"
    }
}

Round-trip request

{
    "travelerId": "site-texcorpuser-texcorp15",
    "classOfService": "COACH",
    "shopByPrice": {
        "fareType": "LOWEST_AVAILABLE"
    },
    "roundTrip": {
        "fromAirportCode": "BHD",
        "toAirportCode": "LHR",
        "departDate": "2017-11-09",
        "departTime": "19:00",
        "returnDate": "2017-11-10",
        "returnTime": "19:00"
    }
}

Returns

Code
Meaning
Description

201

Catalog created

Created a catalog object and returned an identifier in the location response header.

Example: 033a22df-8c8c-42a0-b1a0-6cf470d796b3

500

Internal System Error

curl --request POST \
  --url http://swagger.ui.host/router/v1/tex/api/catalogs
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/catalogs")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/catalogs")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'POST',
  url: 'http://swagger.ui.host/router/v1/tex/api/catalogs' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/catalogs"

response = requests.request("POST", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/catalogs")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 

The Cart service collects the objects to be included in a booking and provides information to be used by the client to prepare for the booking action.

 
Suggest Edits

/carts/{id}

Gets the contents of the Cart.

 
gethttp://swagger.ui.host/router/v1/tex/api/carts/id

Path Params

id
string
required

The unique identifier of the Cart to retrieve in site-siteNameuser-userName format.

GET Cart evaluates the contents of the Cart and returns information about price, tax, payment, air extras, travel policies, and any special data required for the booking process. This information can be used by the client to tailor checkout activities to ensure all the data required to complete the booking is collected.

Response

Name
Type
Description

items

array

bookableItems

object

supplementaryDataGroups

array

isGenderRequired

boolean

If true, the traveler's gender is required to be known to complete the booking.

isDateOfBirthRequired

boolean

If true, the traveler's birth date is required to complete the booking.

isTSARedressNumberUsable

boolean

If true, a Redress Control Number issued by the United States Transportation Security Administration is usable when making the booking.

isPassportNumberRequired

boolean

If true, the traveler's passport number is required to complete the booking.

isPassportExpirationDateRequired

boolean

If true, the traveler's passport expiration date is required to complete the booking.

isPassportIssuingCountryCodeRequired

boolean

If true, the traveler's passport issuing country code is required to complete the booking.

{
  "items": [
    {
      "itemType": "FLIGHT_ITINERARY",
      "resourceId": "string"
    }
  ],
  "bookableItems": {
    "bookableFlightItineraries": [
      {
        "flightItinerary": {
          "itineraryId": "c23e107e-2b3a-4793-a442-217fdec4dcb2",
          "isSecuredByTSA": true,
          "fare": {
            "negotiated": true,
            "sumOfOneWayFares": true,
            "quotedPrice": {
              "baseFare": {
                "amount": 15600,
                "currencyCode": "USD"
              },
              "taxes": [
                {
                  "code": "X12",
                  "amount": 15600,
                  "currencyCode": "USD"
                }
              ],
              "totalTaxes": {
                "amount": 15600,
                "currencyCode": "USD"
              },
              "totalFare": {
                "amount": 15600,
                "currencyCode": "USD"
              }
            },
            "localizedPrice": {
              "baseFare": {
                "amount": 15600,
                "currencyCode": "USD"
              },
              "taxes": [
                {
                  "code": "X12",
                  "amount": 15600,
                  "currencyCode": "USD"
                }
              ],
              "totalTaxes": {
                "amount": 15600,
                "currencyCode": "USD"
              },
              "totalFare": {
                "amount": 15600,
                "currencyCode": "USD"
              }
            }
          },
          "journeys": [
            {
              "journeyId": "string",
              "context": {
                "fromAirportCode": "DFW",
                "toAirportCode": "LAX",
                "date": "string",
                "time": "12:00"
              },
              "soldOut": true,
              "flights": [
                {
                  "flightId": "c23e107e-2b3a-4793-a442-217fdec4dcb2",
                  "fromAirportCode": "DFW",
                  "toAirportCode": "LAX",
                  "departureDate": "string",
                  "departureTime": "03:00",
                  "arrivalDate": "string",
                  "arrivalTime": "22:30",
                  "marketingAirlineCode": "AA",
                  "marketingAirlineName": "American Airlines",
                  "operatingAirlineCode": "AA",
                  "operatingAirlineName": "American Airlines",
                  "flightNumber": 1276,
                  "numberOfStops": 0,
                  "equipment": {
                    "type": 777,
                    "name": "Boeing 777"
                  },
                  "distance": {
                    "length": 0,
                    "unit": "MILE"
                  },
                  "durationInMinutes": 125,
                  "cabinTypeName": "Coach",
                  "fareBasis": "KRA0AWEN",
                  "fareBrandName": "SeatAndBag",
                  "isAirConnect": false,
                  "seatMapId": "SM&FROM_LOWFARE%3A24f47785-ec7e-4d29-9b96-7c94ee8d81c0.-1315553978%3AAA%3A2587%3A0704&site-siteNameuser-userName",
                  "fareRulesId": "FR&site-siteNameuser-userName&2696bdcf-7108-457f-bab2-b966ff8088f7.686962979&AA%3A2563%3A2510&7c03d335-b37c-4b02-aad9-8161c53a4bf5.-84724865",
                  "agencyPreference": {
                    "preferred": true,
                    "label": "Company preferred"
                  },
                  "corporatePreference": {
                    "preferred": true,
                    "label": "Company preferred"
                  },
                  "policyViolations": [
                    {
                      "type": {
                        "code": 1,
                        "context": "TPV"
                      },
                      "behavior": {
                        "code": 1,
                        "context": "TPV"
                      },
                      "ruleName": "",
                      "fromAirportCode": "DFW",
                      "toAirportCode": "LAX"
                    }
                  ],
                  "customNote": {
                    "label": "Not recommended",
                    "text": "Flight is not recommended based on frequency of lateness",
                    "url": ""
                  },
                  "airlineConfirmationId": "ADGETD"
                }
              ],
              "policyViolations": [
                {
                  "type": {
                    "code": 1,
                    "context": "TPV"
                  },
                  "behavior": {
                    "code": 1,
                    "context": "TPV"
                  },
                  "ruleName": "",
                  "fromAirportCode": "DFW",
                  "toAirportCode": "LAX"
                }
              ]
            }
          ],
          "policyViolations": [
            {
              "type": {
                "code": 1,
                "context": "TPV"
              },
              "behavior": {
                "code": 1,
                "context": "TPV"
              },
              "ruleName": "",
              "fromAirportCode": "DFW",
              "toAirportCode": "LAX"
            }
          ],
          "customNotes": [
            {
              "label": "Not recommended",
              "text": "Flight is not recommended based on frequency of lateness",
              "url": ""
            }
          ]
        },
        "acceptableKnownPaymentOptions": [
          {
            "type": "PAYMENT_CARD",
            "paymentOptionId": "0",
            "customDescription": "Test Visa",
            "quotedUsageFee": {
              "amount": 15600,
              "currencyCode": "USD"
            },
            "localizedUsageFee": {
              "amount": 15600,
              "currencyCode": "USD"
            },
            "isDefaultFormOfPayment": true,
            "isBillingAddressInProfile": true
          }
        ],
        "acceptableNewPaymentCards": [
          {
            "cardTypeCode": "string",
            "quotedUsageFee": {
              "amount": 15600,
              "currencyCode": "USD"
            },
            "localizedUsageFee": {
              "amount": 15600,
              "currencyCode": "USD"
            }
          }
        ],
        "paymentCardSecurityCodeRequired": true
      }
    ],
    "bookableFlightSeats": {
      "seats": [
        {
          "seatId": "FROM_LOWFARE:68c67a34-7c86-4a46-8eec-80e14d5e551a.1991351807:AA:1513&8A",
          "fromAirportCode": "DFW",
          "toAirportCode": "LAX",
          "departureDate": "2018-04-07",
          "departureTime": "03:00",
          "arrivalDate": "2018-04-12",
          "arrivalTime": "22:30",
          "marketingAirlineCode": "AA",
          "marketingAirlineName": "American Airlines",
          "flightNumber": 1276,
          "equipment": {
            "type": 777,
            "name": "Boeing 777"
          },
          "label": "23A",
          "premium": true,
          "feeApplies": true,
          "quotedFee": {
            "amount": 15600,
            "currencyCode": "USD"
          },
          "localizedFee": {
            "amount": 15600,
            "currencyCode": "USD"
          }
        }
      ],
      "acceptableKnownPaymentOptions": [
        {
          "type": "PAYMENT_CARD",
          "paymentOptionId": "0",
          "customDescription": "Test Visa",
          "quotedUsageFee": {
            "amount": 15600,
            "currencyCode": "USD"
          },
          "localizedUsageFee": {
            "amount": 15600,
            "currencyCode": "USD"
          },
          "isDefaultFormOfPayment": true,
          "isBillingAddressInProfile": true
        }
      ],
      "acceptableNewPaymentCards": [
        {
          "cardTypeCode": "string",
          "quotedUsageFee": {
            "amount": 15600,
            "currencyCode": "USD"
          },
          "localizedUsageFee": {
            "amount": 15600,
            "currencyCode": "USD"
          }
        }
      ],
      "paymentCardSecurityCodeRequired": true
    },
    "bookableAirExtras": {
      "airExtras": [
        {
          "airExtraId": "AE&78c27a43-2999-44b0-bc7e-ffda8756fd70.41319203&LUGGAGE&FLIGHT_JOURNEY&Outward&1",
          "type": "LUGGAGE",
          "scope": "FLIGHT_ITINERARY",
          "flightId": "string",
          "journeyId": "string",
          "itineraryId": "string",
          "description": "2 bags, upto 20 kg each, 20.00 USD"
        }
      ]
    }
  },
  "supplementaryDataGroups": [
    {
      "name": "INFORMAL VOTE ON PREFERENCES WHEN TRAVELING\"",
      "supplementaryDataQuestions": [
        {
          "supplementaryDataQuestionId": "12345",
          "question": "What is your favorite aircraft on which to travel?",
          "answerRequired": "true",
          "instructionalText": "Enter the type of aircraft that you really prefer to travel on, whether for a domestic trip or for an internatipnal trip.",
          "openResponse": {
            "format": "NUMBER",
            "numberConstraint": {
              "minimum": 12,
              "maximum": 22
            },
            "dateConstraint": {
              "earliest": "2017-12-01",
              "latest": "2017-12-05"
            },
            "textConstraint": {
              "expression": "[^a-zA-Z]"
            },
            "defaultAnswer": "Monday"
          },
          "constrainedResponse": {
            "numberOfAnswersAllowed": "1",
            "preDefinedAnswers": [
              {
                "answerId": "1",
                "answer": "ORD",
                "isDefault": "false"
              }
            ]
          }
        }
      ]
    }
  ],
  "isGenderRequired": true,
  "isDateOfBirthRequired": false,
  "isTSARedressNumberUsable": true,
  "isPassportNumberRequired": true,
  "isPassportExpirationDateRequired": true,
  "isPassportIssuingCountryCodeRequired": true
}

Returns

Code
Meaning
Description

200

Successful response

Successfully retrieved the contents of the Cart.

400

Bad Request

The API doesn't support, or is unable to recognize, the request made to it.

404

Cart not found

The requested cart resource does not exist.

422

Unable to process

Refer to Return Codes for more information.

500

Internal system error

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/carts/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/carts/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/carts/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/carts/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/carts/id"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/carts/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

/carts/{id}

Update Cart content.

 
patchhttp://swagger.ui.host/router/v1/tex/api/carts/id

Path Params

id
string
required

The unique identifier of the Cart to update in site-siteNameuser-userName format.

Body Params

removeAll
boolean

Boolean to remove all items from the Cart if true.

add
array of objects

An array of objects to add to the Cart; each object contains a unique resourceId associated with the itemType. itemType can be FLIGHT_ITINERARY, FLIGHT_JOURNEY, FLIGHT_SEAT.

itemType
resourceId
remove
array of objects

An array of objects to remove from the Cart; each object contains a unique resourceId associated with the itemType. itemType can be FLIGHT_ITINERARY, FLIGHT JOURNEY, FLIGHT_SEAT.

itemType
resourceId

Request

{
  "removeAll": true,
  "add": [
    {
      "itemType": "FLIGHT_ITINERARY",
      "resourceId": "string"
    }
  ],
  "remove": [
    {
      "itemType": "FLIGHT_ITINERARY",
      "resourceId": "string"
    }
  ]
}

Return Codes

Code
Meaning
Description

200

Successful response

Cart updated.

400

Bad Request

The API doesn't support, or is unable to recognize, the request made to it.

500

Internal System Error

curl --request PATCH \
  --url http://swagger.ui.host/router/v1/tex/api/carts/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/carts/id")
  .patch(null)
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/carts/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'PATCH',
  url: 'http://swagger.ui.host/router/v1/tex/api/carts/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/carts/id"

response = requests.request("PATCH", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/carts/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
 

The Booking service creates a Passenger Name Record (PNR) with the traveler's information and itinerary/cart contents. Use Booking to create a booked itinerary and display a confirmation screen with the PNR.

 
Suggest Edits

/carts/{id}/bookings

Creates a booked itinerary, but does so based on the Cart unique identifier. Assigns a unique identifier to the resulting booking.

 
posthttp://swagger.ui.host/router/v1/tex/api/carts/id/bookings

Path Params

id
string
required

The unique identifier of the Cart to retrieve in site-siteNameuser-userName format.

Body Params

travelerId
string
required

The unique identifier of the Traveler making the request.

contactInfo
object

An object that contains the traveler’s contact information.

 
contactInfo.emailAddress
string

The traveler’s email address.

contactInfo.telephoneNumber
object

An object that contains the traveler’s telephone number information.

 
contactInfo.telephoneNumber.type
string

The type of telephone number provided. Can be HOME, BUSINESS, MOBILE.

contactInfo.telephoneNumber.number
string

The traveler’s phone number without special characters.

components
object

An object that contains the components of the itinerary.

 
components.bookableFlightItinerary
object

An object that contains the details of the air itinerary selected from the shopping catalog.

 
components.bookableFlightItinerary.itineraryId
string
required

The unique identifier for the air itinerary selected from the shopping catalog.

components.bookableFlightItinerary.justifications
array of objects

An array that contains the justification reason if the booking is outside of Sabre policy. Can be FLIGHT, AIR_EXTRAS, HOTEL_STAY, CAR_RENTAL, NO_HOTEL_BOOKED, NO_CAR_BOOKED.

type
code
components.bookableFlightItinerary.paymentCard
object

An object that contains the information of the payment card used to book the air itinerary.

 
components.bookableFlightItinerary.paymentCard.paymentCardId
string
required

The unique identifier of a payment card.

components.bookableFlightItinerary.paymentCard.billingAddress
object

An object that contains required address details.

 
components.bookableFlightItinerary.paymentCard.pciData
object

An object that contains optional payment card data.

 
components.bookableFlightItinerary.temporaryPaymentCard
object

An object that contains the information about payment card used to book the air itinerary.

 
components.bookableFlightItinerary.temporaryPaymentCard.billingAddress
object

An object that contains required address details.

 
components.bookableFlightItinerary.temporaryPaymentCard.pciData
object

An object that contains required payment card data.

 
components.bookableFlightItinerary.loyalties
array of objects

An array of information regarding the frequent flyer numbers for one or more Travelers. Includes which traveler in the group the loyalty number is for, the industry standard code for the airline, and the loyalty number.

travelerSequenceNumber
vendorCode
loyaltyNumber
components.bookableAircraftSeats
object

An object that contains the details of the aircraft seat(s) that are to be booked.

 
components.bookableAircraftSeats.seatIds
array of strings
components.bookableAircraftSeats.paymentCard
object

An object that contains the information of the payment card used to book the air itinerary.

 
components.bookableAircraftSeats.paymentCard.paymentCardId
string
required

The unique identifier of a payment card.

components.bookableAircraftSeats.paymentCard.billingAddress
object

An object that contains required address details.

 
components.bookableAircraftSeats.paymentCard.pciData
object

An object that contains optional payment card data.

 
components.bookableAircraftSeats.temporaryPaymentCard
object

An object that contains the information about payment card used to book the air itinerary.

 
components.bookableAircraftSeats.temporaryPaymentCard.billingAddress
object

An object that contains required address details.

 
components.bookableAircraftSeats.temporaryPaymentCard.pciData
object

An object that contains required payment card data.

 
components.bookableAirExtras
object

An object that contains the details of the AirExtra(s) that are to be booked.

 
components.bookableAirExtras.airExtraIds
array of strings
travelers
array of objects
required

An array that contains the traveler’s information.Includes the unique identifier of the traveler, the sequence number, the traveler’s gender, prefix, and personal information.

travelerId
sequenceNumber
gender
namePrefix
personalIdentifiableInformation 
travelJustification
object

An object that contains information regarding the reason why the booking is being made.

 
travelJustification.travelPurpose
string

The reason why the itinerary is being booked.

travelJustification.authorizerName
string

The name of the person approving or authorizing the itinerary to be booked.

travelJustification.justifications
array of objects

The justification for booking an air itinerary without a hotel or car. Can be NO_HOTEL_BOOKED, NO_CAR_BOOKED.

type
code
supplementaryData
array of objects

An array that contains information regarding the additional questions a traveler answers based on their booking selections.Traveler responses can be open-ended (recorded in free form text) or constrained (predefined selection that generates a questionId.)

questionId
openResponse 
constrainedResponse 

Request

{
  "travelerId": "site-SiteNameuser-UserName",
  "contactInfo": {
    "emailAddress": "johnsmith@work.com",
    "telephoneNumber": {
      "type": "HOME",
      "number": "2145551234"
    }
  },
  "components": {
    "bookableFlightItinerary": {
      "itineraryId": "fe9d3808-ad10-4bb3-ab5d-a3bf4acc2fe8.1426400367",
      "justifications": [
        {
          "type": "FLIGHT",
          "code": "code"
        }
      ],
      "paymentCard": {
        "paymentCardId": "1",
        "pciData": {
          "securityCode": "0000",
          "typeCode": "VI",
          "ownerName": "Vernon Bear",
          "number": "4444333322221111",
          "expirationDate": "10/18"
        }
      },
      "temporaryPaymentCard": {
        "billingAddress": {
          "addressLine1": "Ellen Ave",
          "addressLine2": "House nr. 10",
          "city": "Dallas",
          "stateProvinceCode": "TX",
          "postalCode": "75063",
          "countryCode": "US"
        },
        "pciData": {
          "securityCode": "0000",
          "typeCode": "VI",
          "ownerName": "Vernon Bear",
          "number": "4444333322221111",
          "expirationDate": "10/18"
        }
      },
      "loyalties": [
        {
          "travelerSequenceNumber": 1,
          "vendorCode": "AA",
          "loyaltyNumber": "AA43434"
        }
      ]
    },
    "bookableAircraftSeats": {
      "seatIds": [
        "FROM_LOWFARE:68c67a34-7c86-4a46-8eec-80e14d5e551a.1991351807:AA:1513&8A"
      ],
      "paymentCard": {
        "paymentCardId": "1",
        "pciData": {
          "securityCode": "0000",
          "typeCode": "VI",
          "ownerName": "Vernon Bear",
          "number": "4444333322221111",
          "expirationDate": "10/18"
        }
      },
      "temporaryPaymentCard": {
        "billingAddress": {
          "addressLine1": "Ellen Ave",
          "addressLine2": "House nr. 10",
          "city": "Dallas",
          "stateProvinceCode": "TX",
          "postalCode": "75063",
          "countryCode": "US"
        },
        "pciData": {
          "securityCode": "0000",
          "typeCode": "VI",
          "ownerName": "Vernon Bear",
          "number": "4444333322221111",
          "expirationDate": "10/18"
        }
      }
    },
    "bookableAirExtras": {
      "airExtraIds": [
        "AE&78c27a43-2999-44b0-bc7e-ffda8756fd70.41319203&LUGGAGE&FLIGHT_JOURNEY&Outward&1"
      ]
    }
  },
  "travelers": [
    {
      "travelerId": "site-SiteNameuser-UserName",
      "sequenceNumber": "1",
      "gender": "MALE",
      "namePrefix": "Mr",
      "personalIdentifiableInformation": {
        "firstName": "John",
        "middleName": "B",
        "lastName": "Smith",
        "birthDate": "1960-12-23",
        "redressNumber": "2323RED",
        "passport": {
          "issuingCountryCode": "US",
          "number": "A00000000",
          "expirationDate": "2017-12-01"
        }
      }
    }
  ],
  "travelJustification": {
    "travelPurpose": "purpose",
    "authorizerName": "name",
    "justifications": [
      {
        "type": "FLIGHT",
        "code": "01:CompIsCompliant:Non-compliance",
        "description": "CompIsCompliant"
      }
    ]
  },
  "supplementaryData": [
    {
      "questionId": "10232908",
      "openResponse": {
        "answer": "answer"
      },
      "constrainedResponse": {
        "answerIds": [
          "value2"
        ]
      }
    }
  ]
}

Returns

Code
Meaning
Description

201

Booking created

Created a booking object and returned an identifier in the location response header.
Example: 1509099087.55555

500

Internal System Error

curl --request POST \
  --url http://swagger.ui.host/router/v1/tex/api/carts/id/bookings
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/carts/id/bookings")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/carts/id/bookings")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'POST',
  url: 'http://swagger.ui.host/router/v1/tex/api/carts/id/bookings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/carts/id/bookings"

response = requests.request("POST", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/carts/id/bookings")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

/bookings

Creates a booked itinerary when the traveler completes criteria in the booking request. Assigns a unique identifier to the resulting booking.

 
posthttp://swagger.ui.host/router/v1/tex/api/bookings

Body Params

travelerId
string
required

The unique identifier of the Traveler making the request.

contactInfo
object

An object that contains the traveler’s contact information.

 
contactInfo.emailAddress
string

The traveler’s email address.

contactInfo.telephoneNumber
object

An object that contains the traveler’s telephone number information.

 
contactInfo.telephoneNumber.type
string

The type of telephone number provided. Can be HOME, BUSINESS, MOBILE.

contactInfo.telephoneNumber.number
string

The traveler’s phone number without special characters.

components
object

An object that contains the components of the itinerary.

 
components.bookableFlightItinerary
object

An object that contains the details of the air itinerary selected from the shopping catalog.

 
components.bookableFlightItinerary.itineraryId
string
required

The unique identifier for the air itinerary selected from the shopping catalog.

components.bookableFlightItinerary.justifications
array of objects

An array that contains the justification reason if the booking is outside of Sabre policy. Can be FLIGHT, AIR_EXTRAS, HOTEL_STAY, CAR_RENTAL, NO_HOTEL_BOOKED, NO_CAR_BOOKED.

type
code
components.bookableFlightItinerary.paymentCard
object

An object that contains the information of the payment card used to book the air itinerary.

 
components.bookableFlightItinerary.paymentCard.paymentCardId
string
required

The unique identifier of a payment card.

components.bookableFlightItinerary.paymentCard.billingAddress
object

An object that contains required address details.

 
components.bookableFlightItinerary.paymentCard.pciData
object

An object that contains optional payment card data.

 
components.bookableFlightItinerary.temporaryPaymentCard
object

An object that contains the information about payment card used to book the air itinerary.

 
components.bookableFlightItinerary.temporaryPaymentCard.billingAddress
object

An object that contains required address details.

 
components.bookableFlightItinerary.temporaryPaymentCard.pciData
object

An object that contains required payment card data.

 
components.bookableFlightItinerary.loyalties
array of objects

An array of information regarding the frequent flyer numbers for one or more Travelers. Includes which traveler in the group the loyalty number is for, the industry standard code for the airline, and the loyalty number.

travelerSequenceNumber
vendorCode
loyaltyNumber
components.bookableAircraftSeats
object

An object that contains the details of the aircraft seat(s) that are to be booked.

 
components.bookableAircraftSeats.seatIds
array of strings
components.bookableAircraftSeats.paymentCard
object

An object that contains the information of the payment card used to book the air itinerary.

 
components.bookableAircraftSeats.paymentCard.paymentCardId
string
required

The unique identifier of a payment card.

components.bookableAircraftSeats.paymentCard.billingAddress
object

An object that contains required address details.

 
components.bookableAircraftSeats.paymentCard.pciData
object

An object that contains optional payment card data.

 
components.bookableAircraftSeats.temporaryPaymentCard
object

An object that contains the information about payment card used to book the air itinerary.

 
components.bookableAircraftSeats.temporaryPaymentCard.billingAddress
object

An object that contains required address details.

 
components.bookableAircraftSeats.temporaryPaymentCard.pciData
object

An object that contains required payment card data.

 
components.bookableAirExtras
object

An object that contains the details of the AirExtra(s) that are to be booked.

 
components.bookableAirExtras.airExtraIds
array of strings
travelers
array of objects
required

An array that contains the traveler’s information.Includes the unique identifier of the traveler, the sequence number, the traveler’s gender, prefix, and personal information.

travelerId
sequenceNumber
gender
namePrefix
personalIdentifiableInformation 
travelJustification
object

An object that contains information regarding the reason why the booking is being made.

 
travelJustification.travelPurpose
string

The reason why the itinerary is being booked.

travelJustification.authorizerName
string

The name of the person approving or authorizing the itinerary to be booked.

travelJustification.justifications
array of objects

The justification for booking an air itinerary without a hotel or car. Can be NO_HOTEL_BOOKED, NO_CAR_BOOKED.

type
code
supplementaryData
array of objects

An array that contains information regarding the additional questions a traveler answers based on their booking selections.Traveler responses can be open-ended (recorded in free form text) or constrained (predefined selection that generates a questionId.)

questionId
openResponse 
constrainedResponse 

Request

{
  "travelerId": "site-SiteNameuser-UserName",
  "contactInfo": {
    "emailAddress": "johnsmith@work.com",
    "telephoneNumber": {
      "type": "HOME",
      "number": "2145551234"
    }
  },
  "components": {
    "bookableFlightItinerary": {
      "itineraryId": "fe9d3808-ad10-4bb3-ab5d-a3bf4acc2fe8.1426400367",
      "justifications": [
        {
          "type": "FLIGHT",
          "code": "string"
        }
      ],
      "paymentCard": {
        "paymentCardId": "1",
        "billingAddress": {
          "addressLine1": "Ellen Ave",
          "addressLine2": "House nr. 10",
          "city": "Dallas",
          "stateProvinceCode": "TX",
          "postalCode": "75063",
          "countryCode": "US"
        },
        "pciData": {
          "securityCode": "0000",
          "typeCode": "VI",
          "ownerName": "Vernon Bear",
          "number": "4444333322221111",
          "expirationDate": "10/18"
        }
      },
      "temporaryPaymentCard": {
        "billingAddress": {
          "addressLine1": "Ellen Ave",
          "addressLine2": "House nr. 10",
          "city": "Dallas",
          "stateProvinceCode": "TX",
          "postalCode": "75063",
          "countryCode": "US"
        },
        "pciData": {
          "securityCode": "0000",
          "typeCode": "VI",
          "ownerName": "Vernon Bear",
          "number": "4444333322221111",
          "expirationDate": "10/18"
        }
      },
      "loyalties": [
        {
          "travelerSequenceNumber": 0,
          "vendorCode": "string",
          "loyaltyNumber": "string"
        }
      ]
    },
    "bookableAircraftSeats": {
      "seatIds": [
        "FROM_LOWFARE:68c67a34-7c86-4a46-8eec-80e14d5e551a.1991351807:AA:1513&8A"
      ],
      "paymentCard": {
        "paymentCardId": "1",
        "billingAddress": {
          "addressLine1": "Ellen Ave",
          "addressLine2": "House nr. 10",
          "city": "Dallas",
          "stateProvinceCode": "TX",
          "postalCode": "75063",
          "countryCode": "US"
        },
        "pciData": {
          "securityCode": "0000",
          "typeCode": "VI",
          "ownerName": "Vernon Bear",
          "number": "4444333322221111",
          "expirationDate": "10/18"
        }
      },
      "temporaryPaymentCard": {
        "billingAddress": {
          "addressLine1": "Ellen Ave",
          "addressLine2": "House nr. 10",
          "city": "Dallas",
          "stateProvinceCode": "TX",
          "postalCode": "75063",
          "countryCode": "US"
        },
        "pciData": {
          "securityCode": "0000",
          "typeCode": "VI",
          "ownerName": "Vernon Bear",
          "number": "4444333322221111",
          "expirationDate": "10/18"
        }
      }
    },
    "bookableAirExtras": {
      "airExtraIds": [
        "AE&78c27a43-2999-44b0-bc7e-ffda8756fd70.41319203&LUGGAGE&FLIGHT_JOURNEY&Outward&1"
      ]
    }
  },
  "travelers": [
    {
      "travelerId": "site-SiteNameuser-UserName",
      "sequenceNumber": "1",
      "gender": "MALE",
      "namePrefix": "Mr",
      "personalIdentifiableInformation": {
        "firstName": "John",
        "middleName": "B",
        "lastName": "Smith",
        "birthDate": "1960-12-23",
        "redressNumber": "2323RED",
        "passport": {
          "issuingCountryCode": "US",
          "number": "A00000000",
          "expirationDate": "2017-12-01"
        }
      }
    }
  ],
  "travelJustification": {
    "travelPurpose": "string",
    "authorizerName": "string",
    "justifications": [
      {
        "type": "FLIGHT",
        "code": "string"
      }
    ]
  },
  "supplementaryData": [
    {
      "questionId": "string",
      "openResponse": {
        "answer": "string"
      },
      "constrainedResponse": {
        "answerIds": [
          "string"
        ]
      }
    }
  ]
}

Returns

Code
Meaning
Description

201

Booking created

Created a booking object and returned an identifier in the location response header.

Example: 1509099087.55555

500

Internal System Error

curl --request POST \
  --url http://swagger.ui.host/router/v1/tex/api/bookings
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/bookings")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/bookings")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'POST',
  url: 'http://swagger.ui.host/router/v1/tex/api/bookings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/bookings"

response = requests.request("POST", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/bookings")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

/bookings/{id}

Gets the traveler’s booked itinerary details.

 
gethttp://swagger.ui.host/router/v1/tex/api/bookings/id

Path Params

id
string
required

The unique identifier of a Booking created in the GetThere application.

Response

Name
Type
Description

bookingId

string

The unique identifier of the created booking.

Example: 1465975732.98284

confirmationId

string

Identifier of the booking in the supplier's system (ex. Sabre, Apollo, Southwest).

Example: NZBBLA

travelers

array

isCancelable

boolean

If true, the traveler is allowed to cancel the booking.

bookingRulesId

string

Unique identifier of the booking to be used with the BookingRules endpoint.

components

object

contactInfo

object

totalFlightCost

array

totalTripCost

array

bookingState

enum

{
  "bookingId": 1465975732.98284,
  "confirmationId": "NZBBLA",
  "travelers": [
    {
      "travelerId": "site-SiteNameuser-UserName",
      "sequenceNumber": "1",
      "gender": "MALE",
      "namePrefix": "Mr",
      "personalIdentifiableInformation": {
        "firstName": "John",
        "middleName": "B",
        "lastName": "Smith",
        "birthDate": "1960-12-23",
        "redressNumber": "2323RED",
        "passport": {
          "issuingCountryCode": "US",
          "number": "A00000000",
          "expirationDate": "2017-12-01"
        }
      }
    }
  ],
  "isCancelable": true,
  "bookingRulesId": "c23e107e-2b3a-4793-a442-217fdec4dcb2",
  "components": {
    "flightItineraries": [
      {
        "itineraryId": "c23e107e-2b3a-4793-a442-217fdec4dcb2",
        "fare": {
          "negotiated": true,
          "quotedPrice": {
            "baseFare": {
              "amount": 15600,
              "currencyCode": "USD"
            },
            "taxes": [
              {
                "code": "X12",
                "amount": 15600,
                "currencyCode": "USD"
              }
            ],
            "totalTaxes": {
              "amount": 15600,
              "currencyCode": "USD"
            },
            "totalFare": {
              "amount": 15600,
              "currencyCode": "USD"
            }
          },
          "localizedPrice": {
            "baseFare": {
              "amount": 15600,
              "currencyCode": "USD"
            },
            "taxes": [
              {
                "code": "X12",
                "amount": 15600,
                "currencyCode": "USD"
              }
            ],
            "totalTaxes": {
              "amount": 15600,
              "currencyCode": "USD"
            },
            "totalFare": {
              "amount": 15600,
              "currencyCode": "USD"
            }
          }
        },
        "journeys": [
          {
            "flights": [
              {
                "flightId": "c23e107e-2b3a-4793-a442-217fdec4dcb2",
                "fromAirportCode": "DFW",
                "toAirportCode": "LAX",
                "departureDate": "2018-04-27",
                "departureTime": "03:00",
                "arrivalDate": "2018-04-27",
                "arrivalTime": "22:30",
                "marketingAirlineCode": "AA",
                "marketingAirlineName": "American Airlines",
                "operatingAirlineCode": "AA",
                "operatingAirlineName": "American Airlines",
                "flightNumber": 1276,
                "cabinTypeName": "Coach",
                "fareBrandName": "SeatAndBag",
                "fareBasis": "KRA0AWEN",
                "isAirConnect": false,
                "airlineConfirmationId": "ADGETD",
                "assignedSeats": [
                  "34A"
                ],
                "airExtras": [
                  {
                    "type": "LUGGAGE",
                    "scope": "FLIGHT_ITINERARY",
                    "description": "2 bags, upto 20 kg each, 20.00 USD",
                    "quotedFee": {
                      "amount": 15600,
                      "currencyCode": "USD"
                    },
                    "localizedFee": {
                      "amount": 15600,
                      "currencyCode": "USD"
                    }
                  }
                ]
              }
            ],
            "airExtras": [
              {
                "type": "LUGGAGE",
                "scope": "FLIGHT_ITINERARY",
                "description": "2 bags, upto 20 kg each, 20.00 USD",
                "quotedFee": {
                  "amount": 15600,
                  "currencyCode": "USD"
                },
                "localizedFee": {
                  "amount": 15600,
                  "currencyCode": "USD"
                }
              }
            ]
          }
        ],
        "airExtras": [
          {
            "type": "LUGGAGE",
            "scope": "FLIGHT_ITINERARY",
            "description": "2 bags, upto 20 kg each, 20.00 USD",
            "quotedFee": {
              "amount": 15600,
              "currencyCode": "USD"
            },
            "localizedFee": {
              "amount": 15600,
              "currencyCode": "USD"
            }
          }
        ]
      }
    ]
  },
  "contactInfo": {
    "emailAddress": "johnsmith@work.com",
    "telephoneNumber": {
      "type": "HOME",
      "number": "2145551234"
    }
  },
  "totalFlightCost": [
    {
      "amount": 15600,
      "currencyCode": "USD"
    }
  ],
  "totalTripCost": [
    {
      "amount": 15600,
      "currencyCode": "USD"
    }
  ],
  "bookingState": "ACTIVE"
}

Returns

Code
Meaning
Description

200

Successful response

Successfully retrieved the booking object.

403

Bad Request

The API doesn't support, or is unable to recognize, the request made to it.

404

Booking not found

The reference resource doesn't have a matching API.

422

Unable to process

Refer to Return Codes for more information.

500

Internal System Error

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/bookings/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/bookings/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/bookings/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/bookings/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/bookings/id"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/bookings/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

/bookings/{id}

Modify a booking.

 
patchhttp://swagger.ui.host/router/v1/tex/api/bookings/id

Path Params

id
string
required

The unique identifier of a Booking to be modified.

Body Params

removeAll
boolean

Boolean to cancel all items from the Booking if true.

The PATCH bookings service provides the ability to cancel a booking made through the Corporate Travel Services. This service can be invoked with a bookingId and body of removeAll: true to completely cancel all components in the booking – if the booking is able to be cancelled.

Returns

Code
Meaning
Description

204

Booking cancelled

Modified the booking object.

400

Bad Request

The request is not syntactically correct (doesn’t conform to the schema).

403

Unauthorized access

The API determined there was a problem with the request data.

404

Booking not found

The requested resource or one of the resources required to perform the operation does not exist.

422

Unable to process

Refer to Return Codes for more information.

500

Internal System Error

curl --request PATCH \
  --url http://swagger.ui.host/router/v1/tex/api/bookings/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/bookings/id")
  .patch(null)
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/bookings/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'PATCH',
  url: 'http://swagger.ui.host/router/v1/tex/api/bookings/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/bookings/id"

response = requests.request("PATCH", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/bookings/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Patch.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 

The Site API supports advanced site management functions, automating site creation and configuration.

For more information on sites, refer to Sabre's GetThere site.

 
Suggest Edits

/sites/{id}

Get site details.

 
gethttp://swagger.ui.host/router/v1/tex/api/sites/id

Path Params

id
string
required

The unique identifier to get the Site details by MainSiteName and SubSiteName.

Gets site configuration details by mainSite and subSite. These configuration details can be found within the airConfiguration object.

Response

Name
Type
Description

id

string

Identification of subsite to be updated, plus the main site for that subsite.

example: site-{mainSite}subsite-{subSite}

airConfiguration

object

{
  "id": "site-{mainSite}subsite-{subSite}",
  "airConfiguration": {
    "fareBrandsEnabled": true,
    "suppliers": [
      "SABRE"
    ],
    "useNegotiatedAirfare": true,
    "companyCodeForNegotiatedAirfare": "abcd",
    "useNegotiatedFareForPriceEstimate": true,
    "alwaysDisplayNegotiatedAirfares": "YES",
    "fareLedSearchSettings": {
      "timeSearchExtensionInHours": 8,
      "numberOfConnectionsAllowed": 2,
      "enableUsersToSearchPlusMinusDates": true,
      "fareLedSearchPriority": {
        "priorityOne": "PRICE",
        "priorityTwo": "PRICE",
        "priorityThree": "PRICE",
        "priorityFour": "PRICE"
      }
    }
  }
}

Returns

Code
Meaning
Description

200

Successful Response

Retrieved the site object.

400

Bad Request

The request is not syntactically correct (doesn't conform to the schema).

403

Unauthorized Access

The client is not authorized to access these site resources.

404

Site not found

The site with the given name does not exist.

405

Site Closed

The site is closed, and the client does not have permission to operate on it.

422

Unable to process

The action the traveler is performing is against the policy setup for the site.

500

Internal System Error

The request caused an unrecognized error on the server side.

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/sites/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/sites/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/sites/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/sites/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/sites/id"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/sites/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

/sites/{id}/announcements

Get site announcements.

 
gethttp://swagger.ui.host/router/v1/tex/api/sites/id/announcements

Path Params

id
string
required

The unique identifier to get Site Announcements by a main site name and subsite name, in the form of site-{mainSite}subsite-{subsite}.

The Site Announcement service retrieves static messages for a site using a GET site/{id}/announcements request and response. These messages, often referred to as Company Announcements, represent the header and footer messages shown on various pages during flight shopping and booking in the GetThere UI.

All of the configured messages for each page and for each language are returned, using a label to identify the page and message location, along with a languageCode to denote the language for which the message is configured. The id used to access these announcement messages is a combination of site and subsite names. To assist with creation of this id, a new siteId element has been added to the GET Traveler response. This element provides the site and subsite names in a format which can be directly used in a GET site/announcements request.

Labels

The label string contains a value for the label indicating the type of announcement message. The values listed below are selected during various points of the shopping/booking process:

Stage
Applicable Values

Home Page – Traveler View (Bottom message only, Carousel announcements)

HOME_PAGE_TRAVELER_VIEW_FOOTER
HOME_PAGE_TRAVELER_VIEW_CAROUSEL

Please Wait Messages – Search by Price

FLIGHT_ITINERARY_SEARCH_IN_PROGRESS

Air Announcements – Flight Availability in Shop by Price

FLIGHT_ITINERARY_HEADER
FLIGHT_ITINERARY_FOOTER

Seat Selection Page

SEAT_SELECTION_HEADER
SEAT_SELECTION_FOOTER

Checkout Pages – Checkout

CHECKOUT_HEADER
CHECKOUT_FOOTER

Checkout Pages – Reservation Complete

RESERVATION_COMPLETE_HEADER
RESERVATION_COMPLETE_FOOTER

Language code

The languageCode string contains the language in which the message is displayed. Currently, the following languages and their corresponding codes are supported:

Language
Code

العربية (Arabic)

ar

Deutsch

de

English (GB)

en

English (US)

en-US

Español

es

Français (Canada)

fr-CA

Français

fr

Italiano

it

日本語 (Japanese)

ja

한국어 (Korean)

ko

Nederlands (BE)

nl-BE

Nederlands

nl

Polski

pl

Português

pt

Русский (Russian)

ru

简体中文 (Chinese)

zh-CN

Response

Name
Type
Description

label

string

Label indicating the type of announcement message.

Example: FLIGHT_ITINERARY_HEADER

languageCode

string

The language in which the message is displayed.

Example: en-US

message

object

The message entered by the Travel Manager. Can only have either message or carouselMessages, but not both. Includes the message as text, and date of the message as postDate.

carouselMessages

array

An array that creates a message carousel. Can only have either message or carouselMessages, but not both.

{
  "id": "site-sabresubsite-northamerica",
  "announcements": [
    {
      "label": "FLIGHT_ITINERARY_HEADER",
      "languageCode": "en-US",
      "message": {
        "text": "Hello world!",
        "postDate": "2017-12-04"
      },
      "carouselMessages": [
        "American Airlines new preferred seats"
      ]
    }
  ]
}

Returns

Code
Meaning
Description

200

Successful response

Successfully retrieved the contents of SiteAnnouncements

400

Bad Request

The API doesn't support, or is unable to recognize, the request made to it.

403

Unauthorized Access

The API determined there was a problem with the request data.

404

Site not found

The requested resource or one of the resources required to perform the operation does not exist.

405

Sited closed

The site you are trying to access is closed.

422

Unable to process

Refer to Return Codes for more information.

500

Internal System Error

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/sites/id/announcements
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/sites/id/announcements")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/sites/id/announcements")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/sites/id/announcements' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/sites/id/announcements"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/sites/id/announcements")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

BookingRules

 

The GET bookingRules service provides a way to obtain cancel-related details about a booking before it is cancelled with PATCH bookings.

For example, can the booking be cancelled (isCancellable)? Can it be voided (isVoidable)? Is the booking refundable (isRefundable), and if so, how much will be returned (refund)? If there is a cancel penalty, how much is it (cancellationPenalty)?

 
Suggest Edits

/bookingRules/{id}

Gets booking rules for the traveler's booked itinerary.

 
gethttp://swagger.ui.host/router/v1/tex/api/bookingRules/id

Path Params

id
string
required

The unique identifier of the itinerary from GET bookings.

The GET bookingRules service requires a bookingRulesId resource identifier, which has been newly added to the GET bookings response.

Response

Name
Type
Description

id

string

The unique identifier of the itinerary from GET bookings.

bookingId

string

The unique identifier of the booking created in POST bookings.

isCancellable

boolean

If true, this booking can be cancelled by the traveler.

flightItinerary

object

railItinerary

object

Not Cancellable - GDS Air or AirConnect

{
    "id": " f1b25caf-b272-4134-b3d1-3bbd13b39766",
    "bookingId": "1518524522.12345",
    "isCancellable": false
}

Cancellable – GDS Air with GetThere Ticket Manager disabled

{
    "id": " f1b25caf-b272-4134-b3d1-3bbd13b46758",
    "bookingId": "1518526726.23456",
    "isCancellable": true
}

Cancellable – GDS Air with GetThere Ticket Manager enabled

{
    "id": "f1b25caf-b272-4134-b3d1-3bbd13b35634",
    "bookingId": "1516959904.34567",
    "isCancellable": true,
    "flightItinerary": {
        "isVoidable": false,
        "isRefundable": "TRUE",
        "refund": {
            "amount": 140331,
            "currencyCode": "USD"
        },
        "cancellationPenalty": {
            "amount": 0,
            "currencyCode": "USD"
        }
    }
}

Cancellable – SouthWest Airlines via Air Connect

{
    "id": " f1b25caf-b272-4134-b3d1-3bbd13b41778",
    "bookingId": "1510579904.45678",
    "isCancellable": true,
    "flightItinerary": {
        "refund": {
            "amount": 14003,
            "currencyCode": "USD"
        },
        "voucher": {
            "amount": 8308,
            "currencyCode": "USD"
        }
    }
}

Returns

Code
Meaning
Description

200

Successful response

Retrieved the bookingRules object.

400

Bad Request

The request is not syntactically correct (doesn’t conform to the schema).

404

Booking rules not found

The requested resource or one of the resources required to perform the operation does not exist.

422

Unable to process

Refer to Return Codes for more information.

500

Internal System Error

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/bookingRules/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/bookingRules/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/bookingRules/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/bookingRules/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/bookingRules/id"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/bookingRules/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
 

The Traveler service retrieves the traveler's personal information, stored payment card, and corporate travel information (travel justification, for example).

In addition, the Traveler Booking endpoint returns a list of all trips booked by or for a given traveler. These include bookings made in the GetThere online booking tool, offline bookings acquired by the traveler in GetThere, or bookings made through a client application using the Corporate Travel Services APIs.

 
Suggest Edits

/travelers/{id}

Gets the traveler’s information.

 
gethttp://swagger.ui.host/router/v1/tex/api/travelers/id

Path Params

id
string
required

The unique identifier of the Traveler to search for by SiteName and UserName.

Response

Name
Type
Description

id

string

The unique identifier of the traveler, in site-SiteNameuser-UserName format.

siteId

string

The unique identifier to request site details by a main site name and subsite name, in the form of site-{mainSite}subsite-{subSite}

Example: site-sabresubsite-northamerica

personalDetails

object

contactInfo

object

loyalties

object

preferences

object

paymentCards

object

vouchers

object

corporateSettings

object

{
  "id": "site-SiteNameuser-UserName",
  "siteId": "site-sabresubsite-northamerica",
  "personalDetails": {
    "gender": "MALE",
    "namePrefix": "Mr",
    "personalIdentifiableInformation": {
      "firstName": "John",
      "middleName": "B",
      "lastName": "Smith",
      "birthDate": "1960-12-23",
      "redressNumber": "2323RED",
      "passport": {
        "issuingCountryCode": "US",
        "number": "A00000000",
        "expirationDate": "2017-12-01"
      }
    }
  },
  "contactInfo": {
    "emailAddresses": [
      "johnsmith@work.com"
    ],
    "telephoneNumbers": [
      {
        "type": "HOME",
        "number": "2145551234"
      }
    ]
  },
  "loyalties": {
    "flight": [
      {
        "vendorCode": "AA",
        "loyaltyNumber": "AA43434"
      }
    ]
  },
  "preferences": {
    "flight": {
      "homeAirportCode": "LHR",
      "defaultPaymentCardId": "1"
    },
    "airExtras": {
      "defaultPaymentCardId": "1"
    }
  },
  "paymentCards": {
    "flight": [
      {
        "paymentCardId": "1",
        "customDescription": "Credit Card",
        "isBillingAddressInProfile": true
      }
    ],
    "airExtras": [
      {
        "paymentCardId": "1",
        "customDescription": "Credit Card",
        "isBillingAddressInProfile": true
      }
    ]
  },
  "vouchers": {
    "flight": [
      {
        "airlineCode": "AA",
        "voucherCode": "UW2WWG",
        "expirationDate": "2018-12-04",
        "initialValue": {
          "amount": 15600,
          "currencyCode": "USD"
        }
      }
    ]
  },
  "corporateSettings": {
    "justifications": [
      {
        "type": "FLIGHT",
        "code": "CU",
        "description": "Need to fly with customer"
      }
    ],
    "authorizerNames": [
      "VP of Travel"
    ],
    "supplementaryDataGroups": [
      {
        "name": "INFORMAL VOTE ON PREFERENCES WHEN TRAVELING\"",
        "supplementaryDataQuestions": [
          {
            "supplementaryDataQuestionId": "12345",
            "question": "What is your favorite aircraft on which to travel?",
            "answerRequired": "true",
            "instructionalText": "Enter the type of aircraft that you really prefer to travel on, whether for a domestic trip or for an internatipnal trip.",
            "openResponse": {
              "format": "NUMBER",
              "numberConstraint": {
                "minimum": 12,
                "maximum": 22
              },
              "dateConstraint": {
                "earliest": "2017-12-01",
                "latest": "2017-12-05"
              },
              "textConstraint": {
                "expression": "[^a-zA-Z]"
              },
              "defaultAnswer": "Monday"
            },
            "constrainedResponse": {
              "numberOfAnswersAllowed": "1",
              "preDefinedAnswers": [
                {
                  "answerId": "1",
                  "answer": "ORD",
                  "isDefault": "false"
                }
              ]
            }
          }
        ]
      }
    ]
  }
}

Returns

Code
Meaning
Description

200

Successful response

Successfully retrieved the traveler object.

403

Bad Request

The API doesn't support, or is unable to recognize, the request made to it.

404

Traveler not found

The requested traveler resource or a traveler needed to perform the operation does not exist.

422

Unable to process

Refer to Return Codes for more information.

500

Internal System Error

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/travelers/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/travelers/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/travelers/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/travelers/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/travelers/id"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/travelers/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

/travelers/{id}/bookings

Gets the traveler’s bookings.

 
gethttp://swagger.ui.host/router/v1/tex/api/travelers/id/bookings

Path Params

id
string
required

The unique identifier of the Traveler to search for by SiteName and UserName.

 
curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/travelers/id/bookings
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/travelers/id/bookings")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/travelers/id/bookings")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/travelers/id/bookings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/travelers/id/bookings"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/travelers/id/bookings")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

FareRules

 

The Fare Rules service retrieves eligibility requirements and travel restrictions for a flight based on the traveler's Catalog selections.

Refer to the Travel Policy Guide to see how violations to FareRules are returned in the /catalogs/{id} response.

 
Suggest Edits

/fareRules/{id}

Gets eligibility requirements and travel restrictions for a flight.

 
gethttp://swagger.ui.host/router/v1/tex/api/fareRules/id

Path Params

id
string
required

The unique identifier of the FareRules to display from the Catalog.

Response

Name
Type
Description

id

string

The unique identifier of the FareRules to display from the Catalog.

rules

string

The eligibility requirements and travel restrictions for a flight.

Example: V FARE BASIS BK FARE TRAVEL-TICKET AP MINMAX RTG

{
  "id": "c23e107e-2b3a-4793-a442-217fdec4dcb2",
  "rules": [
    "V FARE BASIS     BK    FARE   TRAVEL-TICKET AP  MINMAX  RTG"
  ]
}

Returns

Code
Meaning
Description

200

Successful Response

Successfully retrieved the fareRules object.

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/fareRules/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/fareRules/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/fareRules/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/fareRules/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/fareRules/id"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/fareRules/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

FareBrand

 

Branded Fares provide a way for airlines to package their products in new and unique ways to extract greater value from their offerings, while providing options to travelers seeking different combinations of features and benefits rather than just looking for the lowest fare.

The FareBrand API lets you retrieve:

  • The name of the branded fare (set by the supplier)
  • A list of attributes (services) associated with the fare or a URL (linked to the supplier's website) containing details of the branded fare
 
Suggest Edits

/fareBrands/{id}

Gets description of fare brand.

 
gethttp://swagger.ui.host/router/v1/tex/api/fareBrands/id

Path Params

id
string
required

The unique identifier of the FareBrand to display from the Catalog.

Response

Name
Type
Description

id

string

The unique identifier of the fare brand.

Example: c23e107e-2b3a-4793-a442-217fdec4dcb2

fareBrandName

string

The name of the fare brand associated with the id.

Example: Standard

brandAttributes

string

Contains a list of attributes that describe the fare brand.

Example: Speedy boarding

supplierFareBrandUrl

string

The URL where full details of the fare brand are located.

Example: http://www.easyjet.com/fareDetails.html

{
  "id": "c23e107e-2b3a-4793-a442-217fdec4dcb2",
  "fareBrandName": "Standard",
  "brandAttributes": [
    "Speedy boarding"
  ],
  "supplierFareBrandUrl": "http://www.easyjet.com/fareDetails.html"
}

Returns

Code
Meaning
Description

200

Successful Response

Successfully retrieved the fareBrands object.

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/fareBrands/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/fareBrands/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/fareBrands/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/fareBrands/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/fareBrands/id"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/fareBrands/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

Deployment

 

The Deployment service provides an easy way to check the status of and obtain information about the Corporate Travel API. The service lists the environment, version, build date, and endpoints of all active resources.

To test this resource, click the Try It button below.

 
Suggest Edits

/deployment

Returns information about deployed services.

 
gethttp://swagger.ui.host/router/v1/tex/api/deployment

Returns

Code
Meaning
Description

200

Successful response

Successfully retrieved the deployment object.

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/deployment
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/deployment")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/deployment")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/deployment' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/deployment"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/deployment")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

{
  "environment": "cert",
  "version": "1.4.2",
  "buildDate": "20171020-1341",
  "endpoints": [
    {
      "method": "POST",
      "path": "/v1/tex/api/bookings"
    },
    {
      "method": "GET",
      "path": "/v1/tex/api/catalogs/{id}"
    }
  ]
}
 
 

The SeatMap service provides information about all the seats in a cabin for most flights (except Air Connect flights). A GET SeatMap request is sent using the seatMapId from a GET Catalog response. Seats with fees are identified for supported airlines. Selected seats can be added with a PATCH Cart request for subsequent inclusion in a POST Booking request.

For sites with the Air Extra feature enabled (only available when Sabre is the GDS), information about premium seats on supported airlines is included in the GET SeatMap response, using the traveler’s frequent flyer information from their traveler profile to determine eligibility and price. These premium seats can be reserved by including an allowable form of Air Extra payment in the POST Booking request. Air Extra payment details are provided in the GET Cart response.

 
Suggest Edits

/seatMaps/{id}

Gets AircraftSeatMap by resourceId.

 
gethttp://swagger.ui.host/router/v1/tex/api/seatMaps/id

Path Params

id
string
required

ID of AircraftSeatMap to fetch.

Response

Name
Type
Description

fromAirportCode

string

IATA Code of the airport from which the traveler wants to depart.

Example: DFW

toAirportCode

string

IATA Code of the airport from which the traveler wants to arrive.

Example: LAX

departureDate

string

Date on which the traveler will depart from the origin airport in YYYY-MM-DD format.

Example: 2018-04-07

departureTime

string

The time on which the traveler will depart from the origin airport in hh:mm format.

Example: 03:00

arrivalDate

string

Date on which the traveler should arrive at the destination airport in YYYY-MM-DD format.

Example: 2018-04-08

arrivalTime

string

The time on which the traveler will arrive at the destination airport in hh:mm format.

Example: 23:00

marketingAirlineCode

string

IATA airline code of the airline responsible for the traveler during the flight.

Example: AA

marketingAirlineName

string

Full name of the airline responsible for the traveler during the flight.

Example: American Airlines

flightNumber

string

The unique identifier of the flight.

Example: 1276

equipment

object

premiumSeatFeesReimbursable

boolean

If true, premium seat fees are reimbursable.

decks

array

{
  "fromAirportCode": "DFW",
  "toAirportCode": "LAX",
  "departureDate": "2018-04-07",
  "departureTime": "03:00",
  "arrivalDate": "2018-04-13",
  "arrivalTime": "22:30",
  "marketingAirlineCode": "AA",
  "marketingAirlineName": "American Airlines",
  "flightNumber": 1276,
  "equipment": {
    "type": 777,
    "name": "Boeing 777"
  },
  "premiumSeatFeesReimbursable": true,
  "decks": [
    {
      "level": "UPPER",
      "cabins": [
        {
          "classOfService": "COACH",
          "rows": [
            {
              "number": 12,
              "wingRow": false,
              "rowItems": [
                {
                  "positionInRow": 1,
                  "type": "SEAT",
                  "seat": {
                    "seatId": "FROM_LOWFARE:68c67a34-7c86-4a46-8eec-80e14d5e551a.1991351807:AA:1513&8A",
                    "label": "23A",
                    "premium": true,
                    "feeApplies": true,
                    "inExitRow": true,
                    "selectable": true,
                    "quotedFee": {
                      "amount": 15600,
                      "currencyCode": "USD"
                    },
                    "localizedFee": {
                      "amount": 15600,
                      "currencyCode": "USD"
                    },
                    "occupancyState": "AVAILABLE"
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Returns

Code
Meaning
Description

200

Successful response

Successfully retrieved the AircraftSeatMap object.

400

Bad Request

The API doesn't support, or is unable to recognize, the request made to it.

404

Seat not found

The requested seat does not exist.

422

Unable to process

Refer to Return Codes for more information.

500

Internal System Error

curl --request GET \
  --url http://swagger.ui.host/router/v1/tex/api/seatMaps/id
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://swagger.ui.host/router/v1/tex/api/seatMaps/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://swagger.ui.host/router/v1/tex/api/seatMaps/id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var request = require("request");

var options = { method: 'GET',
  url: 'http://swagger.ui.host/router/v1/tex/api/seatMaps/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
import requests

url = "http://swagger.ui.host/router/v1/tex/api/seatMaps/id"

response = requests.request("GET", url)

print(response.text)
require 'uri'
require 'net/http'

url = URI("http://swagger.ui.host/router/v1/tex/api/seatMaps/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
A binary file was returned

You couldn't be authenticated

Try the API to see results
 
Suggest Edits

AcceptablePaymentCard

 

AcceptablePaymentCard contains information regarding a temporary payment card, if allowed.

Note

Temporary payment cards are cards which are not predefined, as is the case with site cards or payment cards already in the traveler’s profile. These temporary payment cards need to be provided by the traveler during checkout and included in the POST Booking request. When a temporary payment card is allowed, the acceptableNewPaymentCards array will be populated in the GET Catalog response.

Name
Type
Description

cardTypeName

string

The names of the allowed payment card types.

cardTypeCode

string

quotedUsageFee

object

localizedUsageFee

object

 
 

Address contains the traveler's home address.

Name
Type
Description

addressLine1

string

Example: House Ave

addressLine2

string

Example: House nr. 10

city

string

Example: Dallas

stateProvinceCode

string

This value can be null or an empty string when used with a temporaryPaymentCard in the POST /bookings request.

Example: TX

postalCode

string

Example: 75063

countryCode

string

Example: US

 
Suggest Edits

AircraftSeat

 

AircraftSeat contains details of the seat.

Name
Type
Description

seatId

string

The unique identifier for the seat, can be retrieved from seatMap.

Example: FROM_LOWFARE:68c67a34-7c86-4a46-8eec-80e14d5e551a.1991351807:AA:1513&8A

fromAirportCode

string

IATA Code of the airport from which the traveler wants to depart.

minLength: 3
maxLength: 3

Example: DFW

toAirportCode

string

IATA Code of the airport from which the traveler wants to arrive.

minLength: 3
maxLength: 3

Example: LAX

departureDate

string

The date on which the traveler will depart from the origin airport.

departureTime

string

The time on which the traveler will depart from the origin airport in hh:mm format.

Example: 03:00

arrivalDate

string

Date on which the traveler should arrive at the destination airport.

arrivalTime

string

The time on which the traveler will arrive at the destination airport in hh:mm format.

Example: 23:00

marketingAirlineCode

string

IATA airline code of the airline responsible for the traveler during the flight.

minLength: 2
maxLength: 2

Example: AA

marketingAirlineName

string

Full name of the airline responsible for the traveler during the flight.

Example: American Airlines

flightNumber

string

The unique identifier of the flight.

minLength: 1
maxLength: 4

Example: 1276

equipment

object

label

string

The seat number provided by the carrier.

Example: 23A

premium

boolean

If true, the seat is premium, which may impose additional restrictions.

feeApplies

boolean

If true, the seat requires payment.

quotedFee

object

The seat fee in the carrier's specific currency. Refer to Money.

localizedFee

object

The seat fee in the traveler's preferred currency. Refer to Money.

 
Suggest Edits

AircraftSeatMapCabin

 

AircraftSeatMapCabin contains details of the aircraft cabin where the seat is located.

Name
Type
Description

classOfService

object

rows

array

 
Suggest Edits

AircraftSeatMapDeck

 

AircraftSeatMapDeck contains information regarding which level of the aircraft the seat/cabin is located on.

Name
Type
Description

cabins

array

 
Suggest Edits

AircraftSeatMapRow

 

AircraftSeatMapRow contains information regarding the row the seat is located on.

Name
Type
Description

number

integer

Number of the row on the aircraft.

wingRow

boolean

If true, the row is next to the wing of the aircraft.

rowItems

array

 
Suggest Edits

AircraftSeatMapRowItem

 

AircraftSeatMapRowItem contains the position of the seat in a row, as well as seat type and details.

Name
Type
Description

positionInRow

integer

The position of the seat in a row.

seat

object

 
Suggest Edits

AircraftSeatMapSeat

 

AircraftSeatMapSeat contains details of the aircraft seat.

Name
Type
Description

seatId

string

The unique identifier for the seat, can be retrieved from seatMap.

label

string

The seat number provided by the carrier.

Example: 23A

premium

boolean

If true, the seat is premium, which may impose additional restrictions.

feeApplies

boolean

If true, the seat requires payment.

inExitRow

boolean

If true, the seat is in an exit row.

selectable

boolean

If true, the seat can be booked through API.

quotedFee

object

The fee in the carrier's specific currency. Refer to Money.

localizedFee

object

The fee in the traveler's preferred currency. Refer to Money.

occupancyState

object

 
Suggest Edits

AirConfiguration

 

airConfiguration Contains site setting configurations for air shopping.

Name
Type
Description

fareBrandsEnabled

boolean

If true, indicates that fare brands are returned in a catalog response.

suppliers

array

useNegotiatedAirfare

boolean

If true, search for negotiated airfares during flight shopping.

companyCodeForNegotiatedAirfare

string

Special code used to obtain negotiated airfares during flight shopping. Often called a SNAP fare in Sabre, Private Fare in Apollo, or Secure Rate in Worldspan.

example: abcd

alwaysDisplayNegotiatedAirfares

string

Setting to always include negotiated airfares in shopping results even if less expensive alternatives are available. Must be YES, NO, or IGNORE. If set to YES, only negotiated airfares are returned – without any lower priced options.

fareLedSearchSettings

object

 
 

AirExtra contains details pertaining to the AirExtras on a flight. AirExtra currently refers to bags and meals.

Name
Type
Description

airExtraId

string

The unique identifier of the Air Extra.

Example: AE&78c27a43-2999-44b0-bc7e-ffda8756fd70.41319203&LUGGAGE&FLIGHT_JOURNEY&Outward&1

type

enum

scope

enum

flightId

string

The unique identifier of the flight with which this Air Extra is associated. Used when scope is FLIGHT.

journeyId

string

The unique identifier of the journey with which this Air Extra is associated. Used when scope is FLIGHT_JOURNEY.

itineraryId

string

The unique identifier of the itinerary with which this Air Extra is associated. Used when scope is FLIGHT_ITINERARY.

description

string

Information on the Air Extra, including a fee description, if applicable.

Example: 2 bags, upto 20 kg each, 20.00 USD

 
Suggest Edits

AirExtraPreferences

 

AirExtraPreferences contains the default payment card for the AirExtra. AirExtra currently refers to bags and meals.

Name
Type
Description

defaultPaymentCardId

string

Example: 1

 
Suggest Edits

AlternativeItems

 

alternativeItems contains a collection of itineraries that are the same price or cheaper than the one selected by the traveler.

Name
Type
Description

alternativeFlightItineraries

array

Itineraries with a lower price than the selected itinerary.

 
Suggest Edits

AnnotatedFlight

 

AnnotatedFlight contains all additional details of a flight.

Name
Type
Description

flightId

string

The unique identifier of the flight.

Example: c23e107e-2b3a-4793-a442-217fdec4dcb2

fromAirportCode

string

IATA Code of the airport from which the traveler wants to depart.

minLength: 3
maxLength: 3

Example: DFW

toAirportCode

string

IATA Code of the airport from which the traveler wants to arrive.

minLength: 3
maxLength: 3

Example: LAX

departureDate

string

Date on which the traveler will depart from the origin airport.

departureTime

string

The time on which the traveler will depart from the origin airport in hh:mm format.

Example: 03:00

arrivalDate

string

Date on which the traveler should arrive at the destination airport.

arrivalTime

string

The time on which the traveler will arrive at the destination airport in hh:mm format.

Example: 23:00

marketingAirlineCode

string

IATA airline code of the airline responsible for the traveler during the flight.

minLength: 2
maxLength: 2

Example: AA

marketingAirlineName

string

Full name of the airline responsible for the traveler during the flight.

Example: American Airlines

operatingAirlineCode

string

IATA airline code of the airline providing the aircraft for the flight.

minLength: 2
maxLength: 2

Example: AA

operatingAirlineName

string

Full name of the airline providing the aircraft for the flight.

Example: American Airlines

flightNumber

string

The unique identifier of the flight.

minLength: 1
maxLength: 6

Example: 1276

numberOfStops

integer

The number of stops during the journey, between 0-3.

minimum: 0
maximum: 3

equipment

object

distance

object

durationInMinutes

integer

The duration of the flight expressed in minutes.

Example: 125

cabinTypeName

string

The type of cabin where the seat is located.

Example: Coach

fareBasis

string

Example: KRA0AWEN

fareBrandName

string

The name of the brand associated with the fare.

Example: SeatAndBag

isAirConnect

boolean

If true, the airline is offered as part of the AirConnect capability of the product.

seatMapId

string

The unique identifier of the SeatMap belonging to the flight(s).

Example: SM&FROM_LOWFARE%3A24f47785-ec7e-4d29-9b96-7c94ee8d81c0.-1315553978%3AAA%3A2587%3A0704&site-siteNameuser-userName

fareRulesId

string

The unique identifier of the FareRules (limitations) belonging to the fare.

agencyPreference

corporatePreference

policyViolations

customNote

airlineConfirmationId

string

The unique identifier of the confirmation assigned by the airline when this flight has been booked.

Example: ADGETD

 
Suggest Edits

BookableAircraftSeats

 

BookableAircraftSeats contains the details of bookable aircraft seat(s) from the shopping catalog.

Note

bookableAircraftSeats can include a null seatIds element or [] in the POST /bookings request. Such a request will be treated as having no seats rather than returned as an error.

Name
Type
Description

seatIds

array, string

The unique identifier for the aircraft seat selected from the seatmap catalog.

minLength: 1
maxLength: 64

Example: FROM_LOWFARE:68c67a34-7c86-4a46-8eec-80e14d5e551a.1991351807:AA:1513&8A

paymentCard

object

temporaryPaymentCard

object

 
Suggest Edits

BookableAirExtras

 

BookableAirExtras contains the details of bookable AirExtra(s) from the shopping catalog.

Name
Type
Description

airExtraIds

array, string

The unique identifier for the Air Extra(s).

minLength: 1
maxLength: 256

Example: AE&78c27a43-2999-44b0-bc7e-ffda8756fd70.41319203&LUGGAGE&FLIGHT_JOURNEY&Outward&1

 
Suggest Edits

BookableComponents

 

BookableComponents contains the bookable itinerary and aircraft seat information from the shopping catalog.

Name
Type
Description

bookableFlightItinerary

object

bookableAircraftSeats

object

expirationDate

object

 
Suggest Edits

BookableFlightItinerary

 

BookableFlightItinerary contains the details of the air itinerary selected from the shopping catalog.

Name
Type
Description

itineraryId

string

The unique identifier for the air itinerary selected from the shopping catalog.

minLength: 1
maxLength: 64

Example: fe9d3808-ad10-4bb3-ab5d-a3bf4acc2fe8.1426400367

justifications

array

Contains the justification reason if the booking is outside of Sabre policy. Refer to JustificationTypeCode.

paymentCard

object

temporaryPaymentCard

object

The information of the temporary payment card used. Refer to PaymentCardWithRequiredPCIData.

loyalties

array

Information regarding the frequent flyer numbers for one or more traveler(s). Includes which traveler in the group the loyalty number is for, the industry standard code for the airline, and the loyalty number. Refer to TravelerLoyalty.

 
Suggest Edits

BookedAirExtra

 

BookedAirExtra contains the details of booked AirExtras from the itinerary.

Name
Type
Description

type

enum

scope

enum

description

string

Information on the Air Extra, including a fee description, if applicable.

Example: 2 bags, upto 20 kg each, 20.00 USD

quotedFee

object

The seat fee in the carrier's specific currency. Refer to Money.

localizedFee

object

The seat fee in the traveler's preferred currency. Refer to Money.

 
Suggest Edits

BookedComponents

 

BookedComponents contains an array of items from BookedItinerary.

Name
Type
Description

flightItinerary

array

 
Suggest Edits

BookedFlight

 

BookedFlight contains booked flight details on the itinerary.

Name
Type
Description

flightId

string

The unique identifier of the flight.

Example: c23e107e-2b3a-4793-a442-217fdec4dcb2

fromAirportCode

string

IATA Code of the airport from which the traveler wants to depart.

minLength: 3
maxLength: 3

Example: DFW

toAirportCode

string

IATA Code of the airport from which the traveler wants to arrive.

minLength: 3
maxLength: 3

Example: LAX

departureDate

string

Date on which the traveler will depart from the origin airport.

departureTime

string

The time on which the traveler will depart from the origin airport in hh:mm format.

Example: 03:00

arrivalDate

string

Date on which the traveler should arrive at the destination airport.

arrivalTime

string

The time on which the traveler will arrive at the destination airport in hh:mm format.

Example: 23:00

marketingAirlineCode

string

IATA airline code of the airline responsible for the traveler during the flight.

minLength: 2
maxLength: 2

Example: AA

marketingAirlineName

string

Full name of the airline responsible for the traveler during the flight.

Example: American Airlines

operatingAirlineCode

string

IATA airline code of the airline providing the aircraft for the flight.

minLength: 2
maxLength: 2

Example: AA

operatingAirlineName

string

Full name of the airline providing the aircraft for the flight.

Example: American Airlines

flightNumber

string

The unique identifier of the flight.

minLength: 1
maxLength: 4

Example: 1276

cabinTypeName

string

The type of cabin where the seat is located.

Example: Coach

fareBasis

string

Example: KRA0AWEN

fareBrandName

string

The name of the brand associated with the fare.

Example: SeatAndBag

isAirConnect

boolean

If true, the airline is offered as part of the AirConnect capability of the product.

airlineConfirmationId

string

The unique identifier of the confirmation assigned by the airline when this flight has been booked.

Example: ADGETD

assignedSeats

string

The seats assigned to the traveler(s) on the flight.

Example: 34A

airExtras

array

 
Suggest Edits

BookedItinerary

 

BookedItinerary contains the details of a booked itinerary.

Name
Type
Description

itineraryId

string

The unique identifier of the itinerary.

Example: c23e107e-2b3a-4793-a442-217fdec4dcb2

fare

object

journeys

array

airExtras

array

 
Suggest Edits

BookedJourney

 

BookedJourney contains details of booked flights and corresponding AirExtras on the itinerary.

Name
Type
Description

flights

array

airExtras

string

 
Suggest Edits

CartBookableAirExtraItems

 

CartBookableAirExtraItems contains AirExtras that are bookable from the cart.

Name
Type
Description

airExtras

array

 
Suggest Edits

CartBookableFlightItem

 

CartBookableFlightItem contains all flights that are bookable from the cart.

Name
Type
Description

flightItinerary

object

acceptableKnownPaymentOptions

array

Lists site and/or profile credit cards that can be used for payment (per flight or segment) based on restrictions from the supplier. Refer to PaymentOptionIdAndCustomDescription.

acceptableNewPaymentCards

array

Provides information about each cardTypeCode that can be used for payment, based on restrictions from the supplier. Refer to AcceptablePaymentCard.

paymentCardSecurityCodeRequired

boolean

If true, a card security code (CVV) is required with the payment. Note: When a security code is required it normally means that a site card (BTA card) cannot be used for payment.

 
Suggest Edits

CartBookableFlightSeatItems

 

CartBookableFlightSeatItems contains all flight seat items that are bookable from the cart.

Name
Type
Description

seats

array

An array of objects that describe particular seats and provide additional information about the corresponding flight. Refer to AircraftSeat.

acceptableKnownPaymentOptions

array

Lists site and/or profile credit cards that can be used for payment (per flight or segment) based on restrictions from the supplier. Refer to PaymentOptionIdAndCustomDescription.

acceptableNewPaymentCards

array

Provides information about each cardTypeCode that can be used for payment, based on restrictions from the supplier. Refer to AcceptablePaymentCard.

paymentCardSecurityCodeRequired

boolean

If true, a card security code (CVV) is required with the payment. Note: When a security code is required it normally means that a site card (BTA card) cannot be used for payment.

 
Suggest Edits

CartBookableItems

 

CartBookableItems contains a series of arrays and objects of bookable items from the cart.

Name
Type
Description

bookableFlightItineraries

array

bookableFlightSeats

object

bookableAirExtras

object

 
 

CartItem contains details of any item within a cart, and displays the unique identifier for each item.

Name
Type
Description

itemType

object

resourceId

string

The unique identifier of the resource.

 
Suggest Edits

CodeContext

 

CodeContext consists of identifiers for a policy violation.

Name
Type
Description

code

string

The code assigned to the policy violation.

Example: 1

Refer to the Travel Policy Guide for a full list of codes.

context

string

Standard context identifier to allow the code to be understood.

Example: TPV

Refer to the Travel Policy Guide for a full list of context identifiers.

 
Suggest Edits

ContactInfo

 

ContactInfo contains the contact information of all travelers listed on the itinerary.

Name
Type
Description

emailAddresses

string

The traveler's email address.

Example: johnsmith@work.com

telephoneNumbers

array

 
Suggest Edits

ConstrainedAnswer

 

ConstrainedAnswer contains the traveler's answer to the constrained question.

Name
Type
Description

answerId

string

The unique identifier of the answer.

answer

string

The traveler's answer to the constrained question.

isDefault

boolean

If true, this is the default value.

 
Suggest Edits

ConstrainedResponseAnswer

 

ConstrainedResponseAnswer contains an array of the traveler's answers to constrained questions.

Name
Type
Description

answerIds

array

Unique identifier given to the traveler's constrained response.

 
Suggest Edits

ConstrainedResponseDefinition

 

ConstrainedResponseDefinition contains the limitations placed on the constrained response to a question.

Name
Type
Description

numberOfAnswersAllowed

integer

The number of allowable answers to the question.

Example: 1

preDefinedAnswers

array

 
Suggest Edits

CorporateSettings

 

CorporateSettings contains information regarding company-specific travel settings.

Name
Type
Description

justifications

array

authorizerNames

string

The name of the employee in a corporation that provided approval for the trip.

Example: VP of Travel

supplementaryDataGroups

array

 
Suggest Edits

CustomNote

 

CustomNote contains informational links provided by Air Connect carriers.

For example, Air Asia provides links for items such as FAQs, checked baggage information, terms and conditions, and requirements for contact information with home phone and Mobile Rules.

Name
Type
Description

label

string

Label of the note.

minLength: 1
maxLength: 25

Example: Not recommended

text

string

Detailed contents of the note.

minLength: 1
maxLength: 200

Example: Flight is not recommended based on frequency of lateness

url

string

A link to an eternal web site proving additional information.

 
Suggest Edits

DateConstraintDefinition

 

DateConstraintDefinition contains the minimum and maximum allowable values for a number.

Name
Type
Description

earliest

string

The earliest date permitted in YYYY-MM-DD format.

Example: 2017-12-01

latest

string

The latest date permitted in YYYY-MM-DD format.

Example: 2017-12-05

 
 

Distance contains the overall distance of the flight.

Name
Type
Description

length

integer

The numerical distance/length of the flight.

unit

object

 
Suggest Edits

Equipment

 

Equipment contains the model of aircraft used for the flight.

Name
Type
Description

type

string

An industry standard code referring to the model of aircraft.

minLength: 1
maxLength: 10

Example: 777

name

string

The full name of the equipment, usually refers to the model name of the aircraft.

minLength: 1
maxLength: 20

Example: Boeing 777

 

Fare contains the details of the fare pricing.

Name
Type
Description

negotiated

boolean

If true, a special price for the fare has been negotiated between a travel agency/consolidator and an airline.

quotedPrice

object

The seat fee in the carrier's specific currency. Refer to FareBreakdown.

localizedPrice

object

The seat fee in the traveler's preferred currency. Refer to FareBreakdown.

 
Suggest Edits

FareBreakdown

 

FareBreakDown contains the costs of a fare.

Name
Type
Description

baseFare

object

Cost of the fare without taxes applied. Refer to Money.

taxes

array

totalTaxes

object

Cost of taxes applicable to the fare. Refer to Money.

totalFare

object

Total cost of the fare with taxes included. Refer to Money.

 
Suggest Edits

FareLedSearchPriority

 

fareLefSearchPriority contains a list of enumerators that prioritize air shopping search order.

Name
Type
Description

priorityOne

string

priorityTwo

string

priorityThree

string

priorityFour

string

 
Suggest Edits

FareLedSearchSettings

 

fareLedSearchSettings contains values that further specify air shopping criteria.

Name
Type
Description

timeSearchExtensionInHours

integer

The number of hours to extend the shopping search window around the requested depart time or arrival time – in both directions (until midnight). Must be an integer value from 0 to 8.

min: 0
max: 8
example: 8

numberOfConnectionsAllowed

integer

The number of connections to include in flight shopping. Must be an integer value from 1 to 3.

min: 1
max: 3
example: 2

enableUsersToSearchPlusMinusDates

integer

Boolean to enable or disable the +/- 1 to 3 day flight search option. Requires enablement and configuration of Super PNR by a GetThere technician. Only applies when shopping for Coach.

fareLedSearchPriority

array

 
Suggest Edits

FlightItinerary

 

FlightItinerary contains cancellation information for a booked flight itinerary.

Name
Type
Description

isVoidable

boolean

If true, this booking can be voided by the traveler.

isRefundable

enum

refund

object

Portion of the booking money to be returned. Refer to Money.

voucher

object

Form authorizing a disbursement of credit against a purchase or expense to be made in the future. Refer to Money.

cancellationPenalty

object

Portion of the booking money that is forfeited. Refer to Money.

 
Suggest Edits

FlightVoucher

 

FlightVoucher contains details of active Residual Travel Fund (RTF) vouchers for Southwest Airlines.

Important!

Vouchers are only supported when Southwest Airlines is used via Air Connect, not when used through the GDS.

Name
Type
Description

airlineCode

string

Code of the airline that issued the voucher.

minLength: 2
maxLength: 2

Example: AA

voucherCode

string

Unique code assigned to the voucher.

UW2WWG

expirationDate

string

The date on which the voucher expires in YYYY-MM-DD format.

Example: 2018-12-04

initialValue

Initial value of the voucher.

 
Suggest Edits

Itinerary

 

Itinerary contains the details of an itinerary.

Name
Type
Description

itineraryId

string

The unique identifier of the itinerary.

Example: c23e107e-2b3a-4793-a442-217fdec4dcb2

isSecuredByTSA

boolean

If true, additional traveler information is required for the flight(s) in the itinerary, such as date of birth and gender, as required by the United States Transportation Security Administration.

fare

object

journeys

array

policyViolations

array

customNotes

array

 
 

Journey contains details of the journey.

Name
Type
Description

journeyId

string

The unique identifier of the journey.

context

object

soldOut

boolean

If true, the journey is sold out.

flights

array

policyViolations

array

 
Suggest Edits

JourneyContext

 

JourneyContext contains additional details for the journey.

Name
Type
Description

fromAirportCode

string

IATA Code of the airport from which the traveler wants to depart.

minLength: 3
maxLength: 3

Example: DFW

toAirportCode

string

IATA Code of the airport from which the traveler wants to arrive.

minLength: 3
maxLength: 3

Example: LAX

date

string

The date in YYYY-MM-DD format.

time

string

The time in HH:mm format.

 
Suggest Edits

JustificationDescriptionTypeCode

 

JustificationDescriptionTypeCode contains the description associated to the justification for booking an air itinerary without a hotel or car.

Name
Type
Description

type

object

code

string

Example: CU

description

string

Example: Need to fly with customer

 
Suggest Edits

JustificationTypeCode

 

JustificationTypeCode contains the justification for booking an air itinerary without a hotel or car.

Name
Type
Description

type

object

code

string

Code belonging to the corresponding JustificationType.

Example: CU

 
Suggest Edits

Loyalties

 

Loyalties contains all traveler loyalties (frequent flyer miles) that are applicable to a flight.

Name
Type
Description

flight

array

 
 

Loyalty contains the traveler's loyalty program information (such as frequent flyer miles).

Name
Type
Description

vendorCode

string

IATA airline code of the airline offering the loyalty program.

Example: AA

loyaltyNumber

string

The identifier of the loyalty program.

Example: AA43434

 

Money represents an amount of money, with the ISO 4217 currency code included.

Name
Type
Description

amount

integer

The amount of money.

Example: 15600

currencyCode

string

The ISO 4217 currency code.

Example: USD

 
Suggest Edits

MoneyWithCode

 

MoneyWithCode contains information regarding the monetary amount and the ISO 4217 currency code.

Name
Type
Description

code

string

Example: X12

amount

integer

The amount of money.

Example: 15600

currencyCode

string

The ISO 4217 currency code.

Example: USD

 
Suggest Edits

NumberConstraintDefinition

 

NumberConstraintDefinition contains the minimum and maximum allowable values for a number.

Name
Type
Description

minimum

integer

The minimum numerical value permitted in int64 format.

Example: 12

maximum

integer

The maximum value permitted in int64 format.

Example: 22

 
Suggest Edits

OpenResponseAnswer

 

OpenResponseAnswer contains the traveler's answer to the open response question presented.

Name
Type
Description

answer

string

The traveler's answer to the open response question.

 
Suggest Edits

OpenResponseConfig

 

OpenResponseConfig contains various configuration parameters for the answer to an open response question.

Name
Type
Description

allowAlpha

boolean

allowNumeric

boolean

allowSpecialCharacters

boolean

allowText

boolean

regularExpression

string

minimumValue

string

maximumValue

string

inputMinimumLength

integer

inputMaximumLength

integer

 
Suggest Edits

OpenResponseDefinition

 

OpenResponseDefinition contains the limitations placed on an open response to a question.

Name
Type
Description

format

object

numberConstraint

object

dateConstraint

object

textConstraint

object

defaultAnswer

string

The default answer to the question.

Example: Monday

 
Suggest Edits

OptionalPCIData

 

OptionalPCIData contains optional payment card information.

Note: ^\d+$ below signifies a changing variable.

Name
Type
Description

securityCode

string

The security code of the payment card in ^\d+$ format.

minLength: 3
maxLength: 4

Example: 0000

typeCode

enum

ownerName

string

Name of the owner of the card.

Example: Vernon Bear

number

string

The payment card number in ^\d+$ format.

minLength: 8
maxLength: 19

Example: 4444333322221111

expirationDate

string

The expiration date of the payment card in MM/yy format.

Example: 10/18

 
 

Passport contains the traveler's passport information.

Name
Type
Description

issuingCountryCode

string

The ISO 4217 country code.

number

string

The passport number.

Example: A00000000

expirationDate

string

Passport expiration date in YYYY-MM-DD format.

Example: 2017-12-01

 
Suggest Edits

PaymentCardWithRequiredPCIData

 

PaymentCardWithRequiredPCIData contains payment card information used to book the air itinerary.

Name
Type
Description

billingAddress

object

pciData

object

 
Suggest Edits

PaymentCardIdAndCustomDescription

 

PaymentCardIdAndCustomDescription contains the description of a payment card based on the paymentCardId provided.

Name
Type
Description

paymentCardId

string

The unique identifier of a payment card.

minLength: 1
maxLength: 100

Example: 1

customDescription

string

The description of a payment card.

minLength: 1
maxLength: 100

Example: Credit Card

isBillingAddressInProfile

boolean

If true, the billing address is defined correctly for this card in a profile or site.

 
Suggest Edits

PaymentCardWithOptionalPCIData

 

PaymentCardWithOptionalPCIData contains payment card information used to book the air itinerary.

Name
Type
Description

paymentCardId

string

The unique identifier of a payment card.

minLength: 1
maxLength: 100

billingAddress

object

pciData

object

 
Suggest Edits

PaymentCards

 

PaymentCards contains arrays of payment card information for the flight, as well as any AirExtras.

Name
Type
Description
 
Suggest Edits

PaymentOptionIdAndCustomDescription

 

PaymentOptionIdAndCustomDescription contains information regarding the payment option selected.

Name
Type
Description

type

object

paymentOptionId

string

The identifier of the payment option.

minLength: 1
maxLength: 100

Example: 0

customDescription

string

The description of the payment option.

minLength: 1
maxLength: 100

Example: Test Visa

quotedUsageFee

object

The fee in the carrier's specific currency. Refer to Money.

localizedUsageFee

object

The fee in the traveler's preferred currency. Refer to Money.

isDefaultFormOfPayment

boolean

If true, this payment type is the default payment.

isBillingAddressInProfile

boolean

If true, the billing address is defined correctly for this card in a profile or site.

 
Suggest Edits

PersonalIdentifiableInformation

 

PersonalIdentifiableInformation contains the traveler's personally identifiable information.

Name
Type
Description

firstName

string

The traveler's first name.

Example: John

middleName

string

The traveler's middle initial or name.

Example: B

lastName

string

The traveler's last name.

Example: Smith

birthDate

string

The traveler's date of birth.

Example: 1960-12-23

redressNumber

string

The Redress Control Number (redress number) allows the Transportation Security Administration's (TSA) Secure Flight program to match travelers with the results of their redress case.

Example: 2323RED

passport

object

 
Suggest Edits

PersonalInformation

 

PersonalInformation contains the traveler's personal information. This object is split between non-personally identifiable information (gender and namePrefix) and personally identifiable information (personalIdentifiableInformation).

Name
Type
Description

gender

enum

namePrefix

enum

personalIdentifiableInformation

object

 
Suggest Edits

Preference

 

Preference identifies if the flight is preferred for the organization and why.

Name
Type
Description

preferred

boolean

If true, this the flight is preferred for the organization.

label

string

Detailed contents of the note.

Example: Company preferred

 
Suggest Edits

Preferences

 

Preferences contains the traveler's preferences for the flight and AirExtras.

Name
Type
Description

flight

object

airExtras

object

 
Suggest Edits

PricedJourney

 

pricedJourney contains all elements of the Journey object, but includes a special combinabilityKey that checks if journeys can be combined.

Name
Type
Description

fare

object

combinabilityKey

string

Indicates which journeys may be combined.

 
Suggest Edits

RailItinerary

 

RailItinerary contains cancellation information if rail was included in the booked flight itinerary.

Name
Type
Description

cancellationPenalty

object

Portion of the booking money that is forfeited. Refer to Money.

 
Suggest Edits

RequiredPCIData

 

RequiredPCIData contains required payment card information.

Note: ^\d+$ below signifies a changing variable.

Name
Type
Description

securityCode

string

The security code of the payment card in ^\d+$ format.

minLength: 3
maxLength: 4

Example: 0000

typeCode

enum

ownerName

string

Name of the owner of the card.

Example: Vernon Bear

number

string

The payment card number in ^\d+$ format.

minLength: 8
maxLength: 19

Example: 4444333322221111

expirationDate

string

The expiration date of the payment card in MM/yy format.

Example: 10/18

 
Suggest Edits

SupplementaryDataQuestion

 

SupplementaryDataQuestion contains details pertaining to a specific question asked to the traveler during the booking process. Responses can be in an openResponse format or a constrainedResponse format.

Name
Type
Description

supplementaryDataQuestionId

string

The unique identifier of the Supplementary Data Question.

question

string

Example: What is your favorite aircraft on which to travel?

answerRequired

boolean

If true, an answer to the question is required.

instructionalText

string

Example: Enter the type of aircraft that you prefer to travel on, whether for a domestic trip or for an international trip.

openResponse

object

constrainedResponse

object

 
Suggest Edits

SupplementaryDataQuestionGroup

 

SupplementaryDataQuestionGroup contains multiple supplementary data questions.

Name
Type
Description

name

string

Example: INFORMAL VOTE ON PREFERENCES WHEN TRAVELING

supplementaryDataQuestions

array

 
Suggest Edits

TelephoneNumber

 

TelephoneNumber contains the traveler’s telephone number information.

Name
Type
Description

number

string

The traveler’s phone number without special characters.

Example: 2145551234

 
Suggest Edits

TextConstraintDefinition

 

TextConstraintDefinition contains an expression that defines a constraint.

Name
Type
Description

expression

string

An expression that defines the constraint.

Example: [^a-zA-Z]

 
Suggest Edits

TravelerContactInfo

 

ContactInfo contains the traveler's contact information.

Name
Type
Description

emailAddresses

string

The traveler's email address.

Example: johnsmith@work.com

telephoneNumbers

array

 
Suggest Edits

TravelJustification

 

TravelJustification contains information regarding the reason why the booking is being made.

Name
Type
Description

travelPurpose

string

The reason why the itinerary is being booked.

authorizerName

string

The name of the person approving or authorizing the itinerary to be booked.

justifications

string

The justification for booking an air itinerary without a hotel or car. Refer to JustificationTypeCode.

 
Suggest Edits

TravelerLoyalty

 

TravelerLoyalty contains information regarding the frequent flyer numbers for one or more traveler(s).

Name
Type
Description

travelerSequenceNumber

string

The order in which the traveler is checked into a seat segment.

vendorCode

string

IATA airline code of the airline offering the loyalty program.

loyaltyNumber

string

The identifier of the loyalty program.

Example: AA43434

 
Suggest Edits

TravelerPersonalInformation

 

TravelerPersonalInformation contains the traveler's information.

Name
Type
Description

travelerId

string

The unique identifier of the Traveler making the request.

Example: site-SiteNameuser-UserName

sequenceNumber

string

The order in which the traveler is checked into a seat segment.

gender

enum

namePrefix

enum

personalIdentifiableInformation

object

 
Suggest Edits

Violation

 

Violation contains any policy violations associated with the flight(s).

Refer to the Travel Policy Guide for further information.

Name
Type
Description

type

object

behavior

object

ruleName

string

Name of the rule associated with the violation.

minLength: 1
maxLength: 60

fromAirportCode

string

IATA Code of the airport from which the traveler wants to depart.

minLength: 3
maxLength: 3

toAirportCode

string

IATA Code of the airport from which the traveler wants to arrive.

minLength: 3
maxLength: 3

 
 

Vouchers contains information on active Residual Travel Fund (RTF) vouchers for Southwest Airlines.

Important!

Vouchers are only supported when Southwest Airlines is used via Air Connect, not when used through the GDS.

Name
Type
Description

flight

array

 
Suggest Edits

AircraftSeatMapDeckLevel

 

AircraftSeatMapDeckLevel identifies which deck level the aircraft seat is on.

Name
Description

UPPER

LOWER

 
Suggest Edits

AircraftSeatMapRowItemOccupancyState

 

AircraftSeatMapRowItemType identifies the availability of the seat.

Name
Description

AVAILABLE

The seat can be booked.

ASSIGNED

The seat has already been booked.

UNAVAILABLE

The seat is unavailable for booking, or the airline API describes this space as unavailable.

 
Suggest Edits

AircraftSeatMapRowItemType

 

AircraftSeatMapRowItemType identifies the type of item in an aircraft row.

Name
Description

SEAT

AISLE

 
Suggest Edits

AirExtraScope

 

AirExtraScope identifies the supported scope of AirExtras, the part of an itinerary to which the AirExtra applies.

Name
Description

FLIGHT_ITINERARY

FLIGHT_JOURNEY

FLIGHT

 
Suggest Edits

AirExtraType

 

AirExtraType identifies the the current supported types of AirExtras.

Name
Description

LUGGAGE

MEAL

 
Suggest Edits

bookingState

 

bookingState within /bookings/{id} identifies the current state of the booking.

Name
Description

ARCHIVED

The booking has been archived within the system.

CANCELED

The booking has been canceled.

ACTIVE

The booking is currently active.

QUEUED

The booking is in the queue, and is awaiting processing.

TICKETED

The booking has been ticketed.

 
Suggest Edits

CartItemType

 

CartItemType identifies the type of item in a cart to be added, removed, or modified.

Name
Description

FLIGHT_ITINERARY

FLIGHT_JOURNEY

FLIGHT_SEAT

 
Suggest Edits

CatalogType

 

CatalogType identifies the type of asset within a catalog.

Name
Description

FLIGHT_ITINERARY

FLIGHT

 
Suggest Edits

ClassOfService

 

ClassOfService identifies the fare class the traveler prefers.

Name
Description

COACH

PREMIUM_ECONOMY

BUSINESS

FIRST

 
Suggest Edits

DistanceUnit

 

DistanceUnit identifies the unit of distance.

Name
Description

MILE

KM

 
 

FareType identifies the requested pricing type for the fare, and what restrictions are acceptable.

Name
Description

LOWEST_AVAILABLE

NO_ADVANCE_PURCHASE

NO_PENALTY

UNRESTRICTED

 
Suggest Edits

GenderType

 

GenderType identifies the gender of the traveler.

Name
Description

MALE

FEMALE

 
Suggest Edits

isRefundable

 

isRefundable within FlightItinerary identifies if the itinerary is refundable.

Name
Description

TRUE

FALSE

UNKNOWN

 
Suggest Edits

JustificationType

 

JustificationType identifies the type of asset for which a justification applies.

Name
Description

FLIGHT

HOTEL_STAY

CAR_RENTAL

NO_HOTEL_BOOKED

NO_CAR_BOOKED

 
Suggest Edits

NamePrefixType

 

NamePrefixType identifies the preferred name prefix of the traveler.

Name
Description

Mr

Mrs

Ms

Miss

Dr

 
Suggest Edits

OpenResponseFormatType

 

OpenResponseFormatType identifies the format of the data in an open response.

Name
Description

NUMBER

DATE

TEST

 
Suggest Edits

PaymentCardTypeCode

 

Identifies the type of payment card used.

Name
Description

AX

American Express

CA

Mastercard

DC

Diner's Club

DS

Discover

ER

Enroute

JC

JCB Card

TP

Air Plus

VI

Visa

VD

Visa Debit

VE

Visa Electron

 
Suggest Edits

PaymentType

 

PaymentType identifies the type of payment used.

Name
Description

PAYMENT_CARD

BILL_TO_ACCOUNT

 
 

priority identifies the order in which to display air shopping results.

PRICE

NON-STOP

TIME

AIRLINE

 
Suggest Edits

Suppliers

 

suppliers identifies the configured suppliers.

Name
Description

AGENTWARE

AMADEUS

APOLLO

GALILEO

SABRE

TRAVELFUSION

WORLDSPAN

 
Suggest Edits

TelephoneNumberType

 

TelephoneNumberType identifies the type of telephone number provided.

Name
Description

HOME

BUSINESS

MOBILE