Airline-Itinerary Data

OverviewAnchorIcon

Airline Industry Data helps you qualify for lower interchange rates when sent along with Pay with PayPal, card, and Apple Pay/Google Pay transactions made with Visa, Mastercard, and Discover card transactions.

To qualify for Airline Industry Data processing (AID), you need to pass additional information when creating a sale or capturing transactions. Braintree passes these details to the card networks which assess a transaction fee based on Airline Industry Data interchange rates.

Merchant requirementsAnchorIcon

Airline Industry Data (AID) is available globally when the payment method is PayPal and US when the payment method is card or Apple Pay/Google Pay. These merchants who are recognized as airline merchants by card schemes can pass AID on sale or submit-for-settlement transactions when the payment method is PayPal, card, or Apple Pay/Google Pay.

Required FieldsAnchorIcon

To qualify for interchange rates from AID, you need to include the below fields in the Transaction: Sale or Transaction: Submit For Settlement call:
FieldTypeExplanation
industryTypestring The industry type. Currently, the only value option is travel_flight. Information for only one industry type may be sent per transaction. Required for PayPal and card transactions including Apple Pay or Google Pay.
data.arrivalDatestring The flight's arrival date. The field can accept date objects and will be interpreted as UTC dates.
data.countryCodestring The country code. Maximum 3 characters for PayPal transactions. Required for PayPal transactions.
data.customerCodestringThe customer code. Maximum 17 characters for PayPal transactions.
data.dateOfBirthstring The passenger's date of birth. The field can accept date objects and will be interpreted as UTC dates. Required for PayPal transactions.
data.fareAmountdecimalThe fare amount. This value can't be negative.
data.feeAmountdecimalThe fee amount. This value can't be negative.
data.issuedDatedate The day on which the tickets were issued. The field can accept date objects and will be interpreted as UTC dates. Required for PayPal and Discover transactions.
data.issuingCarrierCodestring The ticket issuer's IATA code. Maximum 4 characters for PayPal transactions. Required for PayPal and card transactions.
data.legs.arrivalAirportCodestring The arrival airport's IATA code. Maximum 3 characters for PayPal transactions. Required for PayPal and card transactions.
data.legs.arrivalTimestring The arrival time, in military notation (e.g. 1715 denotes 5:15 PM).
data.legs.carrierCodestring The carrier's IATA code. Maximum 2 characters for PayPal transactions. Required for PayPal and card transactions.
data.legs.conjunctionTicketstringThe conjunction ticket. Maximum 14 characters. Required for Discover transactions.
data.legs.couponNumberstringThe coupon number. Maximum 1 character.
data.legs.departureAirportCodestring The departure aiport's IATA code. Maximum 3 characters for PayPal transactions. Required for PayPal and card transactions.
data.legs.departureDatedate The day of departure. The field can accept date objects and will be interpreted as UTC dates. Required for PayPal and card transactions.
data.legs.departureTimestring The departure time, in military notation (e.g. 1715 denotes 5:15 PM). Required for PayPal and card transactions.
data.legs.endorsementOrRestrictionsstringThe notes or notations about endorsements or restrictions.
data.legs.exchangeTicketstringThe ticket number issued when the ticket was exchanged. Maximum 15 characters.
data.legs.fareAmountdecimalThe fare amount. This value can't be negative. Required for Discover transactions.
data.legs.fareBasisCodestring The fare basis code. Maximum 15 characters. Required for PayPal and card transactions.
data.legs.feeAmountdecimalThe fee amount. This value can't be negative.
data.legs.flightNumberstring The flight number. Maximum 5 characters required for card transactions. Required for PayPal transactions.
data.legs.serviceClassstring The class of service's IATA code. Maximum 2 characters for PayPal transactions. Required for PayPal and card transactions.
data.legs.stopoverPermittedbooleanIndicates whether a stopover is permitted. Required for PayPal and card transactions.
data.legs.taxAmountdecimalThe tax amount. This value can't be negative.
data.passengerFirstNamestringThe passenger's first name. Required for PayPal and card transactions.
data.passengerLastNamestringThe passenger's last name. Required for PayPal transactions.
data.passengerMiddleInitialstringThe passenger's middle initial. Maximum 1 character.
data.passengerTitlestringThe passenger's title.
data.restrictedTicketbooleanIndicates if the ticket is restricted.
data.taxAmountdecimalThe tax amount. This value can't be negative.
data.ticketIssuerAddressstring The address of the agency issuing the ticket. Maximum 16 characters required for Discover transactions.
data.ticketNumberstring The primary ticket number. Maximum 15 characters for PayPal transactions. Required for PayPal and card transactions.
data.travelAgencyCodestring The travel agency's IATA code. For direct airline integrations, leave this value blank. Maximum 8 characters. Required for PayPal and Discover transactions.
data.travelAgencyNamestringThe travel agency's name. Required for PayPal transactions.

ExamplesAnchorIcon

SaleAnchorIcon

Below is a full example of passing airline data on Transaction: Sale.
  1. PHP
