Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseUse Managed Payments
Use Payment Links
Use a pre-built checkout page
Build a custom integration with Elements
Build an in-app integration
In-person payments
Terminal
Payment Methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment scenarios
Handle multiple currencies
Custom payment flows
    Overview
    Payments for existing customers
    Authorise and capture a payment separately
    Build a two-step checkout flow
    Collect payment details before creating an Intent
    Finalise payments on the server
    Take mail orders and telephone orders (MOTO)
    US and Canadian cards
    Forward card details to third-party API endpoints
    Payments line items
    Industry metadata
Flexible acquiring
Orchestration
Beyond payments
Incorporate your company
Crypto
Agentic commerce
Financial Connections
Climate
Understand fraud
Radar fraud protection
Manage disputes
Verify identities
United States
English (United Kingdom)
HomePaymentsCustom payment flows

Industry metadataPublic preview

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)
  • 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.

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 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 address
  • Required property
  • Alphanumeric
  • Maximum length: 10 characters
pickup.address.cityStringCity, district, suburb, town or village of the car pickup address
  • Required property
  • Alphanumeric
  • Maximum length: 99 characters
pickup.address.countryStringCountry code of the car pickup address
  • Required property
  • Must be a valid ISO 3166-1 alpha-2 country code
pickup.timeTimestampCar pickup time
  • Required 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 address
  • Required property
  • Alphanumeric
  • Maximum length: 10 characters
drop_off.address.cityStringCity, district, suburb, town or village of the car drop off address
  • Required property
  • Alphanumeric
  • Maximum length: 99 characters
drop_off.address.countryStringCountry code of the car drop off address
  • Required property
  • Must be a valid ISO 3166-1 alpha-2 country code
drop_off.timeTimestampCar drop off time
  • Required 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 unit
  • Required property
  • Minimum: 0
pickup.address.stateStringState, county, province or region of the car pickup address
  • Required for cards
  • Conditional validation1
  • Alphanumeric
  • Maximum length: 99 characters
drop_off.address.stateStringState, county, province or region of the car drop off address
  • Required for cards
  • Conditional validation2
  • 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 company
  • Alphanumeric
  • Maximum length: 255 characters
vehicle.vehicle_classStringTier of rented vehicle
  • One of economy, premium_economy, business or first_class
affiliate.nameStringName of the affiliate that initiated the purchase
  • Alphanumeric
  • 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 rental
  • Required for cards
  • Alphanumeric
  • Maximum length: 255 characters
days_rentedIntegerNumber of days the car was rented
  • Required for cards
  • Minimum: 1
  • Maximum: 999
customer_service_phone_numberStringPhone 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 (+)
renter_nameStringName of the person renting the vehicle
  • Required for cards
  • Maximum length: 198 characters
vehicle.typeStringCode indicating the vehicle’s class
  • Required 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 rented
  • Required for cards
  • Alphanumeric
  • Maximum length: 40 characters
vehicle.modelStringModel of car that was rented
  • Required for cards
  • Alphanumeric
  • Maximum length: 40 characters
distance.amountIntegerDistance travelled during the car rental period
  • Conditionally required property 1
  • Minimum: 0
distance.unitStringUnit of distance for the distance travelled
  • Conditionally required property 1
  • One of miles or kilometers
no_show_indicatorBooleanIndicates if the customer failed to show up for their booking
  • true or false
pickup.location_nameStringLocation where the car rental was picked up
  • Alphanumeric
  • Maximum length: 38 characters
drop_off.location_nameStringLocation where the car rental was dropped off
  • Alphanumeric
  • Maximum length: 38 characters
drivers[].driver_identification_numberStringDriver’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_numberStringTax 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_unitIntegerRate charged for each unit of distance or time travelled
  • Minimum: 0
total.rate_unitStringUnit used to calculate the rate per unit travelled
  • One of miles, kilometers, days, weeks, or months
total.tax.tax_exempt_indicatorBooleanIndicates if the car rental was tax-exempt or tax was not collected
  • true or false
total.tax.taxes[].rateIntegerPercentage used to calculate this tax amount
  • Minimum: 0
total.tax.taxes[].amountIntegerAmount of this tax charged for the car rental
  • Minimum: 0
