Message extension elements for the travel industry

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.

error_outline

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"
      }
    }
  ]
error_outline

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 name Description Inclusion Length Data type Valid Value
id Assigned Extension Group Identifier
A unique identifier for the extension.
Required 14 String A000000802-002
criticalityIndicator Criticality Indicator
A Boolean value indicating whether the recipient must understand the contents of the extension to interpret the entire message.
Required NA Boolean False
data Data
The data carried in the extension.
Required Max 8059 object See data object field details
name Extension Name
The name of the extension data set as defined by the extension owner.
Required 15 String Travel Industry


Data object field details

Field name Description Inclusion Length Data type Valid Value
agencyIndicator Agency indicator
Whether transaction is initiated by a travel agency on behalf of a consumer.
Optional 1 String Y
If field is missing, the default is N
air Air travel data
The data specific to air travel.
Optional variable Object See air travel object field details
car car rental data
The data specific to car rental reservations.
Optional variable Object See car rental object field details
hotel Hotel data
The data specific to hotel reservations.
Optional variable Object See hotel object field details
travellers Travelers
Information about the travellers on the itinerary.
Optional variable Object See traveler object field details
version Version number
Version number of the message extension.
Required 3 String 2.0


Air travel object field details

Field name Description Inclusion Length Data type Valid Value
airlineTicketInfo Airline ticket information
Information about the airline ticket being purchased.
Optional Variable Object NA
itineraryInfo Itinerary information
Information about the flight itinerary.
Note: The maximum number of air travel itineraries in a transaction is 1.
Optional Variable Object NA
currencyMismatchIndicator Currency mismatch indicator
Currency used in the authorisation may differ from the currency for the authentication.
Optional 1 String Y
If field is missing, the default is N
ticketAmount Ticket 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.
Optional Max 48 String NA
ticketCount Ticket count
Total count of airline ticket(s) being purchased.
Optional 1-2
Numeric
String NA
ticketCurrency Ticket currency
Currency in which ticket purchase amount is expressed.
Optional 3
Numeric
String ISO 4217 three-digit currency code
flightIndicator Flight indicator
Indicator representing the type of flight on the itinerary.
Optional 2 Object
  • 01 = One-way
  • 02 = Round-trip
  • 03 = Multi-city
segments Segments
Information about the flight segments on the itinerary.
Optional 3 String IATA Coding Directory open_in_new or IATA Airline and Location Codes open_in_new
arrivalAirport Arrival airport
The arrival airport of the flight segment.
Optional Variable Object NA
arrivalDate Arrival 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
Optional 8
Numeric
String NA
arrivalTime Arrival 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
Optional 4
Numeric
String NA
departureAirport Departure airport
The departure airport of the flight segment.
Optional 3 String IATA Coding Directory open_in_new or IATA Airline and Location Codes open_in_new
departureDate Departure 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
Optional 8 String NA
departureTime Departure 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
Optional 4 Numeric String NA
operatingCarrier Operating carrier
The operating carrier (airline) of the flight segment.
Optional 2 String IATA Coding Directory open_in_new or IATA Airline and Location Codes open_in_new


Car rental object field details

