Learn how to provide data specific to travel and entertainment purchases.
Available with preview header
You can use this public preview feature by including the version header 2025-11-17.preview or a later preview version header in your API request.
Use industry metadata in the Payment Intents API to provide required industry-specific data for transactions in supported travel and entertainment industries.
Providing industry-specific data is required for certain merchant category codes to comply with card network requirements and might improve authorisation rates and risk assessment on Klarna transactions.
Implement industry metadata for card payments if your business operates under specific travel and entertainment merchant category codes (MCCs), such as car rental, lodging, travel agency or airline codes listed in Availability).
Availability
Providing industry-specific data is only available to users of PaymentIntents and is limited to the following Merchant Category Codes (MCCs).
Car Rental: 3351-3441, 7512, 7513, 7519
Lodging: 3501-3999, 7011
Travel Agency: 4722
Flight: 4511
You can submit industry metadata for payments with specific card brands (Visa, Mastercard, Amex and Discover) and Klarna.
Klarna-specific verticals
In addition to car rentals, lodging and flights, Klarna supports additional industry-specific verticals that are not available for card payments, including:
Events (concerts, festivals, sports and conferences)
Industry Metadata is in private preview for card transactions and public preview only for Klarna. Additionally, card transactions don’t support passing cruise data.
Cards: Only the first entry in each array (car_rental_data[0], lodging_data[0], flight_data[0]) is sent to card networks. Additional entries are ignored and aren’t used for card network compliance.
Klarna: All entries in each array are processed and used in Klarna’s risk assessment and authorisation decisions.
For card transactions with multiple bookings (such as multiple hotel stays or car rentals), create separate PaymentIntents for each booking to ensure all transaction data is properly sent to card networks.
This section is organised into three property categories for each vertical:
General supported properties: Base fields that all payment methods support. These fields define the core API structure.
Additional supported properties for cards: Extra fields that card networks use in addition to general properties. When processing card payments, use fields from both the “General” and “Cards” categories.
Additional supported properties for Klarna: Extra fields that Klarna uses in addition to the general properties. When processing Klarna payments, use fields from both the “General” and “Klarna” sections.
Cards and Klarna use different properties and validation rules. Properties sent to one payment method that aren’t supported are ignored.
The following tabs describe the car_rental_data, lodging_data and flight_data hashes:
General supported properties
The Stripe API supports the following properties, which all card and Klarna transactions use.
Note
The fields listed below are nested under payment_details.car_rental_data. See the full code example for how to structure your API request.
Required fields for car rentals
The following are the minimum required fields for all car rental transactions:
pickup.address.line1
pickup.address.city
pickup.address.postal_code
pickup.address.country
pickup.time
drop_off.address.line1
drop_off.address.city
drop_off.address.postal_code
drop_off.address.country
drop_off.time
total.amount
These are additional fields that are required for card transactions:
pickup.address.state (when applicable to the country)
drop_off.address.state (when applicable to the country)
booking_number
days_rented
customer_service_phone_number
renter_name
vehicle.type
vehicle.make
vehicle.model
Property name
Type
Description
Format
pickup.address.line1
String
First line of the car pickup address (street, PO Box, or company name)
Required property
Alphanumeric
Maximum length: 99 characters
pickup.address.postal_code
String
Postal code of the car pickup address
Required property
Alphanumeric
Maximum length: 10 characters
pickup.address.city
String
City, district, suburb, town or village of the car pickup address
State, county, province or region of the car pickup address
Required for cards
Conditional validation1
Alphanumeric
Maximum length: 99 characters
drop_off.address.state
String
State, county, province or region of the car drop off address
Required for cards
Conditional validation2
Alphanumeric
Maximum length: 99 characters
pickup.address.line2
String
Second line of the car pickup address (street, PO Box or company name)
Alphanumeric
Maximum length: 99 characters
drop_off.address.line2
String
Second line of the car drop off address (street, PO Box, or company name)
Alphanumeric
Maximum length: 99 characters
carrier_name
String
Name of the car rental company
Alphanumeric
Maximum length: 255 characters
vehicle.vehicle_class
String
Tier of rented vehicle
One of economy, premium_economy, business or first_class
affiliate.name
String
Name of the affiliate that initiated the purchase
Alphanumeric
Maximum length: 255 characters
1pickup.address.state must be a valid state in pickup.address.country for card transactions
2drop_off.address.state must be a valid state in drop_off.address.country for card transactions
Additional supported properties for cards
Cards support the general supported properties and also use the following properties. Klarna won’t see these properties and they won’t improve authorisation rates or risk assessment for Klarna transactions.
Property name
Type
Description
Format
booking_number
String
Booking confirmation number for the car rental
Required for cards
Alphanumeric
Maximum length: 255 characters
days_rented
Integer
Number of days the car was rented
Required for cards
Minimum: 1
Maximum: 999
customer_service_phone_number
String
Phone number for the car rental company’s customer service
Required for cards
Must be a valid phone number (numbers only), can also be all zeros (0000000000) in test mode
Non-US phone numbers must begin with a plus symbol (+)
Indicates if the customer failed to show up for their booking
true or false
pickup.location_name
String
Location where the car rental was picked up
Alphanumeric
Maximum length: 38 characters
drop_off.location_name
String
Location where the car rental was dropped off
Alphanumeric
Maximum length: 38 characters
drivers[].driver_identification_number
String
Driver’s license or ID number belonging to the authorised driver in the car rental agreement
Alphanumeric
Maximum length: 20 characters
This personally identifiable property is not required
drivers[].driver_tax_number
String
Tax identification number of the authorised driver in the car rental agreement
Alphanumeric
Maximum length: 20 characters
This personally identifiable property is not required
total.rate_per_unit
Integer
Rate charged for each unit of distance or time travelled
Minimum: 0
total.rate_unit
String
Unit used to calculate the rate per unit travelled
One of miles, kilometers, days, weeks, or months
total.tax.tax_exempt_indicator
Boolean
Indicates if the car rental was tax-exempt or tax was not collected
true or false
total.tax.taxes[].rate
Integer
Percentage used to calculate this tax amount
Minimum: 0
total.tax.taxes[].amount
Integer
Amount of this tax charged for the car rental
Minimum: 0
total.tax.taxes[].type
String
Type of tax applied to the car rental
Alphanumeric
Maximum length: 40 characters
total.extra_charges[].amount
Integer
Amounts of extra charge incurred during the car rental
Minimum: 0
total.extra_charges[].type
String
Types of extra charge incurred during the car rental
One of one_way_drop_off, regular_mileage, extra_mileage, late_charge, parking, towing, gps, phone, gas, or other
total.discounts.maximum_free_miles_or_kilometers
Integer
Number of free miles or kilometres allowed during the car rental
Minimum: 0
Maximum: 9999
total.discounts.corporate_client_code
String
Code assigned to a business entity used for corporate rates or discounts
Alphanumeric
Maximum length: 20 characters
total.discounts.coupon
String
Coupon code used to discount the rate of the car rental agreement
Maximum length: 25 characters
vehicle.vehicle_identification_number
String
Registration number of the rented vehicle
Alphanumeric
Maximum length: 20 characters
vehicle.odometer
Integer
Odometer reading when the car was first rented
Minimum: 0
affiliate.code
String
Code of the affiliate that initiated the purchase
Alphanumeric
Maximum length: 20 characters
1 The distance property is optional. distance.amount and distance.unit are required if distance is provided.
Additional Klarna supported properties
Klarna supports the general supported properties and also uses the following properties. The card networks won’t see these properties and they won’t impact compliance with card network requirements for card transactions.
Property name
Type
Description
Format
drivers[].name
String
Full name of the authorised driver in the car rental agreement
Conditionally required1
Alphanumeric
Maximum length: 198 characters
drivers[].date_of_birth.day
Integer
Date of birth of the authorised driver in the car rental agreement
Conditionally required2
Minimum: 1
Maximum: 31
date_of_birth must be a valid date in the past
drivers[].date_of_birth.month
Integer
Date of birth of the authorised driver in the car rental agreement
Conditionally required2
Minimum: 1
Maximum: 12
date_of_birth must be a valid date in the past
drivers[].date_of_birth.year
Integer
Date of birth of the authorised driver in the car rental agreement
Name of the company providing insurance for the car rental
Maximum length: 255 characters
1 The drivers array is optional. The drivers[].name is required for each driver provided.
2 The drivers[].date_of_birth property is optional. drivers[].date_of_birth.day, drivers[].date_of_birth.month, and drivers[].date_of_birth.year are all required if drivers[].date_of_birth is provided.
3 The insurances array is optional. insurances[].insurance_type and insurances[].amount are required for each insurance provided.
Note
For certain properties, the lengths might be truncated to comply with various payment method requirements that accept different property sizes.
The steps below highlight manual confirmation and capture to show how to update payment_details throughout the PaymentIntent lifecycle. You can provide payment_details for automatic confirmation or automatic capture use cases.
Create a PaymentIntent
Create an unconfirmed and uncaptured PaymentIntent with payment_details. Use the update method to update payment_details before confirming the PaymentIntent. All payment_details updates are a full hash replacement and must be valid for your payment method.
You can update payment_details when confirming the PaymentIntent. All payment_details updates are a full hash replacement and must be valid for your payment method. See sending industry-specific data for more information on what each property represents.
You can include and update payment_details when capturing the PaymentIntent. Make sure the data you provide is complete because payment_details can’t be modified after a PaymentIntent is captured. See sending industry-specific data for more information on what each property represents.
You can also add multiple types of industry data to a single payment_details object to provide information about transactions involving several legs of travel. See sending industry-specific data for more information on what each property represents.
Test that your integration works correctly for your customers. You can simulate API calls in a Stripe Sandbox using a sandbox key. For additional information, see Testing.
During testing, you can verify the following:
Your industry metadata is properly formatted and accepted by the API
Required fields are present for your payment method (cards or Klarna)
The PaymentIntent successfully processes with your metadata
Sandbox testing verifies that your integration is technically correct, but doesn’t simulate card network interchange qualification decisions or Klarna’s authorisation rates and risk assessment outcomes.