total.tax.taxes[].typeStringType of tax applied to the car rental
  • Alphanumeric
  • Maximum length: 40 characters
total.extra_charges[].amountIntegerAmounts of extra charge incurred during the car rental
  • Minimum: 0
total.extra_charges[].typeStringTypes 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_kilometersIntegerNumber of free miles or kilometres allowed during the car rental
  • Minimum: 0
  • Maximum: 9999
total.discounts.corporate_client_codeStringCode assigned to a business entity used for corporate rates or discounts
  • Alphanumeric
  • Maximum length: 20 characters
total.discounts.couponStringCoupon code used to discount the rate of the car rental agreement
  • Maximum length: 25 characters
vehicle.vehicle_identification_numberStringRegistration number of the rented vehicle
  • Alphanumeric
  • Maximum length: 20 characters
vehicle.odometerIntegerOdometer reading when the car was first rented
  • Minimum: 0
affiliate.codeStringCode 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 nameTypeDescriptionFormat
drivers[].nameStringFull name of the authorised driver in the car rental agreement
  • Conditionally required1
  • Alphanumeric
  • Maximum length: 198 characters
drivers[].date_of_birth.dayIntegerDate 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.monthIntegerDate 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.yearIntegerDate of birth of the authorised driver in the car rental agreement
  • Conditionally required2
  • Minimum: 1901
  • date_of_birth must be a valid date in the past
carrier_nameStringName of the car rental company
  • Alphanumeric
  • Maximum length: 255 characters
total.currencyStringCurrency of the price of the overall car rental
  • Must be a valid ISO 4217 3-letter code
insurances[].insurance_typeStringType of insurance coverage provided for the car rental
  • Conditionally required3
  • 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 unit
  • Conditionally required3
  • Minimum: 0
insurances[].currencyStringCurrency of the insurance provided for the car rental
  • Must be a valid ISO 4217 3-letter code
