Travel industry message extension

On this page

Partners and merchants who operate in the travel industry can send travel-related data to the issuer (ACS) in the /authenticate request. The issuer uses this data in risk-decisioning and determining the appropriate authentication response that it will send to the merchant. You can use the messageExtension object in the /authenticate request to send more information related to air travel, car rentals, hotel data, and travelers.

note

Only 3D Secure 2.1 and 2.2 support the message extension data. If the acctNumber used for the transaction does not support 3D Secure 2, the transaction will fallback to 3DS 1 (if clientStartProtocolVersion = 1.0.2 in the /authenticate request). In this case, the issuer will ignore these field values and process the transaction as a 3DS 1 transaction.

Message extension object sample

This sample shows only the message extension elements for the travel industry. The extension consists of the following sections of data objects:

  • messageExtension - core elements in a standard EMV® 3DS message extension object
  • data - elements specific to the travel industry
  • air - elements specific to air travel
  • car - elements specific to car rentals
  • hotel - elements specific to hotels
  • travellers - information about the travellers

To review a complete sample /authenticate request,

"messageExtension": [
    {
      "name": "Travel Industry",
      "id": "A000000802-002",
      "criticalityIndicator": false,
      "data": {
        "agencyIndicator": "Y",
        "air": {
          "airlineTicketInfo": {
            "currencyMismatchIndicator": "Y",
            "ticketAmount": "75000",
            "ticketCount": "03",
            "ticketCurrency": "123"
          },
          "itineraryInfo": {
            "flightIndicator": "01",
            "segments": [
              {
                "departureAirport": "NCE",
                "departureDate": "20200415",
                "departureTime": "0930",
                "arrivalAirport": "CDG",
                "arrivalDate": "20200415",
                "arrivalTime": "1030",
                "operatingCarrier": "7S"
              },
              {
                "departureAirport": "CDG",
                "departureDate": "20200415",
                "departureTime": "1130",
                "arrivalAirport": "LHR",
                "arrivalDate": "20200415",
                "arrivalTime": "1150",
                "operatingCarrier": "7S"
              }
            ]
          }
        },
        "car": {
          "companyInfo": {
            "name": "ABC Car Hire",
            "email": "email@emailaddress.com",
            "phone": {
              "cc": "44",
              "subscriber": "2087654321"
            }
          },
          "reservationInfo": {
            "currencyMismatchIndicator": "Y",
            "amount": "10000",
            "currency": "123",
            "pickUpDate": "20200415",
            "pickUpTime": "1300",
            "pickUpLocation": {
              "addrLine1": "123 Airport Road",
              "addrCity": "Longford",
              "addrPostCode": "TW61AP",
              "addrCountry": "826"
            },
            "returnDate": "20200416",
            "returnTime": "1230",
            "returnLocation": {
              "addrLine1": "123 Airport Road",
              "addrCity": "Longford",
              "addrPostCode": "TW61AP",
              "addrCountry": "826"
            },
            "cars": [
              {
                "carRentalType": "01",
                "carRentalInsuranceType": "01"
              }
            ]
          }
        },
        "hotel": {
          "propertyInfo": {
            "name": "EMV London Hotel",
            "chainCode": "CHAIN123",
            "propertyCode": "EMVLH",
            "referenceCode": "REF123",
            "addrLine1": "3 Domain Street",
            "addrLine2": "Suite 100",
            "addrCity": "London",
            "addrPostCode": "SE10UG",
            "addrCountry": "826",
            "email": "email@emailaddress.com",
            "phone": {
              "cc": "44",
              "subscriber": "2012345678"
            }
          },
          "reservationInfo": {
            "currencyMismatchIndicator": "Y",
            "amount": "30000",
            "currency": "123",
            "checkInDate": "20200415",
            "checkInTime": "1500",
            "checkOutDate": "20200416",
            "checkOutTime": "1100",
            "rooms": [
              {
                "bedType": "01",
                "roomOccupancy": "2",
                "roomType": "05"
              }
            ]
          }
        },
        "travellers": [
          {
            "airlineLoyaltyStatus": "03",
            "airlinePassengerIndicator": "Y",
            "carRentalDriverIndicator": "Y",
            "carRentalLoyaltyStatus": "02",
            "hotelGuestIndicator": "Y",
            "hotelLoyaltyStatus": "03",
            "name": "John Smith",
            "type": "ADT"
          },
          {
            "airlineLoyaltyStatus": "02",
            "airlinePassengerIndicator": "Y",
            "carRentalDriverIndicator": "N",
            "carRentalLoyaltyStatus": "01",
            "hotelGuestIndicator": "Y",
            "hotelLoyaltyStatus": "01",
            "name": "Jane Smith",
            "type": "ADT"
          }
        ],
        "version": "2.0"
      }
    }
  ]