$result = $gateway->transaction()->sale([
    'amount' => '100.00',
    'paymentMethodNonce' => $nonceFromTheClient,
    'options' => [
        'submitForSettlement' => true
    ],
    'industry' => [
        'industryType' => Braintree\Transaction::TRAVEL_AND_FLIGHT_INDUSTRY,
        'data' => [
            'arrivalDate' => '2018-01-01',
            'countryCode' => 'US',
            'customerCode' => 'customer-code',
            'dateOfBirth' => '2018-01-01',
            'fareAmount' => '70.00',
            'feeAmount' => '10.00',
            'issuedDate' => '2018-01-01',
            'issuingCarrierCode' => 'AA',
            'passengerFirstName' => 'John',
            'passengerLastName' => 'Doe',
            'passengerMiddleInitial' => 'M',
            'passengerTitle' => 'Mr.',
            'restrictedTicket' => false,
            'taxAmount' => '20.00',
            'ticketIssuerAddress' => 'ticketissueraddr',
            'ticketNumber' => 'ticket-number',
            'travelAgencyCode' => '12345678',
            'travelAgencyName' => 'Expedia',
            'legs' => [
                [
                    'arrivalAirportCode' => 'ATX',
                    'arrivalTime' => '10:00',
                    'carrierCode' => 'AA',
                    'conjunctionTicket' => 'CJ0001',
                    'couponNumber' => '1',
                    'departureAirportCode' => 'MDW',
                    'departureDate' => '2018-01-02',
                    'departureTime' => '08:00',
                    'endorsementOrRestrictions' => 'NOT REFUNDABLE',
                    'exchangeTicket' => 'ET0001',
                    'fareAmount' => '35.00',
                    'fareBasisCode' => 'W',
                    'feeAmount' => '5.00',
                    'flightNumber' => 'AA100',
                    'serviceClass' => 'Y',
                    'stopoverPermitted' => false,
                    'taxAmount' => '10.00'
                ],
                [
                    'arrivalAirportCode' => 'MDW',
                    'arrivalTime' => '14:00',
                    'carrierCode' => 'AA',
                    'conjunctionTicket' => 'CJ0002',
                    'couponNumber' => '1',
                    'departureAirportCode' => 'ATX',
                    'departureDate' => '2018-01-03',
                    'departureTime' => '12:00',
                    'endorsementOrRestrictions' => 'NOT REFUNDABLE',
                    'exchangeTicket' => 'ET0002',
                    'fareAmount' => '35.00',
                    'fareBasisCode' => 'W',
                    'feeAmount' => '5.00',
                    'flightNumber' => 'AA200',
                    'serviceClass' => 'Y',
                    'stopoverPermitted' => false,
                    'taxAmount' => '10.00'
                ]
            ]
        ]
    ]
]);

AS1 (2 Step Transaction)AnchorIcon

If available, pass lead passenger data on Transaction:Sale. If not available, pass passenger data on Transaction:SubmitForPartialSettlement for each passenger data. Below is a full example of passing airline data on Transaction: Submit For Partial Settlement
  1. PHP
$result = $gateway->transaction()->submitForPartialSettlement(
    'theParentAuthTransactionId',
    '11.00',
    [
        'orderId' => 'orderId',
        'industry' => [
            'industryType' => Braintree\Transaction::TRAVEL_AND_FLIGHT_INDUSTRY,
            'data' => [
                'arrivalDate' => '2018-01-01',
                'countryCode' => 'US',
                'customerCode' => 'customer-code',
                'dateOfBirth' => '2018-01-01',
                'fareAmount' => '70.00',
                'feeAmount' => '10.00',
                'issuedDate' => '2018-01-01',
                'issuingCarrierCode' => 'AA',
                'passengerFirstName' => 'John',
                'passengerLastName' => 'Doe',
                'passengerMiddleInitial' => 'M',
                'passengerTitle' => 'Mr.',
                'restrictedTicket' => false,
                'taxAmount' => '20.00',
                'ticketIssuerAddress' => 'ticketissueraddr',
                'ticketNumber' => 'ticket-number',
                'travelAgencyCode' => '12345678',
                'travelAgencyName' => 'Expedia',
                'legs' => [
                    [
                        'arrivalAirportCode' => 'ATX',
                        'arrivalTime' => '10:00',
                        'carrierCode' => 'AA',
                        'conjunctionTicket' => 'CJ0001',
                        'couponNumber' => '1',
                        'departureAirportCode' => 'MDW',
                        'departureDate' => '2018-01-02',
                        'departureTime' => '08:00',
                        'endorsementOrRestrictions' => 'NOT REFUNDABLE',
                        'exchangeTicket' => 'ET0001',
                        'fareAmount' => '35.00',
                        'fareBasisCode' => 'W',
                        'feeAmount' => '5.00',
                        'flightNumber' => 'AA100',
                        'serviceClass' => 'Y',
                        'stopoverPermitted' => false,
                        'taxAmount' => '10.00'
                    ],
                    [
                        'arrivalAirportCode' => 'MDW',
                        'arrivalTime' => '14:00',
                        'carrierCode' => 'AA',
                        'conjunctionTicket' => 'CJ0002',
                        'couponNumber' => '1',
                        'departureAirportCode' => 'ATX',
                        'departureDate' => '2018-01-03',
                        'departureTime' => '12:00',
                        'endorsementOrRestrictions' => 'NOT REFUNDABLE',
                        'exchangeTicket' => 'ET0002',
                        'fareAmount' => '35.00',
                        'fareBasisCode' => 'W',
                        'feeAmount' => '5.00',
                        'flightNumber' => 'AA200',
                        'serviceClass' => 'Y',
                        'stopoverPermitted' => false,
                        'taxAmount' => '10.00'
                    ]
                ]
            ]
        ]
    ]
);

