Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

5282 articles

Tax in-person sales at a specific location


Public preview

Tax in-person sales at a specific location Public preview

Specify where a sale or service takes place to calculate tax at that location.

Many jurisdictions require you to calculate tax for in-person sales of physical goods or services at the location of the sale instead of your business address or the customer’s billing address.

By default, each tax code’s default sourcing rule determines the location Stripe uses to calculate tax. You can provide an optional performance_location ID on individual line items so Stripe Tax assesses tax for that item at the location address instead of using the sourcing rule. You must still provide your business address and the customer’s address for reverse-charge determination.

You can provide a performance_location ID on line items through the Tax Calculations API, Checkout Sessions, Payment Intents, Payment Links, and invoices. You can also set a product’s performance location on the product page in the Dashboard.

Ticket sales

Sales for tickets or admission to events require the performance location. See Tax ticket sales based on event location for guidance and relevant product tax codes.

Eligible tax codes

You can apply a performance location to any line item whose tax code has a performance_location requirement of optional. Common examples include:

  • txcd _ 20030000 : General - Services
  • txcd _ 99999999 : General - Physical Goods
  • txcd _ 50021003 : Fee for Personal Training/Fitness Classes
  • txcd _ 20060044 : Training

Caution

Electronic services and digital goods (streaming, software downloads, SaaS) don’t support performance locations. Including performance_location on a tax code with requirement not_allowed returns an error.

See Product tax codes for the complete list with the performance_location requirement column.

Set up Stripe Tax

Set up Stripe Tax and add a registration for the location where you sell.

Add a registration 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 sale location. For example:
  • United States - California, Sales Tax
  • United States - California, San Francisco Gross Receipts 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.

Create a performance location

Create a tax location of type performance and specify the address where the sale takes place.

The address must be in a country supported by Stripe Tax where the sales type is All Sales. See Supported countries for address format requirements.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

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:

idnameaddressstripe_location_id
<your_internal_id>Main Street store1 Market St, San Francisco, CA 94105taxloc_yB7b4tVHRb

Table: your_business.locations

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 one location per site and reuse it across transactions.

Optional Create a product

Calculate tax

Call Create a tax calculation and pass the performance_location ID on each eligible line item. Stripe Tax assesses tax on that item at the specified address.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

The example overrides the rules for the txcd_20030005 (Pet Services — Obedience Training) tax code. Even though the customer is based in Ireland, Stripe Tax calculates the tax based on the address in the performance location, not the customer’s country.

Optional Mixed carts

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 with the following exceptions: Pass the connected account’s ID in the Stripe-Account header for all API requests. Create separate tax registrations for each connected account and your platform account. You can’t use registrations across accounts. Create separate locations for each connected account and your platform account. You can’t use performance location IDs across accounts. Create products for each connected account individually. Use performance location IDs for the corresponding connected account.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.

Test your integration

Testing Stripe Tax provides general guidance, but verify the following specific scenarios for performance locations:

  • US cross-state : Confirm that a sale for service in a different US state than your business address calculates tax at the location’s state rates.
  • EU reverse charge : Confirm that a reverse charge for an event in an EU member country to a customer in another EU country uses the customer’s address.
  • Mixed cart : Confirm that tax calculates line items in a single order with different performance _ location settings or no performance location use the correct location rates for each.

See also

Last verified 2026-09-24

Is this helpful?