RyzeDeskRyzeDesk

Stripe

4105 articles

Industry metadata


Public preview

Industry metadata Public preview

Learn how to provide data specific to travel and entertainment purchases.

Available with public preview header

You can use this public preview feature by including the version header 2026-07-29.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 aren’t available for card payments, including:

  • Events (concerts, festivals, sports and conferences)
  • Insurance (standalone insurance policies)
  • Train, bus and ferry transportation
  • Organised trips and tours
  • Vouchers
  • Marketplace sellers

Learn more about these Klarna-exclusive verticals in the Klarna supplementary purchase data documentation.

Private preview for cards

Industry Metadata is in private preview for card transactions and public preview only for Klarna. Additionally, card transactions don’t support passing cruise data.

Send industry-specific data

You send industry-specific data through the payment_details parameter when you create, update or confirm a PaymentIntent.

The payment_details hash contains an array of hashes for each vertical (industry category): car_rental_data, lodging_data, and flight_data.

Each hash in these arrays represents an individual car rental, lodging stay or flight ticket.

Refer to Create a PaymentIntent to learn more about passing data.

Array processing behaviour

Payment methods handle multiple bookings differently:

  • 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:

  1. General supported properties : Base fields that all payment methods support. These fields define the core API structure.
  2. 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.
  3. 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.

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 nameTypeDescriptionFormat
pickup.address.line1StringFirst line of the car pickup address (street, PO Box, or company name)Required property Alphanumeric Maximum length: 99 characters
pickup.address.postal_codeStringPostal code of the car pickup addressRequired property Alphanumeric Maximum length: 10 characters
pickup.address.cityStringCity, district, suburb, town or village of the car pickup addressRequired property Alphanumeric Maximum length: 99 characters
pickup.address.countryStringCountry code of the car pickup addressRequired property Must be a valid ISO 3166-1 alpha-2 country code
pickup.timeTimestampCar pickup timeRequired property Seconds since the Unix epoch Must be between 2 years ago and 2 years from now
drop_off.address.line1StringFirst line of the car drop off address (street, PO Box, or company name)Required property Alphanumeric Maximum length: 99 characters
drop_off.address.postal_codeStringPostal code of the car drop off addressRequired property Alphanumeric Maximum length: 10 characters
drop_off.address.cityStringCity, district, suburb, town or village of the car drop off addressRequired property Alphanumeric Maximum length: 99 characters
drop_off.address.countryStringCountry code of the car drop off addressRequired property Must be a valid ISO 3166-1 alpha-2 country code
drop_off.timeTimestampCar drop off timeRequired property Seconds since the Unix epoch Must be between 2 years ago and 2 years from now
total.amountIntegerPrice of the overall car rental in the smallest currency unitRequired property Minimum: 0
pickup.address.stateStringState, county, province or region of the car pickup addressRequired for cards Conditional validation 1 Alphanumeric Maximum length: 99 characters
drop_off.address.stateStringState, county, province or region of the car drop off addressRequired for cards Conditional validation 2 Alphanumeric Maximum length: 99 characters
pickup.address.line2StringSecond line of the car pickup address (street, PO Box or company name)Alphanumeric Maximum length: 99 characters
drop_off.address.line2StringSecond line of the car drop off address (street, PO Box, or company name)Alphanumeric Maximum length: 99 characters
carrier_nameStringName of the car rental companyAlphanumeric Maximum length: 255 characters
vehicle.vehicle_classStringTier of rented vehicleOne of economy, premium_economy, business or first_class
affiliate.nameStringName of the affiliate that initiated the purchaseAlphanumeric Maximum length: 255 characters

1 pickup.address.state must be a valid state in pickup.address.country for card transactions

