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
Billing
OverviewAbout the Billing APIs
Subscriptions
Invoicing
Usage-based billing
Advanced usage-based billing
Quotes
Customer management
Billing with other products
Revenue recovery
Automations
Scripts
Test your integration
Tax
Overview
Use Stripe Tax
Manage compliance
    Monitor your obligations
    Register
      Using the Registrations API
      Use Stripe to Register
      Use Taxually to Register
    File and Remit
    Import transactions
    Reporting
Reporting
Overview
Select a report
Configure reports
Reports for multiple accounts
Reports API
Revenue recognition
Data
Overview
Query business data
Sigma
Data Pipeline
Import external data
United States
English (United States)
HomeRevenueManage complianceRegister

Use the Registrations API to manage tax registrations

Learn how to add, schedule, and check active tax registrations.

Businesses are required to register to collect taxes in locations where they have tax obligations. The Tax Registration API lets you retrieve and configure tax registrations using an API instead of the Dashboard. Adding your registrations in Stripe turns on tax calculation and collection for your transactions made through Stripe.

Different rules determine when and how a business needs to register to collect tax depending on the location. You can also use Stripe to register on your behalf or do it yourself. Learn more about tax collection in different locations.

  • Connect platform: As a platform, you can use this API to manage the registrations of your connected accounts or to check an account’s active registrations.
  • Direct usage: You can use this API to manage and check your registrations.

Add a tax registration

After you register with local tax authorities, add the registration to Stripe Tax by calling create Registration:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/registrations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d country=IE \ -d "country_options[ie][type]"=oss_union \ -d active_from=now

In this case, Stripe creates a tax.registration object:

{ "object": "tax.registration", "active_from": 1669249440, "country": "IE", "country_options": { "ie": { "type": "oss_union" } }, "livemode": false, "status": "active", ... }

Head office address requirement

To add a tax registration, you must first set up a head office address. Without a defined head office address, an invalid_request_error gets triggered with a message about setting your head office address.

Use the tax settings API to add a head office address:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/settings \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "head_office[address][country]"=DE

Location-specific validation and errors might occur, details of which are found in our tax settings guide.

Update and expire a tax registration

You can’t delete a tax registration in Stripe Tax. If you deregister with local tax authorities and need to stop collecting tax in that location, expire the registration. To expire a tax registration, set its expires_at timestamp by calling update Registration:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/registrations/taxreg_NkyGPRPytKq66j \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d expires_at=now

In this case, the registration expires immediately. Tax calculations performed after the expires_at won’t use this registration:

{ "object": "tax.registration", "active_from": 1669248000, "created": 1669219200, "expires_at": 1669334400, "livemode": false, "status": "active", ... }

List all your tax registrations

You can display all your tax registrations performing a list registrations call. The status parameter allows you to filter for only active, expired, or scheduled tax registrations:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -G https://api.stripe.com/v1/tax/registrations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d status=active \ -d limit=3

OptionalAdd a tax registration for the retail delivery fee
Server-side

To calculate the retail delivery fee, you need to add a tax registration in Colorado, United States, or in Minnesota, United States, with the registration type state_retail_delivery_fee.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/tax/registrations \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d country=US \ -d "country_options[us][state]"=CO \ -d "country_options[us][type]"=state_retail_delivery_fee \ -d active_from=now

After adding the tax registration, the retail delivery fee applies to tax calculations if the item sold meets the requirements of the different states. The fee applies in Minnesota, for example, on orders above 100 USD.

Refer to the documentation to check if the retail delivery fee applies:

  • Retail Delivery Fee—Colorado
  • Retail Delivery Fee—Minnesota

See also

  • Use the Settings API to configure Stripe Tax
  • Use Stripe to register
Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc