The single most important question in EU VAT compliance is: is this a B2B or B2C transaction? The answer determines how much VAT you collect, whether you need to validate a VAT ID, and what you report in your OSS filing. Get it wrong, and you’re either overpaying or facing penalties.
The core distinction
For Stripe-based SaaS businesses, this distinction is huge. B2B transactions have zero VAT liability for you, while B2C transactions require you to apply the correct local rate for each of 27 different countries.
How classification is determined
The process follows a clear decision tree:
- Customer provides a VAT ID at checkout — this is the starting signal for a potential B2B classification.
- You validate that VAT ID against VIES — the EU’s official VAT Information Exchange System.
- If valid → B2B — reverse charge applies, zero VAT on the invoice.
- If no VAT ID or invalid → B2C — apply local VAT rate for the customer’s country.
What is VIES?
VIES is the official EU database of VAT-registered businesses. Here’s what you need to know:
VAT rates by country
For B2C transactions, you must apply the correct rate for the customer’s country. The range is wider than most founders expect:
Why manual classification breaks down
Stripe’s raw export doesn’t always have a clean VAT ID field. Customers often enter formatting that doesn’t match VIES expectations — spaces, dashes, missing country prefixes. Each one needs to be normalized before validation.
What this means for your OSS filing
Your quarterly OSS return requires, for every country with B2C sales: net revenue (excluding VAT), VAT rate applied, and total VAT amount collected.
Key takeaway
vidaReady classifies every transaction automatically with live VIES validation, then produces per-country summaries ready for your OSS return — no spreadsheets required.