# Initiate booking Initiates a new air booking for the trip. The identityDocs field supports the following traveler identity documents: Passport, National ID, Known Traveler Number (KTN), redress number, and immigration documents. The traveler can choose one among the list of identity documents available and provide its information during checkout. Endpoint: POST /v2/air/initiate-booking Version: v2 Security: Bearer ## Request fields (application/json): - `initiateBookingWorkflowIds` (object) The set of unique response ids associated with initiate booking workflow. - `initiateBookingWorkflowIds.checkoutResponseId` (string) ID sent by the backend in the air checkout response. - `initiateBookingWorkflowIds.seatMapResponseId` (string) ID sent by the backend in the air seat map response. - `travelers` (array) - `travelers.travelerDetails` (object, required) - `travelers.travelerDetails.travelerInfo` (any) - `travelers.travelerDetails.travelerType` (string) Type of passenger Enum: "UNKNOWN_PASSENGER_TYPE", "ADULT", "CHILD", "INFANT", "INFANT_ON_LAP", "YOUTH", "SENIOR", "TEEN" - `travelers.travelerDetails.title` (string) Enum: "TITLE_UNKNOWN", "MR", "MS", "MRS", "MX", "MASTER", "MISS", "DR", "PROFESSOR", "CAPTAIN", "REVEREND", "HONOURABLE", "SIR", "LADY", "AMBASSADOR", "LORD", "BRIGADIER", "SENATOR", "DAME", "JUSTICE", "UK" - `travelers.travelerDetails.name` (object) Full name containing first, middle, last (family) names, and suffix. - `travelers.travelerDetails.name.family1` (string, required) Last (family) name. Example: "Gandas" - `travelers.travelerDetails.name.family2` (string) Example: "FamilyTwo" - `travelers.travelerDetails.name.given` (string, required) First (given) name. Example: "Vichitr" - `travelers.travelerDetails.name.middle` (string) Middle name. Example: "Kumar" - `travelers.travelerDetails.name.suffix` (string) Suffix used with the name. For example SR or JR. Enum: "NAME_SUFFIX_UNKNOWN", "SR", "JR", "MD", "PHD", "II", "III", "IV", "DO", "ATTY", "V", "VI", "ESQ", "DC", "DDS", "VM", "JD", "SECOND", "THIRD" - `travelers.travelerDetails.name.preferred` (string) Informal preferred name added by traveler. This is not used on any PNR or tickets Example: "Don" - `travelers.travelerDetails.gender` (string) Enum: "MALE", "FEMALE", "UNSPECIFIED", "UNDISCLOSED" - `travelers.travelerDetails.dob` (object) Date in ISO 8601 standard. - `travelers.travelerDetails.dob.iso8601` (string, required) Example: "2017-07-21" - `travelers.travelerDetails.phoneNumber` (object) Properly formatted phone number. - `travelers.travelerDetails.phoneNumber.countryCode` (integer) two digit country code Example: 91 - `travelers.travelerDetails.phoneNumber.countryCodeSource` (string) Enum: "UNSPECIFIED", "FROM_NUMBER_WITH_PLUS_SIGN", "FROM_NUMBER_WITH_IDD", "FROM_NUMBER_WITHOUT_PLUS_SIGN", "FROM_DEFAULT_COUNTRY" - `travelers.travelerDetails.phoneNumber.extension` (string) phone number extension Example: "222" - `travelers.travelerDetails.phoneNumber.isoCountryCode` (string) ISO alpha-2 code Example: "IN" - `travelers.travelerDetails.phoneNumber.italianLeadingZero` (boolean) Example: true - `travelers.travelerDetails.phoneNumber.nationalNumber` (integer) Example: 8150 - `travelers.travelerDetails.phoneNumber.numberOfLeadingZeros` (integer) Example: 1 - `travelers.travelerDetails.phoneNumber.preferredDomesticCarrierCode` (string) Example: "7" - `travelers.travelerDetails.phoneNumber.rawInput` (string) Example: "77777" - `travelers.travelerDetails.phoneNumber.type` (string) Enum: "UNKNOWN_TYPE", "MOBILE", "LANDLINE" - `travelers.travelerDetails.email` (string) Example: "example@email.com" - `travelers.travelerDetails.identityDocs` (array) - `travelers.travelerDetails.address` (object) Postal Address Details - `travelers.travelerDetails.address.addressLines` (array, required) Address lines Example: ["Golden Gate Bridge"] - `travelers.travelerDetails.address.administrativeArea` (string) Code of administrative area. For example: DL for Delhi, India. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated. Example: "CA" - `travelers.travelerDetails.address.administrativeAreaName` (string) Name of administrative area. This is full name corresponding to administrativeArea. Like Delhi for DL area code. For some places, code and name maybe same as well like Tokyo. Example: "California" - `travelers.travelerDetails.address.description` (string) Address description Example: "San Francisco Home" - `travelers.travelerDetails.address.isDefault` (boolean) Whether this address is default address in case multiple addresses are specified. Example: true - `travelers.travelerDetails.address.languageCode` (string) BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. Examples: "zh-Hant", "ja", "ja-Latn", "en". Example: "en" - `travelers.travelerDetails.address.locality` (string) Generally refers to the city/town portion of the address. Example: "San Francisco" - `travelers.travelerDetails.address.locationCode` (string) IATA 3-letter location code. See https://www.iata.org/en/services/codes. Example: "LAX" - `travelers.travelerDetails.address.organization` (string) The name of the organization at the address. Example: "Spotnana" - `travelers.travelerDetails.address.postalCode` (string) Postal code of the address. This is a required field when setting for a user/legal entity/company etc. Example: "94130" - `travelers.travelerDetails.address.continentCode` (string) 2 letter continent code of the continent this address falls in. Example: "AF" - `travelers.travelerDetails.address.recipients` (array) The recipient at the address. - `travelers.travelerDetails.address.regionCode` (string, required) Region code of the country/region of the address. Example: "US" - `travelers.travelerDetails.address.regionName` (string) Region name of the country/region of the address. Example: "America" - `travelers.travelerDetails.address.revision` (integer) Example: 1 - `travelers.travelerDetails.address.sortingCode` (string) Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number alone, representing the "sector code" (Jamaica), "delivery area indicator" (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). Example: "Jamaica" - `travelers.travelerDetails.address.sublocality` (string) Sublocality of the address. This can be neighborhoods, boroughs, districts. - `travelers.travelerDetails.address.timezone` (string) Time zone of the address. Example: "America/Los_Angeles" - `travelers.travelerDetails.address.coordinates` (object) Map coordinates of the address. - `travelers.travelerDetails.address.coordinates.latitude` (number, required) Latitude of the Location Example: 77.1025 - `travelers.travelerDetails.address.coordinates.longitude` (number, required) Longitude of the Location Example: 28.7041 - `travelers.travelerDetails.loyaltyInfos` (array) - `travelers.travelerDetails.loyaltyInfos.appliedTo` (array) Example: ["TAJ"] - `travelers.travelerDetails.loyaltyInfos.id` (string, required) Example: "firstId" - `travelers.travelerDetails.loyaltyInfos.issuedBy` (string, required) Example: "firstIssuedBy" - `travelers.travelerDetails.loyaltyInfos.linked` (boolean) Indicates if this loyalty account is linked to the external provider. Only applicable for certain loyalty types. - `travelers.travelerDetails.emergencyContact` (object) Emergency contact information. - `travelers.travelerDetails.emergencyContact.name` (string, required) Full name of contact. Example: "John Smith" - `travelers.travelerDetails.emergencyContact.email` (string) Email address of contact. Example: "emergency-contact@email.com" - `travelers.travelerDetails.emergencyContact.relation` (string) Relation of contact to user. Enum: "RELATION_UNKNOWN", "SPOUSE", "PARENT", "SIBLING", "CHILD", "FRIEND", "RELATIVE", "COLLEAGUE", "OTHER" - `travelers.travelerDetails.emergencyContact.phoneNumbers` (array, required) Phone numbers of contact. - `travelers.travelerDetails.emergencyContact.preferredLanguage` (string) Language preferred by user. Example: "en-US" - `travelers.travelerDetails.emergencyContact.designation` (string) Job title of contact. Example: "MANAGER" - `travelers.travelerDetails.travelerId` (object) The ID of the traveler. - `travelers.travelerDetails.emergencyContactInfo` (object) Emergency contact information. - `travelers.travelerDetails.emergencyContactInfo.designation` (string) Example: "MANAGER" - `travelers.travelerDetails.emergencyContactInfo.userOrgId` (object) User and user's organization information. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.organizationId` (object, required) Organization id for traveler. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.userId` (object, required) User identifier - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo` (object) TMC related basic information. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc` (object, required) Contracting TMC is the TMC the user/organization contracted. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.id` (object, required) Company ID - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.name` (string) - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo` (object) Company logo - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.data` (string) Example: "6935813e12584abda0e43d71cd2ea260" - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions` (object) Image dimensions ie width and height. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions.height` (integer) Example: 120 - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.dimensions.width` (integer) Example: 240 - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo.contractingTmc.logo.url` (string) Example: "https://static.wixstatic.com/media/73f2e2_6935813e12584abda0e43d71cd2ea260~mv2.png/v1/fill/w_630,h_94,al_c,q_85,usm_0.66_1.00_0.01/Spotnana%403x.webp" - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcBasicInfo.bookingTmc` (object, required) Booking TMC is the TMC used for the bookings for the user/organization. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.organizationAgencyId` (object) Agency id for the organization. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcInfo` (object) TMC config information. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcInfo.id` (object, required) TMC id. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcInfo.primaryServiceProviderTmc` (object, required) Primary service provider TMC for the TMC. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcInfo.primaryServiceProviderTmc.tmcId` (object, required) Id of the service provider TMC. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcInfo.secondaryServiceProviderTmcs` (array) Secondary service provider TMCs for the TMC. - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcInfo.secondaryServiceProviderTmcs.supplier` (string, required) Supplier for which this service provider should be used. Enum: "SABRE", "AMADEUS", "TRAVEL_FUSION", "FARELOGIX_NDC", "ATPCO_NDC", "TRAINLINE", "AVIA", "QBR", "BCD", "QANTAS_HOTELS", "SOUTHWEST", "EXPEDIA", "HOTEL_HUB", "NDC", "MARRIOTT", "CLEARTRIP", "KYTE", "GROUNDSPAN", "SABRE_NDC", "BOOKING_COM", "CARTRAWLER", "PREMIER_INN", "TRAVELODGE" - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcInfo.secondaryServiceProviderTmcs.travelType` (string, required) Travel type for which this service provider should be used. Enum: "AIR", "HOTEL", "CAR", "RAIL", "LIMO", "MISC", "ALL" - `travelers.travelerDetails.emergencyContactInfo.userOrgId.tmcInfo.partnerTmcId` (object) Useful to identify the clients onboarded by a PARTNER_TMC - `travelers.seats` (array, required) - `travelers.seats.flightId` (string, required) The ID of the flight associated with this baggage. - `travelers.seats.seatNumbers` (array, required) The seat numbers selected for the associated flight. - `travelers.baggages` (array, required) - `travelers.baggages.legId` (string, required) The ID of the leg associated with this baggage. - `travelers.baggages.baggageIds` (array, required) The IDs of the selected baggage options from the flight checkout API response. - `travelers.ancillaries` (array) The ancillary options selected during checkout. - `travelers.ancillaries.ancillaryId` (string, required) The ID of the selected ancillary option. Example: "ancillary_0" - `travelers.shareContactInfo` (boolean) Flag to support IATA regulation 830d that requires user's consent to share email and phone with airline. If set to true, airlines will have access to traveler's email and phone to directly communicate events like operational disruption. - `travelers.specialServiceRequests` (array) List of all Special Service Requests (SSR) for the traveler. - `travelers.specialServiceRequests.indexes` (object) Indexes for the flight and leg for which the changes are requested. - `travelers.specialServiceRequests.indexes.legIndex` (integer, required) Index referencing the flight leg for which the SSR should be added. Should be used in conjunction with the flight Index. Example: 1 - `travelers.specialServiceRequests.indexes.flightIndex` (integer, required) Index referencing the flight for which the SSR should be added. Should be used in conjunction with the leg Index. Example: 2 - `travelers.specialServiceRequests.flightIndex` (integer) Index referencing the flight for which the changes are requested. - `travelers.specialServiceRequests.code` (string, required) Unique 4-letter code for the Special Service Request (SSR). Example: "WCHC" - `travelers.specialServiceRequests.info` (string) Free text field for adding additional details about the Special Service Request (SSR). Example: "Special meal without egg." - `bookingCharges` (array) - `bookingCharges.amount` (object) The amount to be charged for this payment method. This is optional if there's only one payment method provided for the booking. - `bookingCharges.amount.base` (object, required) Base fare amount. - `bookingCharges.amount.base.amount` (number, required) The numeric value for the amount of money. Example: 510 - `bookingCharges.amount.base.currencyCode` (string, required) The 3-letter currency code for the money amount (defined using ISO 4217 standard). Example: "GBP" - `bookingCharges.amount.base.convertedAmount` (number) The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency). Example: 715.42 - `bookingCharges.amount.base.convertedCurrency` (string) The 3-letter currency code for the converted currency (defined using ISO 4217 standard). Example: "USD" - `bookingCharges.amount.base.otherCoinage` (array) List of the dollar amount in other coinage systems like reward points, cryptocurrency etc. - `bookingCharges.amount.base.otherCoinage.coinageCode` (string) Payment method Enum: "PAYMENT_METHOD_UNKNOWN", "CREDIT_CARD", "BREX_POINTS", "CASH", "QANTAS_POINTS", "VENDOR_PROGRAM_PAYMENT", "DELAYED_INVOICING", "FLIGHT_CREDITS", "QANTAS_TRAVEL_FUND", "CUSTOM_VIRTUAL_PAYMENT", "FLIGHT_PASS", "MISCELLANEOUS_CREDIT_ORDER" - `bookingCharges.amount.base.otherCoinage.amount` (number) Example: 1000 - `bookingCharges.amount.base.otherCoinage.conversionRate` (number) 1 coin in this system equals to how many currency value Example: 0.01 - `bookingCharges.amount.base.otherCoinage.preferredCurrencyConversionRate` (number) 1 coin in this system equals to how many currency value Example: 0.01 - `bookingCharges.amount.tax` (object, required) Tax amount. - `bookingCharges.amount.taxBreakdown` (array) Breakdown of tax amounts. - `bookingCharges.amount.taxBreakdown.amount` (object, required) Tax amount - `bookingCharges.amount.taxBreakdown.taxCode` (string) Tax code Example: "VAT" - `bookingCharges.amount.taxBreakdown.percentage` (number) Tax amount to total amount Example: 9 - `bookingCharges.paymentMethod` (any) - `bookingContact` (object) Booking contact for the itinerary. Airlines send all update and change information to booking contact as well. - `bookingContact.emailAddress` (string) Email address of the booking contact Example: "mail@mail.com" - `useExistingBooking` (boolean) Use existing booking if it exists to initiate ## Response 200 fields (application/json): - `initiateBookingResponseId` (string) Initiated booking's reference id Example: "CuwDQ2hCa09HVTJZemsyWVRFNFlUUm" - `paymentSourcePrePaymentInformation` (array) - `paymentSourcePrePaymentInformation.paymentSourceId` (string) Unique identifier identifying this payment source. Example: "f49d00fe-1eda-4304-ba79-a980f565281d" - `paymentSourcePrePaymentInformation.paymentRequestId` (string) Payment source initialization request id Example: "XHY675ER7Y2" - `paymentSourcePrePaymentInformation.additionalInformation` (object) Payment source specific additional pre-payment information needed to initialize payment provider - `paymentSourcePrePaymentInformation.additionalInformation.loyaltyAccountNumber` (string) Loyalty account number in case rewards program is used - `paymentSourcePrePaymentInformation.additionalInformation.loyaltyProgramName` (string) Loyalty program name in case rewards program is used - `paymentSourcePrePaymentInformation.additionalInformation.canStoreCreditCard` (boolean) Is payment provider allowed to store user's credit card information ## Response 401 fields (application/json): - `debugIdentifier` (string) Link to debug the error internally. - `errorMessages` (array) - `errorMessages.errorCode` (string) Error code to identify the specific errors. - `errorMessages.message` (string) Message containing details of error. - `errorMessages.errorParameters` (array) Error message parameters. - `errorMessages.errorParameters.name` (string) Parameter name - `errorMessages.errorParameters.value` (string) Parameter value - `errorMessages.errorDetail` (string) More details about the error. ## Response 403 fields (application/json): - `debugIdentifier` (string) Link to debug the error internally. - `errorMessages` (array) - `errorMessages.errorCode` (string) Error code to identify the specific errors. - `errorMessages.message` (string) Message containing details of error. - `errorMessages.errorParameters` (array) Error message parameters. - `errorMessages.errorParameters.name` (string) Parameter name - `errorMessages.errorParameters.value` (string) Parameter value - `errorMessages.errorDetail` (string) More details about the error. ## Response 404 fields (application/json): - `debugIdentifier` (string) Link to debug the error internally. - `errorMessages` (array) - `errorMessages.errorCode` (string) Error code to identify the specific errors. - `errorMessages.message` (string) Message containing details of error. - `errorMessages.errorParameters` (array) Error message parameters. - `errorMessages.errorParameters.name` (string) Parameter name - `errorMessages.errorParameters.value` (string) Parameter value - `errorMessages.errorDetail` (string) More details about the error.