Stripe Tax and VAT
Optional Stripe Tax on Academy checkout: how tax is calculated, product tax codes, VAT numbers, reverse charge, and Stripe’s Tax fees.
What This Is For
When you sell with Stripe integration, Academy can use Stripe Tax on your connected Stripe account to calculate tax on paid checkout. This page walks through that flow: how tax type and rate are determined, where you configure product tax codes in Stripe, how Skillhabit’s VAT percentage fits catalog pricing, and how buyer VAT identification numbers are handled.
Stripe Tax is optional. Connecting Stripe for card payments does not require turning on Stripe Tax. If you enable Stripe Tax, Stripe charges an additional fee on top of normal payment processing—see Stripe Tax pricing for current rates on your account.
Who This Is For
Workspace administrators and whoever owns your connected Stripe account (finance / tax setup). Learners only fill checkout fields; they do not configure tax.
Before You Start
- Commerce is active and Stripe integration is connected under Academy → Manage Academy → Payment—see Supported Payment Options.
- If you want automatic tax calculation as described below, enable Stripe Tax on the Stripe account connected to this Academy and accept that Stripe bills Tax fees separately from payment processing.
How Tax Works at Checkout
The steps below apply when Stripe Tax is enabled on your connected Stripe account. Without Stripe Tax, you still take Stripe payments, but automatic location-based tax calculation and reverse charge through Stripe Tax are not available.
With Stripe Tax enabled:
- The buyer opens Academy checkout and enters Billing information (address, and optionally Purchase as a business with company details and a VAT identification number).
- Skillhabit sends the cart and those buyer details to Stripe Tax on your connected Stripe account.
- Stripe Tax returns the tax for that sale. Checkout shows subtotal, tax, and total. When reverse charge applies, the buyer also sees: Reverse charge — VAT must be accounted for by the recipient.
- After payment succeeds, the order and tax details appear in Order History. When reverse charge applied, that same notice also appears on the purchase receipt email, on the learner’s order details, and in the admin Order History order dialog (next to company / VAT identification number details and under the order totals).
Skillhabit does not assign a tax type or product tax code on each order as it is created. Stripe Tax uses your Stripe Tax setup (including the account’s default product tax code) plus the buyer’s location and any business tax ID they entered.
Tax Type and Tax Rate
Stripe Tax uses two related ideas:
Tax type is the category of tax that applies to the sale—for example VAT in Europe or sales tax in the United States. It follows the tax system for the buyer’s place and your Stripe Tax registration, not the course or product group in Skillhabit.
Tax rate is the percentage charged for that sale (for example 12%, 25%, or 0%). Stripe Tax chooses the rate from:
- The product tax code for what you sell (standard services, books, and similar categories in Stripe)
- The buyer’s billing location
- Whether the buyer is purchasing as a business with a valid tax ID (which can trigger reverse charge and 0% VAT on qualifying EU B2B sales)
So tax type answers “which tax system?”, and the rate answers “how much for this cart?”.
Set the Default Product Tax Code in Stripe
Product tax codes tell Stripe which tax rules apply to what you sell. Skillhabit does not send a per-product tax code on each Academy line item; Stripe uses your account default unless you configure product-level codes in Stripe.
- Open the Stripe Dashboard for the account connected to your Academy.
- Go to Settings → Tax → Product tax code.
- Choose the default that matches what you sell (for example standard digitally delivered services).
After that, Stripe Tax applies the matching rate for each checkout based on location and buyer type. For product-specific codes beyond the account default, use Stripe’s tax documentation for that account.
Catalog Prices and VAT Percentage in Skillhabit
Under Academy → Manage Academy → Payment you can set:
- VAT percentage — workspace rate used when Skillhabit builds product pricing in the Academy catalog (decimals supported, for example 25.5 for Finland)
- Show prices including VAT — whether catalog prices are shown including that VAT
Use VAT percentage so list prices in Academy look right for your market. On a Stripe paid checkout, the tax line the buyer pays still comes from Stripe Tax (product tax code + location + business tax ID), not from re-applying that workspace percentage as a fixed order override.
Manual flow does not run Stripe Tax the same way. Tax on those orders follows your Skillhabit payment and pricing setup until an administrator completes the order.
Business Purchases and Reverse Charge
On the checkout Billing information step, when the Academy allows business purchases, the buyer can select Purchase as a business and enter:
- Company name
- Company Email
- VAT identification number
Admins choose accepted buyer types under Manage Academy → Payment (private only, business only, or both). Private-only stores hide the business path; business-only stores require company details.
Skillhabit passes the VAT identification number into Stripe Tax. For qualifying EU B2B sales, Stripe Tax can apply reverse charge (0% VAT on the invoice, with the recipient accounting for VAT). The buyer then sees: Reverse charge — VAT must be accounted for by the recipient on checkout, on the purchase receipt email, and again when they open the order. Administrators see the same notice in Order History for that order. Orders that are not reverse charge do not show the notice.
Seller contact details—including your own VAT Identification Number—live under Manage Academy → Contact.
How VAT Identification Numbers Are Validated
When the buyer enters a VAT identification number and the billing country maps to a Stripe tax ID type, Skillhabit checks the number with Stripe before the order is accepted—only on Stripe integration checkout (your connected Stripe account). Manual flow does not run this Stripe Tax ID check.
| Outcome | What happens |
|---|---|
| Invalid format | Checkout is blocked. The VAT identification number field shows that the number is invalid so the buyer can correct it. |
| Unverified | Checkout is blocked the same way when Stripe reports the number as unverified against a government database (where Stripe supports that check). |
| Pending or unavailable | Checkout may continue. Stripe often finishes deeper checks (for example EU VIES) after the format check; Skillhabit records the status and does not block solely because verification is still pending or the database is unavailable. |
| No tax type for the country | No Tax IDs check runs; behavior matches countries that were never mapped for Stripe Tax IDs. |
| Empty number | Still allowed when the field is optional—Skillhabit does not require a VAT number for every purchase. |
| Region | Validation |
|---|---|
| EU | Format check at purchase time; verification against the EU VIES database may still complete afterward. VIES is the main check behind reverse charge for qualifying B2B sales within the EU. |
| Outside the EU | Where Stripe supports government-database checks (for example GB VAT or AU ABN), unverified results block checkout. Otherwise validation is typically format-only, with pending or unavailable treated as allow. |
Stripe Account Settings
Stripe Tax registrations, product tax codes, and related account options are configured in the Stripe Dashboard. Stripe’s help center and documentation cover account-specific tax setup, including Tax fees (Stripe Tax pricing). Skillhabit does not provide a dedicated Stripe account consultant.
For Academy-side questions—Payment settings, checkout fields, reverse-charge messaging, and Order History—contact Skillhabit support.