note

Tthe inclusion of the messageExtension array is conditional in the /authenticate request. But, if you include this array, then the following data elements are required: criticalityIndicator, data, id, name, and data.version.

For field description of the messageExtension object data elements, see the following tables.

Message extension object field details

Field nameDescriptionInclusionLengthData typeValid Value
idAssigned Extension Group Identifier
A unique identifier for the extension.
Required14StringA000000802-002
criticalityIndicatorCriticality Indicator
A Boolean value indicating whether the recipient must understand the contents of the extension to interpret the entire message.
RequiredNABooleanFalse
dataData
The data carried in the extension.
RequiredMax 8059objectSee data object field details
nameExtension Name
The name of the extension data set as defined by the extension owner.
Required15StringTravel Industry

Data object field details

Field nameDescriptionInclusionLengthData typeValid Value
agencyIndicatorAgency indicator
Whether transaction is initiated by a travel agency on behalf of a consumer.
Optional1StringY
If field is missing, the default is N
airAir travel data
The data specific to air travel.
OptionalvariableObjectSee air travel object field details
carcar rental data
The data specific to car rental reservations.
OptionalvariableObjectSee car rental object field details
hotelHotel data
The data specific to hotel reservations.
OptionalvariableObjectSee hotel object field details
travellersTravelers
Information about the travellers on the itinerary.
OptionalvariableObjectSee traveler object field details
versionVersion number
Version number of the message extension.
Required3String2.0

Air travel object field details

Field nameDescriptionInclusionLengthData typeValid Value
airlineTicketInfoAirline ticket information
Information about the airline ticket being purchased.
OptionalVariableObjectNA
itineraryInfoItinerary information
Information about the flight itinerary.

note

The maximum number of air travel itineraries in a transaction is 1.

OptionalVariableObjectNA
currencyMismatchIndicatorCurrency mismatch indicator
Currency used in the authorisation may differ from the currency for the authentication.
Optional1StringY
If field is missing, the default is N
ticketAmountTicket amount
Total amount of airline ticket(s) being purchased. For example, if two tickets are purchased at USD 250.41, the total ticket amount is USD 500.82. But, in the ticketAmount field, you wound enter the value as either: 50082, 050082, 0050082.

note

If there are multiple items also being purchased with the airline ticket(s), then only the total amount of airline ticket(s) will be included.

OptionalMax 48StringNA
ticketCountTicket count
Total count of airline ticket(s) being purchased.
Optional1-2
Numeric
StringNA
ticketCurrencyTicket currency
Currency in which ticket purchase amount is expressed.
Optional3
Numeric
StringISO 4217 three-digit currency code
flightIndicatorFlight indicator
Indicator representing the type of flight on the itinerary.
Optional2Object
  • 01 = One-way
  • 02 = Round-trip
  • 03 = Multi-city
segmentsSegments
Information about the flight segments on the itinerary.
Optional3StringIATA Coding DirectoryLink opens new window or IATA Airline and Location CodesLink opens new window
arrivalAirportArrival airport
The arrival airport of the flight segment.
OptionalVariableObjectNA
arrivalDateArrival date
The arrival date of the flight segment, in the local time of the arrival airport.
Valid format:YYYYMMDD, where:
  • YYYY = 4 numeric digits
  • MM = 2 numeric digits with value 01–12
  • DD = 2 numeric digits with value 01–31
