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 3DS Server returns an error.

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

The 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.

tip

If you are using the Web SDK demo application, you can copy the messageExtension object sample to save time and modify the sample as required.

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

Message extension object field details

Field NameDescriptionRequiredLengthData Type
idAssigned Extension Group Identifier
A unique identifier for the extension.
Valid value:A000000802-002
Required14String
criticalityIndicatorCriticality Indicator
A Boolean value indicating whether the recipient must understand the contents of the extension to interpret the entire message.
Valid value:False
RequiredNABoolean
dataData
The data carried in the extension.
Valid value: See data object field details
RequiredMax 8059object
nameExtension Name
The name of the extension data set as defined by the extension owner.
Valid value:Travel Industry
Required15String

Data object field details

Field NameDescriptionRequiredLengthData Type
agencyIndicatorAgency indicator
Whether transaction is initiated by a travel agency on behalf of a consumer.
Valid value:Y
If field is missing, the default is N
Optional1String
airAir travel data
The data specific to air travel.
Valid value: See air travel object field details
OptionalvariableObject
carcar rental data
The data specific to car rental reservations.
Valid value: See car rental object field details
OptionalvariableObject
hotelHotel data
The data specific to hotel reservations.
Valid value: See hotel object field details
OptionalvariableObject
travellersTravelers
Information about the travellers on the itinerary.
Valid value: See traveler object field details
OptionalvariableObject
versionVersion number
Version number of the message extension.
Valid value:2.0
Required3String

Air travel object field details

Field NameDescriptionRequiredLengthData Type
airlineTicketInfoAirline ticket information
Information about the airline ticket being purchased.
OptionalVariableObject
itineraryInfoItinerary information
Information about the flight itinerary.

note

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

OptionalVariableObject
currencyMismatchIndicatorCurrency mismatch indicator
Currency used in the authorisation may differ from the currency for the authentication.
Valid value:Y
If field is missing, the default is N
Optional1String
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 48String
ticketCountTicket count
Total count of airline ticket(s) being purchased.
Optional1-2
Numeric
String
ticketCurrencyTicket currency
Currency in which ticket purchase amount is expressed.
Valid value: ISO 4217 three-digit currency code
Optional3
Numeric
String
flightIndicatorFlight indicator
Indicator representing the type of flight on the itinerary.
Valid value:
  • 01 = One-way
  • 02 = Round-trip
  • 03 = Multi-city
Optional2Object
segmentsSegments
Information about the flight segments on the itinerary.
Valid value:IATA Coding DirectoryLink opens new window or IATA Airline and Location CodesLink opens new window
Optional3String
arrivalAirportArrival airport
The arrival airport of the flight segment.
OptionalVariableObject
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
String
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
String
departureAirportDeparture airport
The departure airport of the flight segment.
Valid value:IATA Coding DirectoryLink opens new window or IATA Airline and Location CodesLink opens new window
Optional3String
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
Optional8String
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
String
operatingCarrierOperating carrier
The operating carrier (airline) of the flight segment.
Valid value:IATA Coding DirectoryLink opens new window or IATA Airline and Location CodesLink opens new window
Optional2String

Car rental object field details

Field NameDescriptionRequiredLengthData Type
companyInfoCar rental company information
Information about the car rental company.
OptionalVariableObject
reservationInfoCar rental reservation information
Information about the car rental reservation.

note

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

OptionalVariableObject
nameCompany name
The name of the car rental company.
OptionalMax 50String
emailEmail address
The email address of the car rental company.
Valid value: Should meet requirements of Section 3.4 of IETF RFC 5322Link opens new window
OptionalMax 254String
phonePhone number
The phone number of the car rental company.
Valid value: Country 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.
OptionalVariable
  • cc: 1-3 characters
  • subscriber: variable, maximum 15 characters
