Airline-Itinerary Dataanchor

Overviewanchor

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 requirementsanchor

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 Fieldsanchor

To qualify for interchange rates from AID, you need to include the below fields in the Transaction: Sale or Transaction: Submit For Settlement call:

Field Type Explanation
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.customerCodestring The 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.fareAmountdecimal The fare amount. This value can't be negative.
data.feeAmountdecimal The 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.conjunctionTicketstring The conjunction ticket. Maximum 14 characters. Required for Discover transactions.
data.legs.couponNumberstring The 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.endorsementOrRestrictionsstring The notes or notations about endorsements or restrictions.
data.legs.exchangeTicketstring The ticket number issued when the ticket was exchanged. Maximum 15 characters.
data.legs.fareAmountdecimal The 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.feeAmountdecimal The 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.stopoverPermittedboolean Indicates whether a stopover is permitted. Required for PayPal and card transactions.
data.legs.taxAmountdecimal The tax amount. This value can't be negative.
data.passengerFirstNamestring The passenger's first name. Required for PayPal and card transactions.
data.passengerLastNamestring The passenger's last name. Required for PayPal transactions.
data.passengerMiddleInitialstring The passenger's middle initial. Maximum 1 character.
data.passengerTitlestring The passenger's title.
data.restrictedTicketboolean Indicates if the ticket is restricted.
data.taxAmountdecimal The 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.travelAgencyNamestring The travel agency's name. Required for PayPal transactions.

Examplesanchor

Saleanchor

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' => BraintreeTransaction::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'
                    ]
                ]
            ]
        ]
    ]);

anchor

AS1 (2 Step Transaction)anchor

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' => BraintreeTransaction::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 errorsanchor

Transactionanchor

Code Text Explanation
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 dataanchor

CodeTextExplanation
93401Industry type is invalid.Industry type is invalid.
93414Travel and Flight data is empty.Travel and Flight data is empty.
93415Data fields are unknown.Data fields are unknown.
93416Customer code is too long.Customer code can't be longer than 17 characters.
93417Fare amount cannot be negative.Fare amount can't be less than zero.
93418Fare 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.
93419Fare amount is too large.Fare amount can't be longer than 9 digits.
93420Fee amount cannot be negative.Fare amount can't be less than zero.
93421Fee 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.
93422Fee amount is too large.Fee amount can't be longer than 9 digits.
93423Issued date is an invalid format.Issued date is an invalid format.
93424Issuing carrier code is too long.Issuing carrier code can't be longer than 4 characters.
93425Passenger middle initial is too long.Passenger middle initial can't be longer than 1 character.
93426Restricted ticket is required.You must specify if the ticket is restricted.
93427Tax amount cannot be negative.Tax amount can't be less than zero.
93428Tax 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.
93429Tax amount is too large.Tax amount can't be longer than 9 digits.
93430Ticket number is too long.Ticket number can't be longer than 15 characters.
93431Expected a collection of legs but none provided.Expected a collection of legs but unrecognized data provided.
93432Too many legs.A maximum of 12 legs can be provided.
93443Country code is too long.Country code can't be longer than 3 characters.
93444Date of birth is an invalid format.Date of birth is an invalid format.

Airline-itinerary data legsanchor

Code Text Explanation
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.