Validation errorsAnchorIcon

TransactionAnchorIcon

CodeTextExplanation
915182 For PayPal transactions with travel_flight industry data, submit_for_settlement is required and must be true. PayPal supports airline-itinerary data only when options.submitForSettlement is true.

Airline-itinerary dataAnchorIcon

CodeTextExplanation
`93401`Industry type is invalid.Industry type is invalid.
`93414`Travel and Flight data is empty.Travel and Flight data is empty.
`93415`Data fields are unknown.Data fields are unknown.
`93416`Customer code is too long.Customer code can't be longer than 17 characters.
`93417`Fare amount cannot be negative.Fare amount can't be less than zero.
`93418`Fare amount is an invalid format. Fare amount must be formatted like '10' or '10.00'. If the currency does not use decimal places, the fare amount can't include decimal places.
`93419`Fare amount is too large.Fare amount can't be longer than 9 digits.
`93420`Fee amount cannot be negative.Fare amount can't be less than zero.
`93421`Fee amount is an invalid format. Fee amount must be formatted like '10' or '10.00'. If the currency does not use decimal places, the fee amount can't include decimal places.
`93422`Fee amount is too large.Fee amount can't be longer than 9 digits.
`93423`Issued date is an invalid format.Issued date is an invalid format.
`93424`Issuing carrier code is too long.Issuing carrier code can't be longer than 4 characters.
`93425`Passenger middle initial is too long.Passenger middle initial can't be longer than 1 character.
`93426`Restricted ticket is required.You must specify if the ticket is restricted.
`93427`Tax amount cannot be negative.Tax amount can't be less than zero.
`93428`Tax amount is an invalid format. Tax amount must be formatted like '10' or '10.00'. If the currency does not use decimal places, the tax amount can't include decimal places.
`93429`Tax amount is too large.Tax amount can't be longer than 9 digits.
`93430`Ticket number is too long.Ticket number can't be longer than 15 characters.
`93431`Expected a collection of legs but none provided.Expected a collection of legs but unrecognized data provided.
`93432`Too many legs.A maximum of 12 legs can be provided.
`93443`Country code is too long.Country code can't be longer than 3 characters.
`93444`Date of birth is an invalid format.Date of birth is an invalid format.

Airline-itinerary data legsAnchorIcon

CodeTextExplanation
96301Arrival airport code is too long.

Arrival airport code can't be longer than 3 characters.

96302Arrival time is an invalid format.

Arrival time must be formatted like '08:00'.

96303Carrier code is too long.

Carrier code can't be longer than 2 characters.

96304Conjunction ticket is too long.

Conjunction ticket can't be longer than 14 characters.

96305Coupon number is too long.

Coupon number can't be longer than 1 character.

96306Departure airport code is too long.

Departure airport code can't be longer than 3 characters.

96307Departure time is an invalid format.

Departure time must be formatted like '08:00'.

96308Exchange ticket is too long.

Exchange ticket can't be longer than 15 characters.

96309Fare amount cannot be negative.

Fare amount can't be less than zero.

96310Fare amount is an invalid format.

Fare amount must be formatted like '10' or '10.00'. If the currency does not use decimal places, the fare amount can't include decimal places.

96311Fare amount is too large.

Fare amount can't be longer than 9 digits.

96312Fare basis code is too long.

Fare basis code can't be longer than 15 characters.

96313Fee amount cannot be negative.

Fee amount can't be less than zero.

96314Fee amount is an invalid format.

Fee amount must be formatted like '10' or '10.00'. If the currency does not use decimal places, the fee amount can't include decimal places.

96315Fee amount is too large.

Fee amount can't be longer than 9 digits.

96316Flight number is too long.

Flight number can't be longer than 5 characters.

96317Service class is too long.

Service class can't be longer than 2 characters.

96318Tax amount cannot be negative.

Tax amount can't be less than zero.

96319Tax amount is an invalid format.

Tax amount must be formatted like '10' or '10.00'. If the currency does not use decimal places, the tax amount can't include decimal places.

96320Tax amount is too large.

Tax amount can't be longer than 9 digits.

963996Required attribute is missing

The missing attribute is provided in the error message.

963997Attribute is not in the required format

The attribute and the expected format are provided in the error message.

963998Attribute is not in the list of expected values

The attribute and the expected values are provided in the error message.

963999Attribute is the wrong type

The attribute and the expected types are provided in the error message.

If you accept cookies, we’ll use them to improve and customize your experience and enable our partners to show you personalized PayPal ads when you visit other sites. Manage cookies and learn more