Optional8
Numeric
StringNA
arrivalTimeArrival time
The arrival time of the flight segment, in the local time of the arrival airport.
Valid format: 24-hour format (HHMM), where:
  • HH = 2 numeric digits with value 00–23
  • MM = 2 numeric digits with value 00–59
Optional4
Numeric
StringNA
departureAirportDeparture airport
The departure airport of the flight segment.
Optional3StringIATA Coding DirectoryLink opens new window or IATA Airline and Location CodesLink opens new window
departureDateDeparture date
The departure date of the flight segment, in the local time of the departure airport.
Valid format:YYYYMMDD, where:
  • YYYY = 4 numeric digits
  • MM = 2 numeric digits with value 01–12
  • DD = 2 numeric digits with value 01–31
Optional8StringNA
departureTimeDeparture time
The departure time of the flight segment, in the local time of the departure airport.
Valid format: 24-hour format (HHMM), where:
  • HH = 2 numeric digits with value 00–23
  • MM = 2 numeric digits with value 00–59
Optional4
Numeric
StringNA
operatingCarrierOperating carrier
The operating carrier (airline) of the flight segment.
Optional2StringIATA Coding DirectoryLink opens new window or IATA Airline and Location CodesLink opens new window

Car rental object field details

Field nameDescriptionInclusionLengthData typeValid Value
companyInfoCar rental company information
Information about the car rental company.
OptionalVariableObjectNA
reservationInfoCar rental reservation information
Information about the car rental reservation.

note

The maximum number of car rental reservations in a transaction is 1.

OptionalVariableObjectNA
nameCompany name
The name of the car rental company.
OptionalMax 50StringNA
emailEmail address
The email address of the car rental company.
OptionalMax 254StringShould meet requirements of Section 3.4 of IETF RFC 5322Link opens new window
phonePhone number
The phone number of the car rental company.
OptionalVariable
  • cc: 1-3 characters
  • subscriber: variable, maximum 15 characters
ObjectCountry Code and Subscriber sections of the number represented by the following named fields:
  • cc
  • subscriber

Refer to ITU-E.164Link opens new window for additional information on format and length.
currencyMismatchIndicatorCurrency mismatch indicator
Currency used in the authorisation may differ from the currency for the authentication.
Optional1StringY
If field is missing, the default is N
amountReservation amount
Total amount of the car rental reservation being purchased.
Example: If purchase amount is USD 123.45, enter amount as either 12345, 012345, 0012345
OptionalMax 48StringNA
currencyReservation currency
Currency in which the car rental reservation purchase amount is expressed.
Optional3
Numeric
StringISO 4217 three-digit currency codeLink opens new window
pickUpDatePick-up date
The pick-up date of the car rental reservation, in the local time of the pick-up location.
Valid format:YYYYMMDD, where:
  • YYYY = 4 numeric digits
  • MM = 2 numeric digits with value 01–12
  • DD = 2 numeric digits with value 01–31
Optional8
Numeric
StringNA
pickUpTimePick-up time
The pick-up time of the car rental reservation, in the local time of the pick-up location.
Valid format: 24-hour format (HHMM), where:
  • HH = 2 numeric digits with value 00–23
  • MM = 2 numeric digits with value 00–59
Optional4
Numeric
StringNA
pickUpLocationPick-up location
Information about the pick-up location on the car rental reservation.
OptionalVariableObjectNA
returnDateReturn date
The return date of the car rental reservation, in the local time of the return location.
Valid format:YYYYMMDD, where:
  • YYYY = 4 numeric digits
  • MM = 2 numeric digits with value 01–12
  • DD = 2 numeric digits with value 01–31
