# Specify tax codes and behavior on rate cards Add tax codes and tax behavior on rate cards to automatically calculate tax. > Rate cards are currently in [private preview](https://docs.stripe.com/release-phases.md) and could change in functionality and integration path before they’re generally available to all Stripe users. ## Tax codes Stripe Tax uses [product tax codes](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md) to associate rate card rates with their applicable tax rates, which might be lower or higher in different cities or countries. Assign each of your products a tax code to automatically apply the rate and other taxability rules. If a rate card rate doesn’t fit any of the specific codes, use one of the codes with “General” in its name to apply the standard rate of the jurisdiction. See our [list of available tax codes](https://docs.stripe.com/tax/tax-codes.md). ### Preset tax codes When you activate Stripe Tax you can set the preset tax code in the [Tax settings](https://dashboard.stripe.com/settings/tax) in the Dashboard. We use the preset if you don’t explicitly specify a `tax_code` on your rate card. As you process payments, we also use the preset tax code to display the tax thresholds you might be approaching or have exceeded, in the [Threshold monitoring](https://dashboard.stripe.com/settings/tax/thresholds) section in your tax settings. ![The tax settings showing the preset tax codes, and the default shipping tax code.](https://b.stripecdn.com/docs-statics-srv/assets/pp-settings-v3.4a3660016d805248b9fb49f1bffffd76.png) The tax settings showing the preset tax codes, and the default shipping tax code. ### Set a tax code on a rate card (recommended) #### Dashboard When you create rate cards in the Dashboard you can set your tax code in the dropdown by searching for any available tax code. If you don’t, Stripe Tax uses the preset tax code defined in your [Tax Settings](https://dashboard.stripe.com/settings/tax). If a product could fit multiple codes, for example, a SaaS product used for personal or business use depending on the type of customer, we recommend creating two separate products in Stripe and assigning the appropriate code to each. 1. Go to the [Rate cards](https://dashboard.stripe.com/rate-cards) page. Select your rate card. 1. Click **Edit rate card**. 1. Select the item you want to change the product tax code. 1. Expand **Advanced settings** for your item, and specify a **Product tax code**. - Click **Save**. ![Shows how to change PTC](https://b.stripecdn.com/docs-statics-srv/assets/change_ptc_on_rate_card.6932e3ac1d21379670354f26da806da5.png) #### API To create a rate card with tax code configured using the API: ```curl curl -X POST https://api.stripe.com/v2/billing/rate_cards \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-03-25.preview" \ --json '{ "display_name": "Hypernian", "service_interval": "month", "service_interval_count": 1, "currency": "usd", "tax_behavior": "exclusive" }' ``` ```curl curl -X POST https://api.stripe.com/v2/billing/billable_items/{{RATECARD_ID}} \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-03-25.preview" ``` ```curl curl -X POST https://api.stripe.com/v2/tax/automatic_rules \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-03-25.preview" \ --json '{ "billable_item": "{{BILLABLE_ITEM_ID}}", "tax_code": "txcd_10000000" }' ``` ## Tax behavior To determine how tax is presented to the buyer, you must specify either a `tax_behavior` on a rate card or a default tax behavior in your tax settings in the Dashboard. This allows you to localize your checkout depending on the market. When you set tax behavior to exclusive, it adds tax onto the subtotal amount you specify on your price. This is common in US markets and for B2B sales. When set tax behavior to inclusive, the amount your buyer pays never changes, even if the tax rate varies. This is common practice for B2C buyers in many markets outside the US. ### Set a default tax behavior (recommended) You can define a default tax behavior that applies to every rate card. Set up the default tax behavior in the [Stripe Tax settings](https://dashboard.stripe.com/settings/tax) under the **Include tax in prices** section. Rate cards that don’t otherwise have the `tax_behavior` defined use the default tax behavior. The options for the default tax behavior are: - **Automatic**: The tax behavior is based on the currency that’s chosen for a rate card. For the currencies `USD` and `CAD` the tax behavior is exclusive. For all other currencies the tax behavior is inclusive. This also works with *multi-currency Prices* (A single Price object can support multiple currencies. Each purchase uses one of the supported currencies for the Price, depending on how you use the Price in your integration). - **Inclusive**: *Inclusive tax* (Inclusive tax is tax that doesn't change the final purchase price—the price the buyer sees already includes it. Examples of inclusive tax include VAT and GST outside of the US) is already included in the price. For example, a product has the price defined as 5 USD. The final price the customer pays is 5 USD. - **Exclusive**: *Exclusive tax* (Exclusive tax is tax that changes the final purchase price—the listed price the buyer sees doesn't include it, and it's added to the total. An example of exclusive tax is US sales tax) is added on top of the price. For example, a product has the price defined as 5 USD. The tax charged on this product could be 10% and would result in a final price of 5.5 USD. (Tax rates might differ—this is only an explanatory example.) ### Override default tax behavior on a rate card To override this setting for an individual rate card: ```curl curl -X POST https://api.stripe.com/v2/billing/rate_cards \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-03-25.preview" \ --json '{ "display_name": "Hypernian", "service_interval": "month", "service_interval_count": 1, "currency": "usd", "tax_behavior": "exclusive" }' ```