• Documentation
  • API Reference
  • Documentation
  • API Reference
Expand All Collapse All
  • Payment Overview
    • Introduction
    • Choosing an Integration Method
  • Accept Payment
    • Payment Page
      • Quick Start
      • Input Parameters
      • Output Parameters
    • Web SDK
      • Quick Start
      • Nuvei Fields
        • Styling
      • Additional Functions
      • APM Payments
      • Tokenization-Only Flow
      • Scenarios
      • Using ReactJS
        • Full Samples
        • Sandbox Examples
      • FAQs
    • Checkout
      • Quick Start
        • UI Customization
        • Payment Customization
        • Advanced Controls
        • Checkout Examples
      • Server-to-Server
      • Payment Scenarios
      • Mobile SDKs (Beta Release)
        • Android Mobile SDK (Beta Release)
        • iOS Mobile SDK (Beta Release)
      • Flow Diagrams
      • Plugins
        • Magento
          • Rebilling with Magento
        • WooCommerce
          • Rebilling with WooCommerce
        • PrestaShop
          • PrestaShop with Web SDK
          • PrestaShop with Checkout
        • OpenCart
        • Shopify (via AsiaBill)
        • Mirakl
        • Salesforce
        • SAP
        • WIX
      • Marketplaces
    • Features
      • Authentication
      • Financial Operations
        • Refund
        • Void
        • Auth and Settle
        • Partial Approval
        • Currency Conversion (DCC and MCP)
        • Payout
      • Card Operations
        • Card-on-File
        • PCI and Tokenization
        • Zero-Authorization
        • Merchant-Initiated Transactions (MIT)
        • Blocking Cards
      • Subscription (Rebilling)
      • 3D-Secure
        • 3D-Secure Explained
        • 3DS Implementations
          • 3DS MPI-Only Web SDK
          • 3DS MPI-Only REST
          • 3DS External MPI
          • 3DS Responses
        • 3DS Functions
          • 3D-Secure Fingerprinting
          • 3D-Secure Authentication Challenge
      • Webhooks (DMNs)
        • Payment Transaction Requests
        • Control Panel Events API
    • Guides
      • Testing Cards, APIs and APMs
        • Testing Cards
        • Testing APIs with Postman
        • Testing APMs
      • Response Handling
      • Alternative Payment Guides (APMs)
      • Airline Ticket Guides
        • Airline Addendum
        • External Authorization Addendum
      • Payment Facilitators (PayFac)
      • Cashier
        • Cashier Events Guide
        • Cashier Features
      • Withdrawal Guide
      • Risk Guide
        • Nuvei Services
        • Transaction Types
        • Credits and Payouts
        • Fraud to Sale Programs
        • Compliance Programs
        • Chargebacks
      • eKYC Guide
      • Server SDKs
        • Java SDK
        • .NET SDK
        • PHP SDK
        • Node.JS SDK
      • Fast Track Onboarding Developer Guide
      • Currency Conversion Guides
        • Multiple Currency Pricing (MCP)
        • Dynamic Currency Conversion (DCC)
          • DCC in Cashier or Payment Page
          • DCC in REST API Workflows
          • DCC in Web SDK Workflows
      • Website Compliance Guides
    • Additional Links
      • FAQs
      • API Reference
      • Release Notes
      • Country and Currency Codes

    Airline Addendum

    On this page:
    • Overview
    • Airline Ticket Payment Requests

    Overview

    Nuvei helps you maximize your Interchange discount benefits allowed by card scheme rules. When processing airline ticket payments, simply include the addendums.airlines block, 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).
      • For Sale Payments for airline tickets:  The Sale payment request can only a single passenger per request.
    • 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 block in the /payment API request (or for Web SDK, in the /openOrder request), which consists of the following three subblocks.

    reservationDetails

    ParameterDescriptionExample
    pnrCode
    (string)
    (mandatory)
    • Passenger Name Record in the airline reservation system.
    • 1 passenger per settle/sale transaction.
    "X36Q9C"
    bookingSystemUniqueId
    (string)
    (mandatory)
    • Unique identifier of the reservation in the global distribution system.
    • 1 passenger per settle/sale transaction.
    "X36Q9C"
    computerizedReservationSystem
    (string)
    (mandatory)
    The name of the reservation system."Amadeus"
    ticketNumber
    (string)
    (mandatory)
    • Airline company unique ticket number.
    • If multiple tickets are purchased with one transaction, the primary ticket number will be provided.
    • [airline's 3-digit ticketing code]-[4-digit form number]-[6-digit serial number, and sometimes a check digit]
    "123-1234-151555"
    documentType
    (string)
    (mandatory)
    The type of the issued document:
    • "TKT" for electronic ticket
    • “OT” for other / ancillary
    "TKT"
    flightDateUTC
    (datetime)
    (mandatory)
    • Flight date of the first leg.
    • Global UTC time: "YYYY-MM-DD HH:MM:SS"
    "2021-06-01 21:00:00"
    issueDate
    (datetime)
    (mandatory)
    • The date that the ticket was last issued in the airline reservation system.
    • "YYYY-MM-DD HH:MM:SS"
    "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).
    • Note: Unfortunately, the "travelAgencyPlanName" parameter name has a "known-typo", but you should use it as-is because this is the way it has been coded in the REST API.
    • See the list of Airplane type (ICAO codes): https://en.wikipedia.org/wiki/List_of_aircraft_type_designators
    "B733"
    restrictedTicketIndicator
    (string)
    (not mandatory)
    Indicates whether the ticket is restricted (refundable):
    • "Restricted"
    • "NotRestricted"
    "Restricted"
    issuingCarrierCode
    (string)
    (mandatory)
    Airline code of the airline issuing the ticket:
    • https://en.wikipedia.org/wiki/Airline_codes
    • https://www.iata.org/en/publications/directories/code-search/
    "390" for
    Aegean Airlines
    isCardholderTraveling
    (boolean)
    (not mandatory)
    Indicates whether the cardholder is also a passenger.TRUE
    passengersCount
    (integer)
    (not mandatory)
    Number of passengers associated with the ticket.5
    infantsCount
    (integer)
    (not mandatory)
    Number of infant passengers associated with the ticket.2
    payerPassportId
    (string)
    (not mandatory)
    • Ticket Payer Unique passport number.
    • Should match the physical passport issue number.
    "7700225"
    totalFare
    (double)
    (not mandatory)
    Total fare for all legs on the ticket excluding taxes and fees.1000
    totalTaxes
    (double)
    (not mandatory)
    Total taxes for all legs on the ticket.59.3
    totalFee
    (double)
    (not mandatory)
    Total fee for all legs on the ticket.1500
    boardingFee
    (double)
    (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

    ParameterDescriptionExample
    passportNumber
    (string)
    (mandatory)
    • Passenger Unique passport number.
    • Should match the physical passport issue number.
    "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)
    • Date of Birth of the passenger.
    • Should match the passport data.
    • "YYYY-MM-DD HH:MM:SS"
    "1998-01-01 00:00:00"
    phoneNumber
    (string)
    (not mandatory)
    Passenger phone number. Can contain country code + or () symbols."+972541111111"

    reservationDetails.flightLegDetails

    ParameterDescriptionExample
    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)
    • Departure Airport code of leg.
    • 3-letter ISO code according to IATA official directory: https://en.wikipedia.org/wiki/IATA_airport_code
    “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)
    • Destination Airport code of leg.
    • 3-letter ISO code according to IATA official directory: https://en.wikipedia.org/wiki/IATA_airport_code
    “JFK” for John F. Kennedy Airport
    type
    (string)
    (not mandatory)
    Flight classification:
    • "Domestic"
    • "International"
    "International"
    flightType
    (string)
    (mandatory if "Risk pre-Authorization Screening" services are required)
    The route type of the fight:
    • "Round trip"
    • "One way"
    "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:
    • "O" (destination city)
    • "X" (connecting city)
    • blank
    "X"
    departureTaxAmount
    (double)
    (not mandatory)
    Departure tax amount charged by a country when a person is leaving the country.15
    departureTaxCurrency
    (string)
    (not mandatory)
    • Departure tax currency.
    • 3-letter ISO code
    "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":"2014-06-01",
              "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"
            }
          ]
        }
      }
    }
    2022 Nuvei. All rights reserved.