Requesting Air Tickets
AirReqRsp.xsd
Air Pricing > Create Air Booking > Air Ticketing OR
Low Fare Shop > Air Pricing (recommended) > Create Air Booking > Air Ticketing
Ticketing is typically included as a follow-on request to an Air Booking response.
Any number of tickets can be issued from one Stored Fare Quote when a booking has multiple passengers. Tickets can also be issued when there is more than one Stored Fare Quote in the PNR.
Schema
Located in AirReqRsp.xsd:
Request
AirTicketingReq is used to request tickets for an existing booking.
-
Enter the minimum required data for the air ticketing request.
- /BillingPointOfSaleInfo @OriginApplication
- /AirReservationLocatorCode
-
Optionally, add ticketing modifiers.
Air Ticketing Modifier DetailsAir ticketing modifiers are located in AirTicketingReq/AirTicketingModifiers.
-
@PlatingCarrier: The plating carrier for the ticket.
-
@TicketedFareOverride: Allows reissuance of stored fares that have already been ticketed.
-
/DocumentModifiers: Allow generation of itinerary and/or invoice and accounting interface message at time of ticketing.
-
/AirPricingInfoRef: References AirPricing from a shared list.
- /TourCode: Allows tour code modification during ticket issuance. Supports sending:
14 characters in requests to the Worldspan (1P) provider, as currently supported by DIR
If AirTicketingModifiers/TourCode @Value is provided in a request to a provider other than Worldspan (1P), a warning is returned: TourCode modifier is not supported for the requested provider. Galileo (1G), Apollo (1V), and Airline Content Hub (ACH) do not support the modifier.
-
BulkTicket: Allows a user to set the amount being charged for the ticket in the provider PNR, rather than the amount paid by the user.
-
When AirTicketingReq @BulkTicket is sent, TourCode must also be included in the request or a warning is returned: BulkTicket cannot be requested without Tour Code.
-
Bulk ticket is available for Worldspan (1P) only. If a request with @BulkTicket is submitted to another provider, a warning is returned: BulkTicket is not supported for the requested provider.
-
-
Commission: Typically used for Net Remittance.
Commission is available for Galileo (1G) and Worldspan (1P). If a request with AirTicketingReq/Commission is submitted to another provider, a warning is returned: Commission is not supported for the requested provider in AirTicketingReq.
- @Level must be "Fare" or an error is returned.
- @Type can be "Flat", "PercentBase", or "PercentTotal".
- If "Flat", then Amount must be present or an error is returned.
- If "PercentBase" or "PercentTotal", then @Percentage must be present or an error is returned.
-
-
@Amount is used for Net Remit ticketing, and documents how the commission is to be calculated/reported. Amount is an optional string. Either the Value or the Amount attribute must be populated, but are mutually exclusive.
-
@Value is used for Net Remit ticketing, and documents how the commission is to be calculated/reported. The Value is supported only if the BSP permits a Net Remit scheme. A Value that is valid for the scheme/method for customer’s BSP must be entered.
Special characters and spaces are not supported in @Value because they are not accepted by Galileo. Value supports non-numeric commission values. When the Value attribute is populated, additional Commission attributes must have the following values:
- Level="Fare"
- Type="Flat"
Value is an optional string. Either the Value or the Amount attribute must be populated, but are mutually exclusive. Additionally, if the Value attribute is populated, a valid value must be supplied in the Modifier attribute.
-
-
Commission @CommissionOverride is used to continue ticketing when a commission mismatch error is returned by the provider in the AirTicketingRsp: "CAT 35 COMMISSION EXISTS-ADD -OK OPTION TO OVERRIDE".
CommissionOverride must be sent in a subsequent AirTicketingReq when an error is returned in the initial request.
Note: Only Worldspan (1P) supports this functionality.
- AirTicketingModifiers/TicketEndorsement: allows endorsements to be added to the ticket. Only the first 29 characters of each endorsement are added to the stored fare and saved in the Universal Record. Up to three manually-entered endorsements are allowed.
- AirTicketingModifiers @SuppressTaxandFee: Suppresses the tax and fees from printing with the invoice itineraries. Set to "true" to suppress taxes and fees from printing.
- AirTicketingModifiers/FormOfPayment: Add a Form of Payment to a ticket. See AirTicketingReq schema for Forms of Payment for more details.
TicketEndorsement is available for Worldspan (1P) only. If a request is submitted to another provider that includes TicketEndorsemenet, a warning is returned: TicketEndorsement is not supported for the requested provider in AirTicketingReq.
SuppressTaxandFee is available for Worldspan (1P) only. If a request is submitted to another provider that includes FormOrPayment, a warning is returned: FormOfPayment is not supported for the requested provider in AirTicketingReq.
SuppressTaxandFee must be used with DocumentModifiers @GenerateItineraryInvoice or a warning is returned: The SuppressTaxandFee Ticketing modifier is applicable for E-Ticket or E-Ticket and GenerateItineraryInvoice option only.
-
Credit Card Authorization
AirTicketingModifiers/CreditCardAuth can be used to add an approval code to ticket and stored fare for credit and debit cards.
CreditCardAuth is available for Galileo (1G) and Worldspan (1P). If a request is submitted to another provider that includes CreditCardAuth, a warning is returned: CreditCardAutho is not supported for the requested provider in AirTicketingReq.
If a CreditCardAuth is added with a reference to a cash or check form of payment, an error is returned: "Invalid Form of Payment for Credit Card authorization".
If an AirPricingInfo already has an existing Payment, then the Payment is added to the ticket, no new Payment is created. If the existing Payment already has a CreditCardAuth, then the existing CreditCardAuth is removed and a new CreditCardAuth must be added.
Review the schema table for CreditCardAuth in AirTicketingReq > FormOfPayment > Credit Card > CreditCardAuth
No Comparison Override for a Stored Fare Release 17.4For Worldspan , when the StoredFareQuote is different from the StoredFare at ticketing, Universal API returns an error message that there is a difference in price. To allow users to bypass the error and issue the ticket, in release 17.4 and later, the NoComparisonSFQ attribute has been added to AirTicketingModifiers. By default @NoComparisonSFQ is set to false and will override an existing StoredFareQuote. This issue does not affect Apollo or Galileo.
-
-
Other ticketing scenarios include:
Ticketing for Individual PassengersBy default, Air Ticketing requests check for multiple Ticket Records; if multiple Ticket Records are found, an error is returned. To issue tickets for additional passengers in a Worldspan (1P) booking, the Air Ticketing check can be overridden, allowing ticketing for individual passengers.
The Air Ticketing check can be overridden in the following requests.
- Universal Record Modify/Air Add request can be sent to override the ticketed Ticket Record. This override provides the capability to issue a ticket against a Ticket Record that was previously issued. A subsequent Air Ticketing request can then be sent to issue a ticket for another passenger in the stored fare.
Add the ticketing override to the Universal Record by sending a Universal Record Modify request. The override is specified in Air Add/Air Pricing Modifiers/Ticketing Modifiers/Document Options/Override Option=ReIssueTicketedStoredFare.
- To issue tickets passengers other than the first one in the booking, send a Air Ticketing Request next.
- An Air Ticketing request with the override allows the ticketing of multiple passengers on a single Ticket Record. To override the Air Ticketing check, set the AirTicketingModifiers/TicketedFareOverride attribute to "true". By default, this attribute is false.
Currently, Traveler-Specific ticketing is possible when all the PTCs are under different AirPricingInfoGroup attributes. E.g., AirPricingInfoGroup="1" AirPricingInfoGroup="2" etc. In other words, the fares are filed separately. Otherwise, Universal API returns the error, “All AirPricingInfos associated to an AirPricingInfoGroup should be provided in the request.”
- Passenger-Specific Ticketing is implemented for Galileo (1G) and Worldspan (1P). This functionality is not supported for Apollo (1V) or Airline Content Hub (ACH).
-
AirTicketingReq/AirPricingInfoRef/BookingTravelerRef/@Key is used to perform Booking Traveler Specific Ticketing (with single FOP). See Form of Payment for Ticketing Modifiers.
-
PaymentRef@Key was added to AirTicketingReq/AirPricingInfoRef/BookingTravelerRef/ to facilitate Multiple FOP per booking traveler. The cardinal for this element is 0..3.
-
OB Fees Charge indicator is sent with Credit Card FOP within Multiple FOP.
-
AirTicketingReq/AirTicketingModifiers/common:CreditCardAuth has the value 1..unbounded due to multiple booking Traveler.
Ticketing for InfantsAny number of tickets can be issued from one Stored Fare Quote when a booking has multiple passengers. If an Infant in Lap (INF) passenger type is included in the Stored Fare, tickets are created for all the adult passengers and the INF passengers. For international fares, the INF pricing in AirPricingInfo may have only taxes. For domestic fares with a Unites States Point-of-Sale and US Itinerary, the AirPricingInfo may have all zero (0) amount values. Because not all carriers or itineraries have only taxes or a zero amount for INF passengers, a fare may occur for the INF passenger.
Reissuing TicketsWhen permitted by the provider, tickets may be reissued in certain cases, such as reissuing a ticket after voiding the ticket and verifying the stored fare. See Reissuing Tickets for details.
Booking Traveler Specific TicketTraveler-specific Ticketing is allowed on Worldspan .
Detailed Billing Information (DBI)Some Universal Air Travel Plan (TP) credit cards respond to a ticketing request with a request for Detailed Billing Information (DBI). Ticketing does not occur until the DBI data is sent in AirTicketingReq.
The required information is returned in the initial ticketing response in the DetailedBillingInformation element. Up to 10 fields may be returned, and the amount of information requested varies by individual card. After the information is received, another AirTicketingReq that includes the DetailedBillingInformation element must be submitted.
Note: When the DBI data is successfully ticketed against, it is not required again for that PNR.
- Universal Record Modify/Air Add request can be sent to override the ticketed Ticket Record. This override provides the capability to issue a ticket against a Ticket Record that was previously issued. A subsequent Air Ticketing request can then be sent to issue a ticket for another passenger in the stored fare.
Response
AirTicketingRsp is returned. The ticketing response contains:
Applied Residency
Applied residency type returns in booking and ticketing retrieve responses, so that the nationality from the applied residency type by passenger line or data can be applied in a future exchange. This is useful because of taxes based on nationality. For example, Mexico has a tax for foreigners and Argentina has two taxes for residents. Release 23.1
AirSolutionsChangedInfo/AirPricingSolution/AirPricingInfo/PassengerType @ResidencyType
ETR
- Ticket data that indicates the relation between the Stored Fare/Air Pricing information and the ETR/ticket: AirPricingInfo in the ETR has the correct AirPricingInfoGroup number.
- Bulk Ticketing information in AirTicketingRsp/ETR @BulkTicket.
- Commission information in ETR @Commission.
- Form of Payment Information in ETR @FormOfPayment.
- ETR/AirPricingInfo/TrueLastDateToTicket, if provided by the carrier.
- All of the ETRs that are ticketed for that request. It does not contain the list of ETRs that have already been ticketed.
- ETR/BaggageAllowances/BaggageAllowanceInfo, /CarryOnAllowanceInfo, and /EmbargoInfo show United States Department of Transportation (DOT) mandated that baggage allowance and baggage charge data must be disclosed to the client at fare quotation.
All fare quotes will contain the full disclosure baggage data, regardless of the geography of travel.
- Baggage-related data is returned directly travel provider or carrier, and may vary by source within the mandated requirements.
The CarryOnAllowanceInfo element indicates the permitted options for carry-baggage for the associated flight. This element contains the following attributes to identify the associated segment: Origin, Destination, and Carrier. The child elements contain information related to permission or limitations for that segment.
URLInfo contains links to web sites from the travel provider or marketing carrier that contain detailed baggage requirements
One or more TextInfo values return any free text messages from the travel provider or carrier about permission or limitations for carry-on luggage. The baggage allowance text that applies to all carry-on bags is returned in @Text.
CarryOnDetails indicates the total number of carry-on bags permitted per passenger per air segment ( @ApplicableCarryOnBags)
@BasePrice indicates the price for each carry-on baggage per passenger, not including taxes or additional fees
@TotalPrice indicates the price for each carry-on baggage per passenger and includes any taxes or additional fees
BaggageRestriction returns the baggage allowance text that applies to each carry-on bag in BaggageRestriction/TextInfo @Text.
The EmbargoInfo element indicates any items that are not permitted on the flight. This element contains the following attributes to identify the associated segment: Origin, Destination and Carrier.
URLInfo contains links to web sites from the travel provider or marketing carrier that contain detailed baggage requirements
One or more TextInfo values return any free text messages from the travel provider or carrier about permission or limitations for carry-on luggage
True Last Date to Ticket is the last available date that a fare can be ticketed, as indicated in the fare rules for a specific fare. This date is merely the last date to purchase a ticket based on the carrier’s fare rules at the time the itinerary was quoted and stored. The TrueLastDateToTicket attribute is returned in AirPricingInfo in the applicable service responses when available.
Note: Only Galileo supports TrueLastDateToTicket. No other providers support the attribute.
TrueLastDateToTicket is returned from Galileo with a date. Universal API attaches a time part of 23:59 and a branch time zone to the string. For example:
AirPricingInfo TrueLastDateToTicket=”2013-01-11T23:59:00.000+11:00”
True Last Date to Ticket is not associated to Latest Ticketing Time, which is the last date that the fare can be ticketed at the quoted price. After the Latest Ticketing Time, a quoted fare must be re-priced for ticketing if there is no agreement between the travel provider and airline to extend the quoted fare to the Last True Date to Ticket. It should also be noted that TAU/TAW dates put in the ticketing arrangement for a PNR do not relate directly to the last date to purchase because a PNR can be created without a stored fare.
In some cases, the True Last Date to Ticket will have the same date as the Latest Ticketing Time. However, for some ticketing locations, these two dates may differ. When the dates differ, Latest Ticketing Time is typically earlier than True Last Date to Ticket for a stored fare. However, for both of these dates, there is no guarantee that the fare will still be available on that date or that the fare amount will not change.
Note: Both AirPricingInfo @TrueLastDateToTicket and AirPricingInfo @LatestTicketingTime values can co-exist, most often for European ticketing locations.
Errors and Warnings
The following errors and warnings may occur:
- If a ticket already exists for the Stored Fare, TicketFailureInfo is returned, with the message: Ticket already exists.
- If there is no Air Pricing present, and error is returned: Unable to ticket without pricing information.
- If a Stored Fare fails, an error is returned in the response that indicates which fare did not ticket.
-
If an AirTicketingReq is sent with TicketingFareOverride=“true” to the Galileo (1G) or Apollo (1V) providers, a warning message is returned: TicketingFareOverride is not supported by the requested Provider.
-
If an attempt is made to reissue a ticket for a passenger that already has a ticket, an error is returned: 5000 ALREADY TICKETED|ERC 395.
Ticketing messages are returned from providers along with corresponding textual descriptions of the error codes. Ticketing error codes are generated by the provider and passed through Travelport Universal API.
When received, the following provider (host) error/warning messages and corresponding two-character host error codes are returned in AirTicketingRsp:
- CC: Credit Card Restrictions Apply. Confirm Ticket Issuance.
- CO: Fare changed
- DB: Detailed Billing Data for Credit Cards (1G only)
- EE: Itinerary is eligible to issue Eticket
- ER: Refund
- ET: Electronic ticket failed
- EX: Exchange
- FC: Fare construction
- FX: DFX screens
- MA: MCO TKPMCO MCOA data
- ME: Form of payment error
- MO: Misc. Charge Order
- MR - Multiple receivable
- NM: $NME screen
- OK: Ticket issued
- TA: Tax breakdown screen
- TK: Initial ticketing entry
- UC: Undecodable city code
-
ZP: ZP Tax breakdown screen
Exceptions
-
Galileo supports Itinerary (IT), Back Office (BO), and Ticket (TK) device types only.
- Galileo does not support Ticketing Modifiers with BookingTravelerRef for the DI line with Name Select.
- Galileo does not support the Air Ticketing fare override, which allows the ticketing of individual passengers within a booking.
-
Universal API does not have a discrete equivalent to an end transact (PNRBFEnd). When a created, modified or canceled booking is submitted, Universal API internally processes the end transact as part of the request. There is also no equivalent functionality to PNRBFIgnore.
All Apollo agencies require a ticket printer.
Apollo does not support:
- Ticketing Modifiers with BookingTravelerRef for the DI line with Name Select.
- TrueLastDateToTicket
- The Air Ticketing fare override, which allows the ticketing of individual passengers within a booking.
- Worldspan supports the following device types:
- Itinerary (IT)
- Back Office (BO)
- Ticket (TK)
- Auditor (A)
- Agent (T)
- Passenger Receipt (P)
- Charge (C)
- Reissue (R)
- Worldspan supports the following document types:
- Blank Card (BC)
- ATB Ticket Stock (H1)
- Plain Paper (PP)
- Layman’s Language (LN)
- Worldspan supports Ticketing Modifiers with BookingTravelerRef for the DI line with Name Select.
- Worldspan does not generate ticket numbers for Infant in Lap (INF) passengers for domestic journeys inside the United States. When the Stored Fare is ticketed, tickets are created for adult passengers only.
- To ticket multiple stored fares, Worldspan requires the Ticket Record (TR) and the Name Select when ticketing.
- To ticket a singer passenger when multiple passengers exist, use the Name Select when ticketing.
- Worldspan does not support TrueLastDateToTicket.
-
Worldspan supports multiple Ticketing Instruction Lines for a stored fare, and ticketing using one or more ticketing instruction lines. AirTicketingReq contains TicketingModifiersRef child element, which contains an AirPricingInfoRef child element. TicketingModifiersRef store references to the Ticketing Instruction Lines that were used during Air Ticketing. AirPricingInfoRef child of TicketingModifiersRef stores references to any stored fares:
- If TicketingModifiersRef contains an AirPricingInfoRef child element, the Ticketing Instructions are applied to the stored fare corresponding to the AirPricingInfoRef.
- If TicketingModifiersRef does not contain an AirPriceInfoRef child element, the ticketing instructions are applied to all the stored fares in the PNR.
Travelport Universal API supports multiple Ticketing Instruction lines for a stored fare only in the UniversalRecordRetrieveRsp, UniversalRecordImportRsp, and AirTicketingReq. Therefore, the addition, modification, or deletion of Ticketing Instruction lines is not supported for segments that are created using Universal API services.
-
In Terminal Data, the auto-pricing data stored in the PNR includes details such as Date, Time, and Agent Information. However, these details were previously not available in Universal API.
-
With Universal.xsd, Universal API maps the information from the stored auto-pricing data in the PNR into the AirPricingInfo/ActionDetails/ element, including all data for @PricingType; StoredFare, StoredFareQuote, PricingInstruction, and TicketRecord information.
-
Only data that is available is mapped. For example, @EventTime values are not always returned, and only the Date values available.
-
For a more complete list of functionality available from various ACH carriers, see ACH Carriers Functionality. Because functionality for carriers may be subject to change, always confirm functionality directly with the ACH carrier before implementation.
-
All ticketing functions are handled by the ACH supplier.
-
ACH suppliers are all ticketless or e-ticket. A TCR (Ticketless Carrier Record) is built at the time of booking (or when the Form of Payment is added).
-
Some ACH suppliers (DY) return e-ticket numbers, but these cannot be used in the traditional manner. They are returned as TCR elements.
- ACH does not support TrueLastDateToTicket