2 drop_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 nameTypeDescriptionFormat
booking_numberStringBooking confirmation number for the car rentalRequired for cards Alphanumeric Maximum length: 255 characters
days_rentedIntegerNumber of days the car was rentedRequired for cards Minimum: 1 Maximum: 999
customer_service_phone_numberStringPhone number for the car rental company’s customer serviceRequired for cards In live mode, you must use a valid phone number. Begin non-US numbers with + and include the country code. If a US number begins with +, use country code 1 followed by the 10-digit number. In a sandbox, you can also use all zeros ( 0000000000)
renter_nameStringName of the person renting the vehicleRequired for cards Maximum length: 198 characters
vehicle.typeStringCode indicating the vehicle’s classRequired for cards One of mini, subcompact, economy, compact, midsize, intermediate, standard, full_size, luxury, premium, minivan, twelve_passenger_van, moving_van, fifteen_passenger_van, cargo_van, twelve_foot_truck, twenty_foot_truck, twenty_four_foot_truck, twenty_six_foot_truck, moped, stretch, regular, unique, exotic, small_medium_truck, large_truck, small_suv, medium_suv, large_suv, exotic_suv, four_wheel_drive, special, taxi, or miscellaneous
vehicle.makeStringBrand of car that was rentedRequired for cards Alphanumeric Maximum length: 40 characters
vehicle.modelStringModel of car that was rentedRequired for cards Alphanumeric Maximum length: 40 characters
distance.amountIntegerDistance travelled during the car rental periodConditionally required property 1 Minimum: 0
distance.unitStringUnit of distance for the distance travelledConditionally required property 1 One of miles or kilometers
no_show_indicatorBooleanIndicates if the customer failed to show up for their bookingtrue or false
pickup.location_nameStringLocation where the car rental was picked upAlphanumeric Maximum length: 38 characters
drop_off.location_nameStringLocation where the car rental was dropped offAlphanumeric Maximum length: 38 characters
drivers[].driver_identification_numberStringDriver’s license or ID number belonging to the authorised driver in the car rental agreementAlphanumeric Maximum length: 20 characters This personally identifiable property isn’t required
drivers[].driver_tax_numberStringTax identification number of the authorised driver in the car rental agreementAlphanumeric Maximum length: 20 characters This personally identifiable property isn’t required
total.rate_per_unitIntegerRate charged for each unit of distance or time travelledMinimum: 0
total.rate_unitStringUnit used to calculate the rate per unit travelledOne of miles, kilometers, days, weeks, or months
total.tax.tax_exempt_indicatorBooleanIndicates if the car rental was tax-exempt or tax wasn’t collectedtrue or false
total.tax.tax_items[].rateIntegerPercentage used to calculate this tax amountMinimum: 0
total.tax.tax_items[].amountIntegerAmount of this tax charged for the car rentalMinimum: 0
total.tax.tax_items[].typeStringType of tax applied to the car rentalAlphanumeric Maximum length: 40 characters
total.extra_charges[].amountIntegerAmounts of extra charge incurred during the car rentalMinimum: 0
total.extra_charges[].typeStringTypes of extra charge incurred during the car rentalOne of one_way_drop_off, regular_mileage, extra_mileage, late_charge, parking, towing, gps, phone, gas, or other
total.discounts.maximum_free_miles_or_kilometersIntegerNumber of free miles or kilometres allowed during the car rentalMinimum: 0 Maximum: 9999
total.discounts.corporate_client_codeStringCode assigned to a business entity used for corporate rates or discountsAlphanumeric Maximum length: 20 characters
total.discounts.couponStringCoupon code used to discount the rate of the car rental agreementMaximum length: 25 characters
vehicle.vehicle_identification_numberStringRegistration number of the rented vehicleAlphanumeric Maximum length: 20 characters
vehicle.odometerIntegerOdometer reading when the car was first rentedMinimum: 0
affiliate.codeStringCode of the affiliate that initiated the purchaseAlphanumeric 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 nameTypeDescriptionFormat
drivers[].nameStringFull name of the authorised driver in the car rental agreementConditionally required 1 Alphanumeric Maximum length: 198 characters
drivers[].date_of_birth.dayIntegerDate of birth of the authorised driver in the car rental agreementConditionally required 2 Minimum: 1 Maximum: 31 date_of_birth must be a valid date in the past
drivers[].date_of_birth.monthIntegerDate of birth of the authorised driver in the car rental agreementConditionally required 2 Minimum: 1 Maximum: 12 date_of_birth must be a valid date in the past
drivers[].date_of_birth.yearIntegerDate of birth of the authorised driver in the car rental agreementConditionally required 2 Minimum: 1901 date_of_birth must be a valid date in the past
carrier_nameStringName of the car rental companyAlphanumeric Maximum length: 255 characters
total.currencyStringCurrency of the price of the overall car rentalMust be a valid ISO 4217 3-letter code
insurances[].insurance_typeStringType of insurance coverage provided for the car rentalConditionally required 3 One of liability_supplement, loss_damage_waiver, partial_damage_waiver, personal_accident, personal_effects, or other
insurances[].amountIntegerPrice of the insurance provided for the car rental in the smallest currency unitConditionally required 3 Minimum: 0
insurances[].currencyStringCurrency of the insurance provided for the car rentalMust be a valid ISO 4217 3-letter code
insurances[].insurance_company_nameStringName of the company providing insurance for the car rentalMaximum 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.

Use PaymentIntents

Include payment_details data when you create, update, confirm or capture a PaymentIntent.

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.

Command Line

cURL

Confirm a PaymentIntent

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.

Command Line

cURL

Capture a PaymentIntent

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.

Command Line

cURL

Multiple travel methods

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.

Command Line

cURL

Testing

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.

Last verified 2026-09-27

Is this helpful?