Skip to content

Stripe: Tax rates schemas

2 Stripe schemas with complete fields and constraints.

← Tax rates operations · All schemas

Create a tax rate — response body

FieldTypePresenceDescription and constraints
$objectRootTax rates can be applied to [invoices](/invoicing/taxes/tax-rates), [subscriptions](/billing/taxes/tax-rates) and [Checkout Sessions](/payments/checkout/use-manual-tax-rates) to collect tax.

Related guide: [Tax rates](/billing/taxes/tax-rates)
activebooleanRequired within parentDefaults to `true`. When set to `false`, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.
countryJSONOptional
country (anyOf 1)stringAlternativeTwo-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
Maximum length: 5000
country (anyOf 2)nullAlternative
createdJSONRequired within parent
created (anyOf 1)integerAlternativeTime at which the object was created. Measured in seconds since the Unix epoch.
Format: unix-time
created (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
descriptionJSONOptional
description (anyOf 1)stringAlternativeAn arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.
Maximum length: 5000
description (anyOf 2)nullAlternative
display_namestringRequired within parentThe display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.
Maximum length: 5000
effective_percentageJSONOptional
effective_percentage (anyOf 1)JSONAlternative
effective_percentage (anyOf 1) (anyOf 1)numberAlternativeActual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true,
this percentage reflects the rate actually used to calculate tax based on the product's taxability
and whether the user is registered to collect taxes in the corresponding jurisdiction.
effective_percentage (anyOf 1) (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
effective_percentage (anyOf 2)nullAlternative
flat_amountJSONOptional
flat_amount (anyOf 1)JSONAlternativeThe amount of the tax rate when the `rate_type` is `flat_amount`. Tax rates with `rate_type` `percentage` can vary based on the transaction, resulting in this field being `null`. This field exposes the amount and currency of the flat tax rate.
flat_amount (anyOf 1) (anyOf 1)ModelAlternativeExpand Create a tax rate — response body — flat amount value amount, currency
flat_amount (anyOf 2)nullAlternative
idstringRequired within parentUnique identifier for the object.
Maximum length: 5000
inclusivebooleanRequired within parentThis specifies if the tax rate is inclusive or exclusive.
jurisdictionJSONOptional
jurisdiction (anyOf 1)stringAlternativeThe jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.
Maximum length: 5000
jurisdiction (anyOf 2)nullAlternative
jurisdiction_levelJSONOptional
jurisdiction_level (anyOf 1)stringAlternativeThe level of the jurisdiction that imposes this tax rate. Will be `null` for manually defined tax rates.
Known values: city, country, county, district, multiple, state
jurisdiction_level (anyOf 2)nullAlternative
livemodebooleanRequired within parentIf the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
metadataJSONOptional
metadata (anyOf 1)objectAlternativeSet of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
Additional keys: see wildcard field
metadata (anyOf 1).*stringAdditional keysMaximum length: 500
metadata (anyOf 2)nullAlternative
objectstringRequired within parentString representing the object's type. Objects of the same type share the same value.
Known values: tax_rate
percentageJSONRequired within parent
percentage (anyOf 1)numberAlternativeTax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions.
percentage (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
rate_typeJSONOptional
rate_type (anyOf 1)stringAlternativeIndicates the type of tax rate applied to the taxable amount. This value can be `null` when no tax applies to the location. This field is only present for TaxRates created by Stripe Tax.
Known values: flat_amount, percentage
rate_type (anyOf 2)nullAlternative
stateJSONOptional
state (anyOf 1)stringAlternative[ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2), without country prefix. For example, "NY" for New York, United States.
Maximum length: 5000
state (anyOf 2)nullAlternative
tax_typeJSONOptional
tax_type (anyOf 1)stringAlternativeThe high-level tax type, such as `vat` or `sales_tax`.
Known values: amusement_tax, communications_tax, digital_excise_tax, gst, hst, igst, jct, lease_tax, mass_transit_parking_tax, parking_tax, pst, qst, retail_delivery_fee, rst, sales_tax, service_tax, utility_users_tax, vat
tax_type (anyOf 2)nullAlternative

Referenced models: Create a tax rate — response body — flat amount value amount, currency

Create a tax rate — response body — flat amount value amount, currency

FieldTypePresenceDescription and constraints
$objectRootThe amount of the tax rate when the `rate_type`` is `flat_amount`. Tax rates with `rate_type` `percentage` can vary based on the transaction, resulting in this field being `null`. This field exposes the amount and currency of the flat tax rate.
amountJSONRequired within parent
amount (anyOf 1)integerAlternativeAmount of the tax when the `rate_type` is `flat_amount`. This positive integer represents how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
amount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
currencystringRequired within parentThree-letter ISO currency code, in lowercase.
Maximum length: 5000

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.