Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

5282 articles

Tax ticket sales based on event location


Public preview

Tax ticket sales based on event location Public preview

Integrate Stripe Tax to calculate taxes on admission fees and tickets.

When you sell admission to an event (such as a concert, conference, museum visit, or sporting event) VAT and sales tax are based on where the event takes place, not where the customer lives. In the United States, specific local taxes (such as entertainment or amusement taxes) might also apply, in addition to state and local sales tax.

Use this guide to automatically calculate taxes on admission fees and tickets.

Choose your integration

Select an integration path that best matches how you want to accept payments with Stripe. If you’re a platform or marketplace using Connect, see the platforms and marketplaces section to set up tax for tickets.

Payment Intent integrationCheckout Session integrationCustom Tax Calculation API integration
Best forFull control over payment flow with Stripe-managed tax transactionsLow-code, Stripe-hosted checkout with minimal setupThird-party payment processors or fully custom checkout flows
AdvantagesFewer API calls Automated handling of refunds Dashboard support, specifically useful for testing Built-in receipts supportFewer API calls Low-code payment integration, Stripe hosted Supports subscriptions Dashboard support, specifically useful for testingFully control the checkout flow Supports other payment providers, such as PayPal
DisadvantagesPreview feature might require SDK update Limited support for other payment providers, such as PayPalPreview feature might require SDK update Less control over UI and UX More rigid, might not fit your specific use caseRefunds require custom implementation Limited Dashboard support Testing requires API No automatic receipt generation

Checkout Sessions

Payment Intents and Custom Calculation

Update the Stripe SDK

Tax calculation for events is in public preview and requires a public preview API version ( 2026-03-25.preview or later). Check the SDK release notes to confirm which versions support Tax for events.

Configure Stripe Tax

When you set up Stripe Tax for tickets, set the default product tax code to txcd_20030000, General - Services. You can’t set any of the event tax codes as the default product tax code.

Add a registration for testing using the Dashboard or the Tax Registrations API.

  1. From the tax locations page in the Dashboard, click Add registration .
  2. Add the registrations applicable for the event location. For example:
  • United States - Colorado, Sales Tax
  • United States - Colorado, Boulder Admissions Tax

Stripe Tax calculations don’t incur fees in a sandbox environment. After you add a tax registration, calculating tax in live mode incurs a fee.

Tax calculations for ticket sales differ from typical tax calculations because they’re based on the performance location instead of the customer’s billing or shipping address.

Create a performance location

Create a tax location of type performance and specify the address of the event venue.

You can use any address that’s eligible as a business location for a TaxCalculation in a supported country.

Each country requires different address formats for the location.

Command Line

Select a language

cURL

Stripe CLI

No results

The response returns the id as a unique identifier for the performance location. Store this value for use in transactions where you calculate tax for sales in this location.

{
 "id": "taxloc_yB7b4tVHRb",
 // ... other fields omitted
}

A database entry for this example might be:

idvenue_namecapacityseatplanstripe_location_id
<your_internal_id>Greenleaf Park500https://example.com/seating-plan.pngtaxloc_yB7b4tVHRb

Table: your_business.venues

Location address validation errors

If you have a problem with the address of the tax location, the Tax Location API returns an error.

  • The param property identifies the most specific address attribute possible.
  • The message property specifies one of the following specific reasons for the error.

Invalid address

The address is not supported by Stripe Tax for a tax location. Please use a valid address.

The address validation failed, see supported address formats for address requirements.

Unsupported country or excluded territory

The address is not supported by Stripe Tax for a tax location. Please use a location that is supported by Stripe Tax.

The country isn’t supported or the address is in an excluded territory.

Create a product

Create a product with an event tax code and a performance location to use in your Checkout Session.

You can create a product with an events tax code and a performance location in the Product catalogue.

Create a checkout session

When creating a checkout session, use the product you created with an event tax code and a performance location.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Optional Sell merchandise alongside event tickets

Platforms and marketplaces

If you use Stripe Connect to process payments on behalf of connected accounts, determine which entity is liable for collecting and reporting taxes. Depending on your business model, it’s either your platform or your connected accounts.

Software platformsMarketplaces
Who is liable for taxYour connected accountsYour marketplace
How to integrateFollow this guide, but pass the connected account’s ID in the Stripe-Account header on all API calls.Follow this guide using your marketplace’s account. Withhold the collected tax amount from payouts to connected accounts.
Tax settings and registrationsEach connected account configures its own tax settings and registrations.Your marketplace configures tax settings and registrations. Connected accounts don’t need their own.
Performance locations and productsCreate separate performance locations and products for each connected account. Use the Stripe-Account header.Create performance locations and products on your marketplace account.

Software platforms integration

When your connected accounts are liable for tax, follow the standard integration steps with these differences:

  • All API calls : Pass the connected account’s ID in the Stripe-Account header when you create tax registrations, performance locations, products, tax calculations, and checkout sessions or payment intents.
  • Tax registrations : Each connected account requires its own tax registrations. Create separate registrations for each connected account and the platform account.
  • Performance locations : Each connected account requires its own performance locations. Create separate locations for each connected account and the platform account.
  • Products : Create products for each connected account individually. Use performance location IDs that belong to the connected account, not the platform.

For example, to create a tax calculation for a connected account, pass the Stripe-Account header:

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Last verified 2026-09-25

Is this helpful?