Optional8
Numeric
StringNA
returnTimeReturn time
The return time of the car rental reservation, in the local time of the return location.
Valid format: 24-hour format (HHMM), where:
  • HH = 2 numeric digits with value 00–23
  • MM = 2 numeric digits with value 00–59
Optional4
Numeric
StringNA
returnLocationReturn location
Information about the return location on the car rental reservation.
OptionalVariableObjectNA
carsCars
Information about the car(s) on the car rental reservation.
OptionalVariableObjectNA
addrLine1Address Line 1
The first line of the address or equivalent local portion of the car rental pick-up or return location.
OptionalMax 50StringNA
addrLine2Address Line 2
The second line of the address or equivalent local portion of the car rental pick-up or return location.
OptionalMax 50StringNA
addrLine3Address Line 3
The third line of the address or equivalent local portion of the car rental pick-up or return location.
OptionalMax 50StringNA
addrCityAddress city
The city of the address or equivalent local portion of the car rental pick-up or return location.
OptionalMax 50StringNA
addrStateAddress state
The state or province of the address or equivalent local portion of the car rental pick-up or return location.
OptionalMax 3StringShould be the country subdivision code defined in ISO 3166-2Link opens new window
addrPostCodeAddress postal code
The ZIP or other postal code of the address or equivalent local portion of the car rental pick-up or return location.
OptionalMax 16StringNA
addrCountryAddress country
The country of the address or equivalent local portion of the car rental pick-up or return location.
Optional3StringISO 3166-1 three-digit country codeLink opens new window
carRentalTypeCar rental type
The type of car in the car rental.
Optional2Object
  • 01 = TBD
  • 02 = TBD
  • 03 = TBD
  • 04 = TBD
carRentalInsuranceTypeCar rental insurance type
The type of car insurance in the car rental.
Optional2Object
  • 01 = TBD
  • 02 = TBD
  • 03 = TBD
  • 04 = TBD

Hotel object field details

Field nameDescriptionInclusionLengthData typeValid Value
propertyInfoHotel property information
Information about the hotel property.
OptionalVariableObjectNA
reservationInfoHotel reservation information
Information about the hotel reservation.

note

The maximum number of hotel reservations in a transaction is 1.

OptionalVariableObjectNA
nameHotel name
The name of the hotel property.
OptionalMax 50StringNA
chainCodeChain code
The chain code of the hotel property.
OptionalTBDStringNA
propertyCodeProperty code
The property code of the hotel property.
OptionalTBDStringNA
referenceCodeReference code
The reference code of the hotel property.
OptionalTBDStringNA
addrLine1Address Line 1
The first line of the address or equivalent local portion of the hotel property.
OptionalMax 50StringNA
addrLine2Address Line 2
The second line of the address or equivalent local portion of the hotel property.
OptionalMax 50StringNA
addrLine3Address Line 3
The third line of the address or equivalent local portion of the hotel property.
OptionalMax 50StringNA
addrCityAddress city
The city of the address or equivalent local portion of the hotel property.
OptionalMax 50StringNA
addrStateAddress state
The state or province of the address or equivalent local portion of the hotel property.
OptionalMax 3StringShould be the country subdivision code defined in ISO 3166-2Link opens new window
addrPostCodeAddress postal code
The ZIP or other postal code of the address or equivalent local portion of the hotel property.
OptionalMax 16StringNA
addrCountryAddress country
The country of the address or equivalent local portion of the hotel property.
Optional3StringISO 3166-1 three-digit country codeLink opens new window
emailEmail address
The email address of the hotel property.
OptionalMax 254StringShould meet requirements of Section 3.4 of IETF RFC 5322Link opens new window
phonePhone number
The phone number of the hotel property.
OptionalVariable
  • cc: 1-3 characters
  • subscriber: variable, maximum 15 characters
ObjectCountry Code and Subscriber sections of the number represented by the following named fields:
  • cc
  • subscriber