insurances[].insurance_company_nameStringName 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.

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
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=200 \ -d currency=usd \ -d "payment_method_types[0]"=card \ -d "payment_details[car_rental_data][0][booking_number]"=BOOK123456 \ -d "payment_details[car_rental_data][0][days_rented]"=3 \ --data-urlencode "payment_details[car_rental_data][0][customer_service_phone_number]"="+18005551234" \ -d "payment_details[car_rental_data][0][renter_name]"="John Doe" \ -d "payment_details[car_rental_data][0][no_show_indicator]"=false \ -d "payment_details[car_rental_data][0][distance][amount]"=150 \ -d "payment_details[car_rental_data][0][distance][unit]"=miles \ -d "payment_details[car_rental_data][0][drivers][0][name]"="Jane Driver" \ -d "payment_details[car_rental_data][0][drivers][0][driver_identification_number]"=D12345678 \ -d "payment_details[car_rental_data][0][drivers][0][driver_tax_number]"=TN123456789 \ -d "payment_details[car_rental_data][0][pickup][address][line1]"="123 Main St" \ -d "payment_details[car_rental_data][0][pickup][address][postal_code]"=10001 \ -d "payment_details[car_rental_data][0][pickup][address][city]"="New York" \ -d "payment_details[car_rental_data][0][pickup][address][country]"=US \ -d "payment_details[car_rental_data][0][pickup][address][state]"=NY \ -d "payment_details[car_rental_data][0][pickup][address][line2]"="Apt 4B" \ -d "payment_details[car_rental_data][0][pickup][time]"=1768500000 \ -d "payment_details[car_rental_data][0][pickup][location_name]"="Downtown Garage" \ -d "payment_details[car_rental_data][0][drop_off][address][line1]"="456 Elm St" \ -d "payment_details[car_rental_data][0][drop_off][address][postal_code]"=02101 \ -d "payment_details[car_rental_data][0][drop_off][address][city]"=Boston \ -d "payment_details[car_rental_data][0][drop_off][address][country]"=US \ -d "payment_details[car_rental_data][0][drop_off][address][state]"=MA \ -d "payment_details[car_rental_data][0][drop_off][address][line2]"="Suite 101" \ -d "payment_details[car_rental_data][0][drop_off][time]"=1768777200 \ -d "payment_details[car_rental_data][0][drop_off][location_name]"="Airport Terminal" \ -d "payment_details[car_rental_data][0][total][amount]"=30000 \ -d "payment_details[car_rental_data][0][total][rate_per_unit]"=1500 \ -d "payment_details[car_rental_data][0][total][rate_unit]"=days \ -d "payment_details[car_rental_data][0][total][tax][tax_exempt_indicator]"=false \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][rate]"=10 \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][amount]"=3000 \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][type]"="Sales Tax" \ -d "payment_details[car_rental_data][0][total][extra_charges][0][amount]"=2000 \ -d "payment_details[car_rental_data][0][total][extra_charges][0][type]"=gps \ -d "payment_details[car_rental_data][0][total][discounts][maximum_free_miles_or_kilometers]"=100 \ -d "payment_details[car_rental_data][0][total][discounts][corporate_client_code]"=CORP123 \ -d "payment_details[car_rental_data][0][total][discounts][coupon]"=SAVE20 \ -d "payment_details[car_rental_data][0][insurances][0][insurance_type]"=liability_supplement \ -d "payment_details[car_rental_data][0][insurances][0][amount]"=1500 \ -d "payment_details[car_rental_data][0][vehicle][vehicle_class]"=premium_economy \ -d "payment_details[car_rental_data][0][vehicle][type]"=compact \ -d "payment_details[car_rental_data][0][vehicle][make]"=Toyota \ -d "payment_details[car_rental_data][0][vehicle][model]"=Camry \ -d "payment_details[car_rental_data][0][vehicle][vehicle_identification_number]"=1HGBH41JXMN109186 \ -d "payment_details[car_rental_data][0][vehicle][odometer]"=25000 \ -d "payment_details[car_rental_data][0][affiliate][name]"="Travel Partner" \ -d "payment_details[car_rental_data][0][affiliate][code]"=TP001

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
No results
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/confirm \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "payment_details[car_rental_data][0][booking_number]"=BOOK123456 \ -d "payment_details[car_rental_data][0][days_rented]"=3 \ --data-urlencode "payment_details[car_rental_data][0][customer_service_phone_number]"="+18005551234" \ -d "payment_details[car_rental_data][0][renter_name]"="John Doe" \ -d "payment_details[car_rental_data][0][no_show_indicator]"=false \ -d "payment_details[car_rental_data][0][distance][amount]"=150 \ -d "payment_details[car_rental_data][0][distance][unit]"=miles \ -d "payment_details[car_rental_data][0][drivers][0][name]"="Jane Driver" \ -d "payment_details[car_rental_data][0][drivers][0][driver_identification_number]"=D12345678 \ -d "payment_details[car_rental_data][0][drivers][0][driver_tax_number]"=TN123456789 \ -d "payment_details[car_rental_data][0][pickup][address][line1]"="123 Main St" \ -d "payment_details[car_rental_data][0][pickup][address][postal_code]"=10001 \ -d "payment_details[car_rental_data][0][pickup][address][city]"="New York" \ -d "payment_details[car_rental_data][0][pickup][address][country]"=US \ -d "payment_details[car_rental_data][0][pickup][address][state]"=NY \ -d "payment_details[car_rental_data][0][pickup][address][line2]"="Apt 4B" \ -d "payment_details[car_rental_data][0][pickup][time]"=1768500000 \ -d "payment_details[car_rental_data][0][pickup][location_name]"="Downtown Garage" \ -d "payment_details[car_rental_data][0][drop_off][address][line1]"="456 Elm St" \ -d "payment_details[car_rental_data][0][drop_off][address][postal_code]"=02101 \ -d "payment_details[car_rental_data][0][drop_off][address][city]"=Boston \ -d "payment_details[car_rental_data][0][drop_off][address][country]"=US \ -d "payment_details[car_rental_data][0][drop_off][address][state]"=MA \ -d "payment_details[car_rental_data][0][drop_off][address][line2]"="Suite 101" \ -d "payment_details[car_rental_data][0][drop_off][time]"=1768777200 \ -d "payment_details[car_rental_data][0][drop_off][location_name]"="Airport Terminal" \ -d "payment_details[car_rental_data][0][total][amount]"=30000 \ -d "payment_details[car_rental_data][0][total][rate_per_unit]"=1500 \ -d "payment_details[car_rental_data][0][total][rate_unit]"=days \ -d "payment_details[car_rental_data][0][total][tax][tax_exempt_indicator]"=false \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][rate]"=10 \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][amount]"=3000 \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][type]"="Sales Tax" \ -d "payment_details[car_rental_data][0][total][extra_charges][0][amount]"=2000 \ -d "payment_details[car_rental_data][0][total][extra_charges][0][type]"=gps \ -d "payment_details[car_rental_data][0][total][discounts][maximum_free_miles_or_kilometers]"=100 \ -d "payment_details[car_rental_data][0][total][discounts][corporate_client_code]"=CORP123 \ -d "payment_details[car_rental_data][0][total][discounts][coupon]"=SAVE20 \ -d "payment_details[car_rental_data][0][insurances][0][insurance_type]"=liability_supplement \ -d "payment_details[car_rental_data][0][insurances][0][amount]"=1500 \ -d "payment_details[car_rental_data][0][vehicle][vehicle_class]"=premium_economy \ -d "payment_details[car_rental_data][0][vehicle][type]"=compact \ -d "payment_details[car_rental_data][0][vehicle][make]"=Toyota \ -d "payment_details[car_rental_data][0][vehicle][model]"=Camry \ -d "payment_details[car_rental_data][0][vehicle][vehicle_identification_number]"=1HGBH41JXMN109186 \ -d "payment_details[car_rental_data][0][vehicle][odometer]"=25000 \ -d "payment_details[car_rental_data][0][affiliate][name]"="Travel Partner" \ -d "payment_details[car_rental_data][0][affiliate][code]"=TP001

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
No results
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/capture \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "payment_details[car_rental_data][0][booking_number]"=BOOK123456 \ -d "payment_details[car_rental_data][0][days_rented]"=3 \ --data-urlencode "payment_details[car_rental_data][0][customer_service_phone_number]"="+18005551234" \ -d "payment_details[car_rental_data][0][renter_name]"="John Doe" \ -d "payment_details[car_rental_data][0][no_show_indicator]"=false \ -d "payment_details[car_rental_data][0][distance][amount]"=150 \ -d "payment_details[car_rental_data][0][distance][unit]"=miles \ -d "payment_details[car_rental_data][0][drivers][0][name]"="Jane Driver" \ -d "payment_details[car_rental_data][0][drivers][0][driver_identification_number]"=D12345678 \ -d "payment_details[car_rental_data][0][drivers][0][driver_tax_number]"=TN123456789 \ -d "payment_details[car_rental_data][0][pickup][address][line1]"="123 Main St" \ -d "payment_details[car_rental_data][0][pickup][address][postal_code]"=10001 \ -d "payment_details[car_rental_data][0][pickup][address][city]"="New York" \ -d "payment_details[car_rental_data][0][pickup][address][country]"=US \ -d "payment_details[car_rental_data][0][pickup][address][state]"=NY \ -d "payment_details[car_rental_data][0][pickup][address][line2]"="Apt 4B" \ -d "payment_details[car_rental_data][0][pickup][time]"=1768500000 \ -d "payment_details[car_rental_data][0][pickup][location_name]"="Downtown Garage" \ -d "payment_details[car_rental_data][0][drop_off][address][line1]"="456 Elm St" \ -d "payment_details[car_rental_data][0][drop_off][address][postal_code]"=02101 \ -d "payment_details[car_rental_data][0][drop_off][address][city]"=Boston \ -d "payment_details[car_rental_data][0][drop_off][address][country]"=US \ -d "payment_details[car_rental_data][0][drop_off][address][state]"=MA \ -d "payment_details[car_rental_data][0][drop_off][address][line2]"="Suite 101" \ -d "payment_details[car_rental_data][0][drop_off][time]"=1768777200 \ -d "payment_details[car_rental_data][0][drop_off][location_name]"="Airport Terminal" \ -d "payment_details[car_rental_data][0][total][amount]"=30000 \ -d "payment_details[car_rental_data][0][total][rate_per_unit]"=1500 \ -d "payment_details[car_rental_data][0][total][rate_unit]"=days \ -d "payment_details[car_rental_data][0][total][tax][tax_exempt_indicator]"=false \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][rate]"=10 \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][amount]"=3000 \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][type]"="Sales Tax" \ -d "payment_details[car_rental_data][0][total][extra_charges][0][amount]"=2000 \ -d "payment_details[car_rental_data][0][total][extra_charges][0][type]"=gps \ -d "payment_details[car_rental_data][0][total][discounts][maximum_free_miles_or_kilometers]"=100 \ -d "payment_details[car_rental_data][0][total][discounts][corporate_client_code]"=CORP123 \ -d "payment_details[car_rental_data][0][total][discounts][coupon]"=SAVE20 \ -d "payment_details[car_rental_data][0][insurances][0][insurance_type]"=liability_supplement \ -d "payment_details[car_rental_data][0][insurances][0][amount]"=1500 \ -d "payment_details[car_rental_data][0][vehicle][vehicle_class]"=premium_economy \ -d "payment_details[car_rental_data][0][vehicle][type]"=compact \ -d "payment_details[car_rental_data][0][vehicle][make]"=Toyota \ -d "payment_details[car_rental_data][0][vehicle][model]"=Camry \ -d "payment_details[car_rental_data][0][vehicle][vehicle_identification_number]"=1HGBH41JXMN109186 \ -d "payment_details[car_rental_data][0][vehicle][odometer]"=25000 \ -d "payment_details[car_rental_data][0][affiliate][name]"="Travel Partner" \ -d "payment_details[car_rental_data][0][affiliate][code]"=TP001

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
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=200 \ -d currency=usd \ -d "payment_method_types[0]"=card \ -d "payment_details[car_rental_data][0][booking_number]"=BOOK123456 \ -d "payment_details[car_rental_data][0][days_rented]"=3 \ --data-urlencode "payment_details[car_rental_data][0][customer_service_phone_number]"="+18005551234" \ -d "payment_details[car_rental_data][0][renter_name]"="John Doe" \ -d "payment_details[car_rental_data][0][no_show_indicator]"=false \ -d "payment_details[car_rental_data][0][distance][amount]"=150 \ -d "payment_details[car_rental_data][0][distance][unit]"=miles \ -d "payment_details[car_rental_data][0][drivers][0][name]"="Jane Driver" \ -d "payment_details[car_rental_data][0][drivers][0][driver_identification_number]"=D12345678 \ -d "payment_details[car_rental_data][0][drivers][0][driver_tax_number]"=TN123456789 \ -d "payment_details[car_rental_data][0][pickup][address][line1]"="123 Main St" \ -d "payment_details[car_rental_data][0][pickup][address][postal_code]"=10001 \ -d "payment_details[car_rental_data][0][pickup][address][city]"="New York" \ -d "payment_details[car_rental_data][0][pickup][address][country]"=US \ -d "payment_details[car_rental_data][0][pickup][address][state]"=NY \ -d "payment_details[car_rental_data][0][pickup][address][line2]"="Apt 4B" \ -d "payment_details[car_rental_data][0][pickup][time]"=1768500000 \ -d "payment_details[car_rental_data][0][pickup][location_name]"="Downtown Garage" \ -d "payment_details[car_rental_data][0][drop_off][address][line1]"="456 Elm St" \ -d "payment_details[car_rental_data][0][drop_off][address][postal_code]"=02101 \ -d "payment_details[car_rental_data][0][drop_off][address][city]"=Boston \ -d "payment_details[car_rental_data][0][drop_off][address][country]"=US \ -d "payment_details[car_rental_data][0][drop_off][address][state]"=MA \ -d "payment_details[car_rental_data][0][drop_off][address][line2]"="Suite 101" \ -d "payment_details[car_rental_data][0][drop_off][time]"=1768777200 \ -d "payment_details[car_rental_data][0][drop_off][location_name]"="Airport Terminal" \ -d "payment_details[car_rental_data][0][total][amount]"=30000 \ -d "payment_details[car_rental_data][0][total][rate_per_unit]"=1500 \ -d "payment_details[car_rental_data][0][total][rate_unit]"=days \ -d "payment_details[car_rental_data][0][total][tax][tax_exempt_indicator]"=false \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][rate]"=10 \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][amount]"=3000 \ -d "payment_details[car_rental_data][0][total][tax][taxes][0][type]"="Sales Tax" \ -d "payment_details[car_rental_data][0][total][extra_charges][0][amount]"=2000 \ -d "payment_details[car_rental_data][0][total][extra_charges][0][type]"=gps \ -d "payment_details[car_rental_data][0][total][discounts][maximum_free_miles_or_kilometers]"=100 \ -d "payment_details[car_rental_data][0][total][discounts][corporate_client_code]"=CORP123 \ -d "payment_details[car_rental_data][0][total][discounts][coupon]"=SAVE20 \ -d "payment_details[car_rental_data][0][insurances][0][insurance_type]"=liability_supplement \ -d "payment_details[car_rental_data][0][insurances][0][amount]"=1500 \ -d "payment_details[car_rental_data][0][vehicle][vehicle_class]"=premium_economy \ -d "payment_details[car_rental_data][0][vehicle][type]"=compact \ -d "payment_details[car_rental_data][0][vehicle][make]"=Toyota \ -d "payment_details[car_rental_data][0][vehicle][model]"=Camry \ -d "payment_details[car_rental_data][0][vehicle][vehicle_identification_number]"=1HGBH41JXMN109186 \ -d "payment_details[car_rental_data][0][vehicle][odometer]"=25000 \ -d "payment_details[car_rental_data][0][affiliate][name]"="Travel Partner" \ -d "payment_details[car_rental_data][0][affiliate][code]"=TP001 \ -d "payment_details[lodging_data][0][checkin_at]"=1771624800 \ -d "payment_details[lodging_data][0][checkout_at]"=1771869600 \ -d "payment_details[lodging_data][0][booking_number]"=HOTEL345678 \ -d "payment_details[lodging_data][0][fire_safety_act_compliance_indicator]"=true \ --data-urlencode "payment_details[lodging_data][0][customer_service_phone_number]"="+12025551234" \ -d "payment_details[lodging_data][0][renter_name]"="Jane Smith" \ -d "payment_details[lodging_data][0][renter_id_number]"=ID123456789 \ -d "payment_details[lodging_data][0][no_show_indicator]"=false \ --data-urlencode "payment_details[lodging_data][0][host][property_phone_number]"="+18005556789" \ -d "payment_details[lodging_data][0][total][amount]"=50000 \ -d "payment_details[lodging_data][0][total][prepaid_amount]"=25000 \ -d "payment_details[lodging_data][0][total][cash_advances]"=10000 \ -d "payment_details[lodging_data][0][total][tax][tax_exempt_indicator]"=false \ -d "payment_details[lodging_data][0][total][tax][taxes][0][rate]"=10 \ -d "payment_details[lodging_data][0][total][tax][taxes][0][amount]"=5000 \ -d "payment_details[lodging_data][0][total][tax][taxes][0][type]"="City Tax" \ -d "payment_details[lodging_data][0][total][extra_charges][0][amount]"=3000 \ -d "payment_details[lodging_data][0][total][extra_charges][0][type]"=mini_bar \ -d "payment_details[lodging_data][0][total][discounts][corporate_client_code]"=CORP456 \ -d "payment_details[lodging_data][0][total][discounts][coupon]"=WINTER10 \ -d "payment_details[lodging_data][0][accommodation][accommodation_type]"=suite \ -d "payment_details[lodging_data][0][accommodation][nights]"=3 \ -d "payment_details[lodging_data][0][accommodation][daily_rate_amount]"=15000 \ -d "payment_details[lodging_data][0][accommodation][rate_type]"=Standard \ -d "payment_details[lodging_data][0][accommodation][smoking_indicator]"=false \ -d "payment_details[lodging_data][0][accommodation][bed_type]"=King \ -d "payment_details[lodging_data][0][affiliate][name]"="Travel Network" \ -d "payment_details[lodging_data][0][affiliate][code]"=TN987

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.

Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc