Setting Up Sales Tax and VAT
A step-by-step walkthrough for switching on tax collection when you take payments through Benecaster’s built-in membership system.
For the background — who is responsible for what, how filing works, and what changed when you left Patreon — see Tax and VAT on Podcast Subscriptions.
This is not tax advice. It describes how to operate the software. Whether you need to collect tax, and where, is a question for an accountant.
Before You Start
You need two things:
- Your own Stripe account, connected to Benecaster. Tax runs on your Stripe account, not Benecaster’s.
- At least one tax registration. Stripe only collects tax where you have told it you are registered. Without a registration, everything below will work perfectly and collect nothing.
Start with where your business is based. That is usually the first place you are obliged to register, and it is the simplest one to get right.
Step 1 — Turn on Stripe Tax
In your Stripe Dashboard, go to Settings → Tax and click Get started.
You will be asked to confirm three things:
Your head office address. Stripe pre-fills this from your business address. Check it — it determines your home jurisdiction.
A preset product category. Stripe asks for one, but Benecaster never relies on it: you set a category on each tier and buy-up in Step 3, and Benecaster adds no tax until every one has its own.
Whether prices include tax. Stripe shows this as Include tax in prices, and Benecaster needs it set before it can add tax. Three options:
| Option | What happens |
|---|---|
| Automatic | Tax added on top for USD and CAD, included in the price everywhere else |
| Exclusive | Tax always added on top of your listed price |
| Inclusive | Your listed price is the final price; tax comes out of it |
Stripe recommends Automatic, and it matches what buyers in each market already expect. If you choose Exclusive, remember that an EU subscriber will see a higher total on your signup page than the price on your tier card.
You can change this later in Stripe. It applies to everything you sell through that Stripe account.
Step 2 — Add Your Tax Registrations
Go to Tax → Locations in your Stripe Dashboard and add a registration for each place you are registered to collect.
This is the step that actually makes tax happen. Everything else is configuration; a registration is what tells Stripe to start charging.
You can also schedule a registration to begin on a future date, which is useful when you have applied to a state and know your start date.
If you have not registered anywhere yet
Registering is something you do with the tax authority, not inside Stripe — Stripe records the registration, it does not create it. Stripe can handle the registration process for you in the US, and through a partner elsewhere, if you would rather not deal with it directly.
Watching for when you need to register elsewhere
Once Stripe Tax is running, Stripe monitors your sales against each jurisdiction’s registration threshold and tells you when you are approaching or have passed one. This is the most useful thing it does, because crossing a threshold without noticing is the usual way small sellers end up owing back taxes.
Turn Stripe Tax on as soon as you are registered anywhere — even one place. The monitoring only runs while Stripe Tax is enabled, so leaving it off until you “need” it means you have no warning system during exactly the period you are most likely to drift over a line without realising. And it costs very little to leave on: the per-transaction fee applies only to transactions in places where you are registered, so with a single registration you are paying on that one jurisdiction’s sales and getting monitoring across all of them.
Monitoring only sees sales that go through this Stripe account. If you invoice anyone outside Stripe — consulting, sponsorships, live events, anything billed by hand — those sales can still count toward a threshold, and Stripe will not know about them. Stripe lets you import outside transactions by CSV so the monitoring reflects your whole business rather than part of it.
Before Stripe Tax is on, Benecaster gives you one nudge. Once a show’s membership sales pass US$1,000 in a calendar year (or about the same in another currency, after tax and refunds), Benecaster emails your site’s admin address, Your podcast subscriptions have passed US$1,000 in sales this year, and shows the same in a dismissible wp-admin notice, Your subscription sales have passed US$1,000 this year. It comes at most once a year per show, and never while Stripe Tax is active in that show’s Stripe account. It is a prompt to talk to your accountant, not advice: it names no place and says nothing about whether you need to register.
Step 3 — Set a Tax Category on Each Product
Once Stripe Tax is ready in your Stripe account, every active paid tier and buy-up needs a tax category. A Tax category box appears when you create or edit one, and it cannot be saved without a choice: saving refuses with Choose a tax category for this tier before saving. or Choose a tax category for this buy-up before saving.
Until every one has a category, Benecaster shows a notice, Choose a tax category for your tiers and buy-ups, naming each one still missing a category as the tier “…” or the buy-up “…”, and adds no tax to that show at all. That is deliberate: a single signup can include a tier and a buy-up together, and an item with no category would be taxed under Stripe’s preset, a decision nobody made.
Moving subscribers across with the Migration Wizard? Set every category before you import. The people you bring across can sign up from their first email, and anyone who signs up while tax is held pays no tax until you apply it to them under Existing Subscribers. The wizard’s tier step names any tier or buy-up still missing a category, as a warning, and doesn’t stop you importing.
The box asks two questions. The first is What kind of content is it?:
| What you’re selling | Choose |
|---|---|
| Your podcast, a bonus feed | Audio |
| A video podcast, bonus video | Video |
| Transcripts, show notes, a newsletter | Written |
| Structured lessons | A course |
| Anything else | Something else: general digital services |
The second is How do subscribers get it? — for audio and video, whether subscribers can download and keep the files or only stream them; for written content, whether they can download it or only view it online; for a course, whether the lessons are streamed, streamed and downloadable, or written.
Every category is a subscription category, because everything you sell through built-in membership is a subscription. If nothing in the list fits, choose Enter a Stripe tax code and type any code from Stripe’s list — pick a subscription code.
Benecaster does not pick for you, because the category changes what your subscribers are charged and the responsibility for getting it right is yours.
One thing we can settle: subscribers keep the files. A private podcast feed downloads into their podcast app and the episodes stay there after a subscription ends. So for a podcast feed, the answer to the second question is usually that subscribers can download and keep them.
Step 4 — Switch It On in Benecaster
Go to Benecaster → Settings → Payments and turn on Calculate tax automatically.
Tax is added to a show’s new signups only when all three of these hold:
- Calculate tax automatically is ticked here, and saved
- Stripe Tax is active in that show’s Stripe account, with a default set for Include tax in prices (Step 1)
- Every active paid tier and buy-up on the show has a tax category (Step 3)
The Sales tax section on this screen lists each Stripe account and what Stripe reports for it. If Stripe Tax is on in Stripe but the box here is not ticked, the section says so in an amber line. If the box is ticked but Stripe Tax is not set up, or Include tax in prices has no default, a Stripe Tax is not ready notice names the show. After changing something in Stripe, click Check Stripe Tax again.
Once tax applies, subscribers see a Stripe address form on your show’s own signup page. They enter their billing address and see the subtotal, tax and total before they pay. There is nothing for you to configure on the form.
Step 5 — Check It Works
Take a test subscription through your own signup page, using a billing address in a place you are registered.
Confirm three things:
- The signup page shows the tax before you pay, as its own line or folded into the total depending on your setting from Step 1
- The Stripe invoice shows the tax and the address
- The amount charged is what you expected
If tax is zero when you expected some, the usual cause is a missing registration for that address. Stripe does not treat this as an error — no registration simply means no tax.
Existing Subscribers
Turning tax on applies it to new signups only. Anyone who subscribed before keeps renewing at their original amount, untaxed, until you apply it to them.
To do that, go to Benecaster → Settings → Payments, and under Sales tax → Existing subscribers find the row for the show. It shows how many renewing subscribers the show has. Click Apply tax to existing subscribers, then Yes, apply tax to confirm. The button appears only once tax applies to that show (all three conditions in Step 4).
Tax starts from each subscriber’s next renewal. Nothing is charged now and nothing is prorated. The work runs in the background with a progress line, and finishes with a summary: how many had tax added, how many were already taxed, and how many were skipped. Each skipped subscriber is named with the reason:
- Their plan or a buy-up has no tax category — including a tier you have since made inactive. Set the category and run it again.
- Stripe cannot work out where they are. They can add a billing address on their account page.
A subscriber whose data is erased, or whose WordPress account is deleted, drops off the skipped list and out of the skipped count.
Running it again is safe: subscribers already taxed are left as they are. Use this rather than Stripe’s own Dashboard tool for migrating subscriptions, which does not pick up Benecaster’s subscriptions.
Decide deliberately before you run it. Applying tax to existing subscribers changes what they pay, and depending on your setting from Step 1 it either increases their bill or reduces what you receive. Either way it is worth telling them before it happens rather than after.
When Stripe Cannot Place a Subscriber
Stripe works out tax from the subscriber’s billing address. If an address stops resolving — Stripe can no longer tell where they are — Stripe still charges the renewal, but without tax, and stops adding tax to that subscription.
When that happens:
- The subscriber is emailed once, asking them to check their billing address. Their access does not change.
- You see a notice, Some subscribers’ payments are not being taxed, naming each one. A subscriber whose data is erased, or whose WordPress account is deleted, is removed from it.
- The subscriber fixes it themselves under Billing address in the Billing section of their account page. Tax resumes from their next renewal as soon as Stripe can place them, and the notice clears.
Filing Is Still Yours
Stripe calculates and collects. You are still responsible for registering, filing returns, and remitting the money — the tax you collect is held on behalf of a tax authority, not earned.
Stripe can file for you in over 90 countries and every US state as a paid service, but even then the legal responsibility remains yours; Stripe is doing the paperwork, not taking on the obligation.
When it is time to file, your numbers are in Tax → Locations in the Stripe Dashboard — itemised and summarised exports, and location reports already formatted to each jurisdiction’s filing periods. You can invite your accountant to your Stripe account as a view-only team member rather than emailing spreadsheets around.
See Tax and VAT on Podcast Subscriptions for more on what Stripe does and does not take off your hands.
See Also
Need this built rather than just documented? See our services →