Refer to ITU-E.164Link opens new window for additional information on format and length.
currencyMismatchIndicatorCurrency mismatch indicator
Currency used in the authorisation may differ from the currency for the authentication.
Optional1StringY
If field is missing, the default is N
amountReservation amount
Total amount of the hotel reservation being purchased.
Example: If purchase amount is USD 123.45, enter amount as either 12345, 012345, 0012345
OptionalMax 48StringNA
currencyReservation currency
Currency in which the car rental reservation purchase amount is expressed.
Optional3
Numeric
StringISO 4217 three-digit currency codeLink opens new window
checkInDateCheck-in date
The check-in date of the hotel reservation, in the local time of the hotel.
Valid format:YYYYMMDD, where:
  • YYYY = 4 numeric digits
  • MM = 2 numeric digits with value 01–12
  • DD = 2 numeric digits with value 01–31
Optional8
Numeric
StringNA
checkInTimeCheck-in time
The check-in time of the hotel reservation, in the local time of the hotel.
Valid format: 24-hour format (HHMM), where:
  • HH = 2 numeric digits with value 00–23
  • MM = 2 numeric digits with value 00–59
Optional4
Numeric
StringNA
checkOutDateCheck-out date
The check-out date of the hotel reservation, in the local time of the hotel.
Valid format:YYYYMMDD, where:
  • YYYY = 4 numeric digits
  • MM = 2 numeric digits with value 01–12
  • DD = 2 numeric digits with value 01–31
Optional8
Numeric
StringNA
checkOutTimeCheck-out time
The check-in time of the hotel reservation, in the local time of the hotel.
Valid format: 24-hour format (HHMM), where:
  • HH = 2 numeric digits with value 00–23
  • MM = 2 numeric digits with value 00–59
Optional4
Numeric
StringNA
roomsRooms
Information about the room(s) on the hotel reservation.
OptionalVariableObjectNA
bedTypeBed type
The type of bed(s) in the hotel room.
Optional2Object
  • 01 = King
  • 02 = Double/Queen
  • 03 = Twin
  • 04 = Other
roomOccupancyRoom occupancy
The number of guests occupying the hotel room.
Optional1-2
Numeric
StringNA
roomTypeRoom Type
The type of hotel room.
Optional2Object
  • 01 = Single
  • 02 = Double
  • 03 = Triple
  • 04 = Quad
  • 05 = King
  • 06 = Double-double
  • 07 = Twin
  • 08 = Studio
  • 09 = Master Suite
  • 10 = Mini-Suite/Junior Suite
  • 11 = Other

Travellers object field details

Field nameDescriptionInclusionLengthData typeValid Value
airlineLoyaltyStatusAirline loyalty status
Airline loyalty program level for the traveller on the airline itinerary.
Optional2Object
  • 01 = None
  • 02 = Enrolled
  • 03 = Status (includes all tiers above enrolled status)
airlinePassengerIndicatorAirline passenger indicator
Whether traveller is a passenger in the airline itinerary.
Optional1StringY
If field is missing, the default is N
carRentalDriverIndicatorCar rental driver indicator
Whether traveller is a driver in the car rental reservation.
Optional1StringY
If field is missing, the default is N
carRentalLoyaltyStatusCar rental loyalty status
Car rental loyalty program level for the traveller on the car reservation.
Optional2String
  • 01 = None
  • 02 = Enrolled
  • 03 = Status (includes all tiers above enrolled status)
hotelGuestIndicatorHotel guest indicator
Whether traveller is a guest in the hotel reservation.
Optional1StringY
If field is missing, the default is N
hotelLoyaltyStatusHotel loyalty status
Hotel loyalty program level for the traveller on the hotel reservation.
Optional2String
  • 01 = None
  • 02 = Enrolled
  • 03 = Status (includes all tiers above enrolled status)
nameTraveller Name
Name of traveller on the itinerary.
Optional1-45StringNA
typeTraveller Type
Type of traveller on the itinerary.
Optional3String
  • ADT = Adult
  • CHD = Child
  • INF = Infant

Related topics