On this page:
Overview
Nuvei helps you maximize your Interchange discount benefits allowed by card scheme rules. When processing airline ticket payments, simply include the addendums.airlines
class, which specifies flight reservation details, flight leg details, and passenger details.
In addition, by sending these airline payments using our Authorization request, you automatically benefit from Nuvei’s proprietary risk rules, which are optimized for Airline fraud screening.
Prerequisites and Notes
- When processing airline ticket payments, you can use either Auth-Settle payments or Sale payments:
- For Auth-Settle Payments for airline tickets:
- When sending an Authorization payment request (the first step of the payment process):
- You can include up to 10 passengers, and up to 4 flight legs.
- For APM transactions, it is required to send the airline information in the Auth request (it is sent later in the Settle (Capture) request).
(Currently only PayPal APM is supported for airline transactions).
- When sending the Settle (Capture) request (the final step of the payment process):
- You can only send for one passenger per request.
- For card transactions, you do not need to send airline information again, because it is sent previously during Auth.
- For APM transactions, it is required to send the airline information in the Settle (Capture) request (not in the Auth request).
(Currently only PayPal APM is supported for airline transactions).
- When sending an Authorization payment request (the first step of the payment process):
- For Sale Payments for airline tickets: The Sale payment request can only include a single passenger per request.
- For Auth-Settle Payments for airline tickets:
- If you include airline information in your request, besides at least one airline leg sub-line, the batch file needs to contain at least one airline passenger sub-line as well.
- All dates use UTC format.
- All IATA related fields should conform to the same airline standards used in the GDS (Global Distribution System) and BSP (Billing and Settlement Plan) systems.
Airline Ticket Payment Requests
When processing airline ticket payments, include the addendums.airlines
class in the /payment API request (or in the /openOrder request for Web SDK and Simply Connect), which consists of the following three subclasses.
reservationDetails
Parameter | Description | Example |
---|---|---|
pnrCode (String) (mandatory) |
| "X36Q9C" |
bookingSystemUniqueId (String) (mandatory) |
| "X36Q9C" |
computerizedReservationSystem (String) (mandatory) | The name of the reservation system. | "Amadeus" |
ticketNumber (String) (mandatory) |
| "123-1234-151555" |
documentType (String) (mandatory) | The type of the issued document:
| "TKT" |
flightDateUTC (String) (mandatory) |
| "2021-06-01 21:00:00" |
issueDate (String) (mandatory) |
| "2021-06-01 21:00:00" |
travelAgencyCode (String) (mandatory only for travel agency) | The IATA travel agency code. | "12345" |
travelAgencyName (String) (mandatory only for travel agency) | The name of the travel agency. | Agency name |
travelAgencyInvoiceNumber (String) (mandatory only for travel agency) | Reference number of the invoice that was issued by the travel agency. | "EG15555155" |
travelAgencyPlanName (String) (not mandatory) | Airplane type code (ICAO code).
| "B733" |
restrictedTicketIndicator (String) (not mandatory) | Indicates whether the ticket is restricted (refundable):
| "Restricted" |
issuingCarrierCode (String) (conditional) | For airline aggregators, two-character IATA code of the airline issuing the ticket: | "A3" for Aegean Airlines |
isCardholderTraveling (String) (not mandatory) | Indicates whether the cardholder is also a passenger. | TRUE |
passengersCount (String) (not mandatory) | Number of passengers associated with the ticket. | 5 |
infantsCount (String) (not mandatory) | Number of infant passengers associated with the ticket. | 2 |
payerPassportId (String) (not mandatory) |
| "7700225" |
totalFare (String) (not mandatory) | Total fare for all legs on the ticket excluding taxes and fees. | 1000 |
totalTaxes (String) (not mandatory) | Total taxes for all legs on the ticket. | 59.3 |
totalFee (String) (not mandatory) | Total fee for all legs on the ticket. | 1500 |
boardingFee (String) (not mandatory) | Chargeable amount for boarding the plane. | 100 |
ticketIssueAddress (String) (not mandatory) | Address of the place/agency that issued the ticket. | "123 Broadway, New York" |
reservationDetails.passengerDetails
Parameter | Description | Example |
---|---|---|
passportNumber (string) (mandatory) |
| "7700225" |
customerCode (string) (not mandatory) | Unique identifier of the customer in the Airline. | "LH1236699999" |
frequentFlyerCode (string) (not mandatory) | Unique identifier of the customer. | "15885566" |
title (string) (mandatory) | Title of the passenger. | "Mr." / "Mrs." / "Ms." / "Dr." |
firstName (string) (mandatory) | First name of the passenger. | "John" |
lastName (string) (mandatory) | Last name of the passenger. | "Johnson" |
passengerName (string) (mandatory) | Full name of the passenger. | "John Johnson" |
middleName (string) (mandatory if it exists) | Middle name of the passenger. | "Van" |
dateOfBirth (string) (mandatory) |
| "1998-01-01 00:00:00" |
phoneNumber (string) (not mandatory) | Passenger phone number. Can contain country code + or () symbols. | "+972541111111" |
reservationDetails.flightLegDetails
Parameter | Description | Example |
---|---|---|
airlineCode (string) (mandatory) | 2-character airline code as set by IATA: https://en.wikipedia.org/wiki/Airline_codes | "LY" for El AL |
flightNumber (string) (mandatory) | Unique identifier of the flight number. https://en.wikipedia.org/wiki/Flight_number | "BA 98" |
departureDate (string) (mandatory) | The date and time of travel in local time at the departure airport. | "2021-12-26 00:00:00" |
arrivalDate (string) (mandatory) | The date and time of travel in local time at the arrival airport. | "2021-12-26 00:00:00" |
departureCountry (string) (mandatory) | Departure Country code (ISO 2-character). | "UK" |
departureCity (string) (mandatory) | Departure City name. | "London" |
departureAirport (string) (mandatory) |
| “LHR” for Heathrow airport |
destinationCountry (string) (mandatory) | Destination Country code (ISO 2-character). | "US" |
destinationCity (string) (mandatory) | Destination City name. | New York |
destinationAirport (string) (mandatory) |
| “JFK” for John F. Kennedy Airport |
type (string) (not mandatory) | Flight classification:
| "International" |
flightType (string) (mandatory if "Risk pre-Authorization Screening" services are required) | The route type of the fight:
| "Round trip" |
ticketDeliveryMethod (string) (not mandatory) | How the ticket was provided to the recipient: "P" – Physical "E" – Electronic | "E" |
ticketDeliveryRecipient (string) (not mandatory) | The name of the ticket delivery recipient. | "John Johnson" |
fareBasisCode (string) (not mandatory) | The alphanumeric code for the "booking class" of a ticket, for example "Business Class", "Discounted", or "Non-refundable". See: https://en.wikipedia.org/wiki/Fare_basis_code | "WH7LNR" |
seatClass (string) (not mandatory) | Seat class. | "F" |
serviceClass (string) (not mandatory) | Indicates the class of service and fare level to which the passenger is entitled. | "E" |
stopOverCode (string) (mandatory) | Stopover code(s) and official city airport code(s) for up to four flight segments per addendum record. Valid values:
| "X" |
departureTaxAmount (double) (not mandatory) | Departure tax amount charged by a country when a person is leaving the country. | 15 |
departureTaxCurrency (string) (not mandatory) |
| "EUR" |
fareAmount (double) (not mandatory) | Amount of the ticket, for current leg of the trip, excluding taxes and fees. | 300 |
feeAmount (double) (not mandatory) | Fee amount for current leg of the trip. | 1.25 |
taxAmount (double) (not mandatory) | Amount of the taxes for current leg of the trip. | 10 |
layoutIntegererval (int) (not mandatory) | Time between legs in minutes. | 60 |
Example Airline Addendum Request
"addendums":{ "airlines":{ "reservationDetails":{ "pnrCode":"MF8919WL3Q", "bookingSystemUniqueId":"YCWOP57IZK", "computerizedReservationSystem":"Galileo", "ticketNumber":"0299593814", "documentType":"BoardingPass", "flightDateUTC":"2019-06-17T07:47:09.6521079Z", "issueDate":"2019-06-11T17:47:09.000000Z", "travelAgencyCode":"8513707175", "travelAgencyName":"NuveiSunnyTravel", "travelAgencyInvoiceNumber":"9652863700", "travelAgencyPlanName":"NuveiPlanName", "restrictedTicketIndicator":"1", "issuingCarrierCode":"DIA", "isCardholderTraveling":"True", "passengersCount":"50", "infantsCount":"12", "payerPassportId":"C9GKGXCN5D", "totalFare":"56", "totalTaxes":"14", "totalFee":"16", "boardingFee":"18", "ticketIssueAddress":"Address1", "passengerDetails":[ { "passportNumber":"G7MMOGWFWF", "customerCode":"XJ2GWLN9T5", "frequentFlyerCode":"J2YH9TPVUZ", "title":"Mr", "firstName":"Tal", "lastName":"Nuvei", "middleName":"G", "dateOfBirth":"2000-06-30", "passengerName":"PassengerNNameN", "phoneNumber":"+359234" } ], "flightLegDetails":[ { "airlineCode":"LZ", "flightNumber":"2408903489", "departureDate":"2020-06-17T07:47:09.6521079Z", "arrivalDate":"2021-06-17T07:47:09.6521079Z", "departureCountry":"BG", "departureCity":"SOF", "departureAirport":"SIA", "destinationCountry":"TV", "destinationCity":"TVC", "destinationAirport":"TIA", "type":"Domestic", "flightType":"RoundTrip", "ticketDeliveryMethod":"email", "ticketDeliveryRecipient":"DGH", "fareBasisCode":"Discounted", "serviceClass":"A", "seatClass":"F", "stopOverCode":"X", "departureTaxAmount":"34", "departureTaxCurrency":"EUR", "fareAmount":"33", "feeAmount":"10", "taxAmount":"11", "layoutIntegererval":"60" }, { "airlineCode":"BN", "flightNumber":"2222220101586", "departureDate":"2033-06-17T07:47:09.6521079Z", "arrivalDate":"2033-06-17T07:47:09.6521079Z", "departureCountry":"BR", "departureCity":"RDJ", "departureAirport":"RIA", "destinationCountry":"RM", "destinationCity":"BUC", "destinationAirport":"BIA", "type":"Foreign", "flightType":"OneWay", "ticketDeliveryMethod":"speedmail", "ticketDeliveryRecipient":"Tatot", "fareBasisCode":"Regular", "serviceClass":"B", "seatClass":"B", "stopOverCode":"X", "departureTaxAmount":"22", "departureTaxCurrency":"USD", "fareAmount":"23", "feeAmount":"12", "taxAmount":"21", "layoutIntegererval":"27" } ] } } }