Object
currencyMismatchIndicatorCurrency mismatch indicator
Currency used in the authorisation may differ from the currency for the authentication.
Valid value:Y
If field is missing, the default is N
Optional1String
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 48String
currencyReservation currency
Currency in which the car rental reservation purchase amount is expressed.
Valid value:ISO 4217 three-digit currency codeLink opens new window
Optional3
Numeric
String
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
String
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
String
pickUpLocationPick-up location
Information about the pick-up location on the car rental reservation.
OptionalVariableObject
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
String
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
String
returnLocationReturn location
Information about the return location on the car rental reservation.
OptionalVariableObject
carsCars
Information about the car(s) on the car rental reservation.
OptionalVariableObject
addrLine1Address Line 1
The first line of the address or equivalent local portion of the car rental pick-up or return location.
OptionalMax 50String
addrLine2Address Line 2
The second line of the address or equivalent local portion of the car rental pick-up or return location.
OptionalMax 50String
addrLine3Address Line 3
The third line of the address or equivalent local portion of the car rental pick-up or return location.
OptionalMax 50String
addrCityAddress city
The city of the address or equivalent local portion of the car rental pick-up or return location.
OptionalMax 50String
addrStateAddress state
The state or province of the address or equivalent local portion of the car rental pick-up or return location.
Valid value: Should be the country subdivision code defined in ISO 3166-2Link opens new window
OptionalMax 3String
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 16String
addrCountryAddress country
The country of the address or equivalent local portion of the car rental pick-up or return location.
Valid value:ISO 3166-1 three-digit country codeLink opens new window
Optional3String
carRentalTypeCar rental type
The type of car in the car rental.
Valid values:
  • 01 = TBD
  • 02 = TBD
  • 03 = TBD
  • 04 = TBD
Optional2Object
carRentalInsuranceTypeCar rental insurance type
The type of car insurance in the car rental.
Valid values:
  • 01 = TBD
  • 02 = TBD
  • 03 = TBD
  • 04 = TBD
Optional2Object

Hotel object field details

Field NameDescriptionRequiredLengthData Type
propertyInfoHotel property information
Information about the hotel property.
OptionalVariableObject
reservationInfoHotel reservation information
Information about the hotel reservation.

note

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

OptionalVariableObject
nameHotel name
The name of the hotel property.
OptionalMax 50String
chainCodeChain code
The chain code of the hotel property.
OptionalTBDString
propertyCodeProperty code
The property code of the hotel property.
OptionalTBDString
referenceCodeReference code
The reference code of the hotel property.
OptionalTBDString
addrLine1Address Line 1
The first line of the address or equivalent local portion of the hotel property.
OptionalMax 50String
addrLine2Address Line 2
The second line of the address or equivalent local portion of the hotel property.
OptionalMax 50String
addrLine3Address Line 3
The third line of the address or equivalent local portion of the hotel property.
OptionalMax 50String
addrCityAddress city
The city of the address or equivalent local portion of the hotel property.
OptionalMax 50String
addrStateAddress state
The state or province of the address or equivalent local portion of the hotel property.
Valid value: Should be the country subdivision code defined in ISO 3166-2Link opens new window
OptionalMax 3String
addrPostCodeAddress postal code
The ZIP or other postal code of the address or equivalent local portion of the hotel property.
OptionalMax 16String
addrCountryAddress country
The country of the address or equivalent local portion of the hotel property.
Valid value:ISO 3166-1 three-digit country codeLink opens new window
Optional3String
emailEmail address
The email address of the hotel property.
Valid value: Should meet requirements of Section 3.4 of IETF RFC 5322Link opens new window
OptionalMax 254String
phonePhone number
The phone number of the hotel property.
Valid value: Country 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.
OptionalVariable
  • cc: 1-3 characters
  • subscriber: variable, maximum 15 characters
Object
currencyMismatchIndicatorCurrency mismatch indicator
Currency used in the authorisation may differ from the currency for the authentication.
Valid value:Y
If field is missing, the default is N
Optional1String
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 48String
currencyReservation currency
Currency in which the car rental reservation purchase amount is expressed.
Valid value:ISO 4217 three-digit currency codeLink opens new window
Optional3
Numeric
String
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
String
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
String
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
String
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
String
roomsRooms
Information about the room(s) on the hotel reservation.
OptionalVariableObject
bedTypeBed type
The type of bed(s) in the hotel room.
Valid values:
  • 01 = King
  • 02 = Double/Queen
  • 03 = Twin
  • 04 = Other
Optional2Object
roomOccupancyRoom occupancy
The number of guests occupying the hotel room.
Optional1-2
Numeric
String
roomTypeRoom Type
The type of hotel room.
Valid values:
  • 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
Optional2Object

Travellers object field details

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

Related topics