Collecting taxes for payments

Learn how to configure your payment forms to collect taxes.

Introduction

WP Full Stripe provides tools for staying tax compliant.

In this article, we’ll guide you through setting up the plugin for collecting taxes on payment forms.

Which form types support tax collection?

You can configure tax collection on one-time payment and subscription forms, regardless of layout (inline or checkout).

Collecting taxes in 5 steps

We’d recommend going through the following steps to set up tax collection:

  1. Choose a tax collection strategy
  2. Create tax rates in Stripe
  3. Add tax rates to the payment form
  4. Fine-tune your tax configuration
  5. Test your tax configuration

1. Choose your tax collection strategy

Depending on your business case, you will have different tax compliance requirements.

WP Full Stripe supports the following tax collection strategies:

  1. No tax
    The plugin doesn’t collect tax, all prices are gross prices.

  2. Fixed rate
    The plugin collects tax, and the tax rates are fixed - they are not dependent on the location of the buyer.

  3. Dynamic rate
    The plugin collects tax, and the tax rates applied are determined based on the location of the buyer.

If your tax collection strategy is ‘No tax’ then you have nothing else to do. ‘No tax’ is the default strategy on forms.

If your tax collection strategy is either ‘Fixed’ or ‘Dynamic’, then please proceed to next steps. Strategy-specific configuration options are discussed in the Fine-tune your tax configuration section.

2. Create tax rates in Stripe

Tax rates can be created on the “Products / Tax rates” page of the Stripe dashboard, press the “New” button: Press the 'New' button on the 'Products / Tax rates' page of the Stripe dashboard to create a tax rate

In the “Add tax rate” dialog, enter the details of the tax rate (see below the image for more information): Specify the tax rate details in the 'Add tax rate' dialog

Important notes:

  • If you cannot find the tax type you’re looking for, then select the “Custom” type, and enter your own tax label.
  • In case of using fixed tax rates, there is no need to choose a region. In case of using dynamic tax rates, choosing a country is mandatory. In certain countries and regions (EU, US, Australia), counry and state/region must be selected as well.
  • The plugin supports only Exclusive tax rates in v6.0.x+ .

3. Add tax rates to the payment form

You can add tax rates from Stripe on the “Tax” tab of the form, press the “Add tax rates from Stripe” button:

Add tax rates on the 'Tax' tab of the form

You can quick-filter the tax rate list, and add many tax rates at once:

You can quick-filter in the 'Add tax rates from Stripe' dialog, and add many tax rates at once

Important notes:

  • Only Exclusive tax rates are listed in the dialog

4. Fine-tune your tax configuration

Now that tax rates have been added to the form, you can fine-tune the tax configuration. See the subsections below for the available options.

Collect the customer’s tax id

If you’re doing B2C sales only, then you can skip this section.

If you’re doing B2B sales (either exclusively, or in addition to B2C) then you can collect the customer’s tax and business name by turning on the “Collect the customer’s tax id” option on the “Tax” tab of the form:

For B2B sales, turn on the 'Collect the customers's tax id' option on the 'Tax' tab

Doing so will let you specify the seller’s seat country which is needed for tax calculation as well.

In case of the following countries, the form will collect also the state/region for B2B sales:

  • United States

Fixed rate rules

When using the ‘Fixed rate’ tax calculation strategy, the maximum number of tax rates added to the form is 3.

Dynamic rate rules

When using the ‘Dynamic rate’ tax calculation strategy, the plugin (on inline forms) or Stripe (on checkout forms) will pick all tax rates which most closely match the country (and optionally state/region) entered by the customer.

Tax rates for countries with states or regions (currently: US)
If you have local and federal tax rates as well, then you have to enter all of them for each state/region, otherwise Stripe and the plugin won’t select them as expected.

Implementing a tax rate filter for B2B sales

In some regions of the world (think EU), B2B sales are tax-exempt.

On inline payment and subscription forms, you can determine if a sale is a B2B one, and apply no tax rates by implementing a Wordpress filter.

Implementing a tax type filter for identifying tax ids

In some countries, tax ids have many formats.

By implementing a Wordpress filter, it’s possible to identify and set the tax id type of the Stripe customer.

Here you can find the tax id types supported by Stripe.

5. Test your tax configuration

We recommend testing your tax configuration before going live with your payment forms.

We recommend the following steps:

  1. Put the plugin in test API mode.
  2. Make test payments
  3. Observe the result on the Stripe dashboard.
Still not finding the solution?

Our support team is happy to help you.

Contact support

Feature requests are always welcome!
We consider each feature request carefully, and examine how it fits the roadmap for the plugin.