Field name Description Inclusion Length Data type Valid Value
companyInfo Car rental company information
Information about the car rental company.
Optional Variable Object NA
reservationInfo Car rental reservation information
Information about the car rental reservation.
Note: The maximum number of car rental reservations in a transaction is 1.
Optional Variable Object NA
name Company name
The name of the car rental company.
Optional Max 50 String NA
email Email address
The email address of the car rental company.
Optional Max 254 String Should meet requirements of Section 3.4 of IETF RFC 5322 open_in_new
phone Phone number
The phone number of the car rental company.
Optional Variable
  • cc: 1-3 characters
  • subscriber: variable, maximum 15 characters
  • Object Country Code and Subscriber sections of the number represented by the following named fields:
    • cc
    • subscriber

    Refer to ITU-E.164 open_in_new for additional information on format and length.
    currencyMismatchIndicator Currency mismatch indicator
    Currency used in the authorisation may differ from the currency for the authentication.
    Optional 1 String Y
    If field is missing, the default is N
    amount Reservation 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
    Optional Max 48 String NA
    currency Reservation currency
    Currency in which the car rental reservation purchase amount is expressed.
    Optional 3
    Numeric
    String ISO 4217 three-digit currency code open_in_new
    pickUpDate Pick-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
    Optional 8
    Numeric
    String NA
    pickUpTime Pick-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
    Optional 4
    Numeric
    String NA
    pickUpLocation Pick-up location
    Information about the pick-up location on the car rental reservation.
    Optional Variable Object NA
    returnDate Return 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
    Optional 8
    Numeric
    String NA
    returnTime Return 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
    Optional 4
    Numeric
    String NA
    returnLocation Return location
    Information about the return location on the car rental reservation.
    Optional Variable Object NA
    cars Cars
    Information about the car(s) on the car rental reservation.
    Optional Variable Object NA
    addrLine1 Address Line 1
    The first line of the address or equivalent local portion of the car rental pick-up or return location.
    Optional Max 50 String NA
    addrLine2 Address Line 2
    The second line of the address or equivalent local portion of the car rental pick-up or return location.
    Optional Max 50 String NA
    addrLine3 Address Line 3
    The third line of the address or equivalent local portion of the car rental pick-up or return location.
    Optional Max 50 String NA
    addrCity Address city
    The city of the address or equivalent local portion of the car rental pick-up or return location.
    Optional Max 50 String NA
    addrState Address state
    The state or province of the address or equivalent local portion of the car rental pick-up or return location.
    Optional Max 3 String Should be the country subdivision code defined in ISO 3166-2 open_in_new
    addrPostCode Address postal code
    The ZIP or other postal code of the address or equivalent local portion of the car rental pick-up or return location.
    Optional Max 16 String NA
    addrCountry Address country
    The country of the address or equivalent local portion of the car rental pick-up or return location.
    Optional 3 String ISO 3166-1 three-digit country code open_in_new
    carRentalType Car rental type
    The type of car in the car rental.
    Optional 2 Object
    • 01 = TBD
    • 02 = TBD
    • 03 = TBD
    • 04 = TBD
    carRentalInsuranceType Car rental insurance type
    The type of car insurance in the car rental.
    Optional 2 Object
    • 01 = TBD
    • 02 = TBD
    • 03 = TBD
    • 04 = TBD


    Hotel object field details

    Field name Description Inclusion Length Data type Valid Value
    propertyInfo Hotel property information
    Information about the hotel property.
    Optional Variable Object NA
    reservationInfo Hotel reservation information
    Information about the hotel reservation.
    Note: The maximum number of hotel reservations in a transaction is 1.
    Optional Variable Object NA
    name Hotel name
    The name of the hotel property.
    Optional Max 50 String NA
    chainCode Chain code
    The chain code of the hotel property.
    Optional TBD String NA
    propertyCode Property code
    The property code of the hotel property.
    Optional TBD String NA
    referenceCode Reference code
    The reference code of the hotel property.
    Optional TBD String NA
    addrLine1 Address Line 1
    The first line of the address or equivalent local portion of the hotel property.
    Optional Max 50 String NA
    addrLine2 Address Line 2
    The second line of the address or equivalent local portion of the hotel property.
    Optional Max 50 String NA
    addrLine3 Address Line 3
    The third line of the address or equivalent local portion of the hotel property.
    Optional Max 50 String NA
    addrCity Address city
    The city of the address or equivalent local portion of the hotel property.
    Optional Max 50 String NA
    addrState Address state
    The state or province of the address or equivalent local portion of the hotel property.
    Optional Max 3 String Should be the country subdivision code defined in ISO 3166-2 open_in_new
    addrPostCode Address postal code
    The ZIP or other postal code of the address or equivalent local portion of the hotel property.
    Optional Max 16 String NA
    addrCountry Address country
    The country of the address or equivalent local portion of the hotel property.
    Optional 3 String ISO 3166-1 three-digit country code open_in_new
    email Email address
    The email address of the hotel property.
    Optional Max 254 String Should meet requirements of Section 3.4 of IETF RFC 5322 open_in_new
    phone Phone number
    The phone number of the hotel property.
    Optional Variable
  • cc: 1-3 characters
  • subscriber: variable, maximum 15 characters
  • Object Country Code and Subscriber sections of the number represented by the following named fields:
    • cc
    • subscriber

    Refer to ITU-E.164 open_in_new for additional information on format and length.
    currencyMismatchIndicator Currency mismatch indicator
    Currency used in the authorisation may differ from the currency for the authentication.
    Optional 1 String Y
    If field is missing, the default is N
    amount Reservation amount
    Total amount of the hotel reservation being purchased.
    Example: If purchase amount is USD 123.45, enter amount as either 12345, 012345, 0012345
    Optional Max 48 String NA
    currency Reservation currency
    Currency in which the car rental reservation purchase amount is expressed.
    Optional 3
    Numeric
    String ISO 4217 three-digit currency code open_in_new
    checkInDate Check-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
    Optional 8
    Numeric
    String NA
    checkInTime Check-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
    Optional 4
    Numeric
    String NA
    checkOutDate Check-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
    Optional 8
    Numeric
    String NA
    checkOutTime Check-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
    Optional 4
    Numeric
    String NA
    rooms Rooms
    Information about the room(s) on the hotel reservation.
    Optional Variable Object NA
    bedType Bed type
    The type of bed(s) in the hotel room.
    Optional 2 Object
    • 01 = King
    • 02 = Double/Queen
    • 03 = Twin
    • 04 = Other
    roomOccupancy Room occupancy
    The number of guests occupying the hotel room.
    Optional 1-2
    Numeric
    String NA
    roomType Room Type
    The type of hotel room.
    Optional 2 Object
    • 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 name Description Inclusion Length Data type Valid Value
    airlineLoyaltyStatus Airline loyalty status
    Airline loyalty program level for the traveller on the airline itinerary.
    Optional 2 Object
    • 01 = None
    • 02 = Enrolled
    • 03 = Status (includes all tiers above enrolled status)
    airlinePassengerIndicator Airline passenger indicator
    Whether traveller is a passenger in the airline itinerary.
    Optional 1 String Y
    If field is missing, the default is N
    carRentalDriverIndicator Car rental driver indicator
    Whether traveller is a driver in the car rental reservation.
    Optional 1 String Y
    If field is missing, the default is N
    carRentalLoyaltyStatus Car rental loyalty status
    Car rental loyalty program level for the traveller on the car reservation.
    Optional 2 String
    • 01 = None
    • 02 = Enrolled
    • 03 = Status (includes all tiers above enrolled status)
    hotelGuestIndicator Hotel guest indicator
    Whether traveller is a guest in the hotel reservation.
    Optional 1 String Y
    If field is missing, the default is N
    hotelLoyaltyStatus Hotel loyalty status
    Hotel loyalty program level for the traveller on the hotel reservation.
    Optional 2 String
    • 01 = None
    • 02 = Enrolled
    • 03 = Status (includes all tiers above enrolled status)
    name Traveller Name
    Name of traveller on the itinerary.
    Optional 1-45 String NA
    type Traveller Type
    Type of traveller on the itinerary.
    Optional 3 String
    • ADT = Adult
    • CHD = Child
    • INF = Infant

    Related topics