If you accept Stripe payments from European customers, you have EU VAT obligations. This guide covers exactly what you need to do — from initial setup to quarterly OSS filing — without the legalese.
Step 1: Determine if you’re liable
You have EU VAT obligations if:
- You sell digital services (SaaS, e-books, courses, APIs, streaming) to EU-based consumers
- Your EU cross-border B2C sales exceed €10,000/year in total across all EU countries
This applies regardless of where your business is incorporated. A US-based SaaS with EU customers is liable for EU VAT.
Step 2: Register for OSS
- EU-based businesses: Register with your home country’s tax authority
- Non-EU businesses: Register for the “non-Union” OSS scheme through any EU member state — Ireland and the Netherlands are popular choices for English-language support
Registration is free and takes 1–4 weeks to process.
Step 3: Configure Stripe to capture VAT data
Stripe alone doesn’t handle EU VAT compliance automatically. Your options:
- Stripe Tax: Collects VAT IDs and applies correct rates automatically. Costs 0.5% per transaction.
- Custom checkout field: Add a VAT ID input, pass it to Stripe as customer metadata
- Manual tagging: Update Stripe customer records with VAT IDs for known B2B customers
Step 4: Classify every transaction
For each EU transaction, determine:
- Customer’s country — billing address takes precedence for digital services
- B2B or B2C — does the customer have a valid VIES-verified VAT ID?
- VAT rate — country-specific for B2C; 0% reverse charge for verified B2B
Step 5: Aggregate by country for your OSS return
For each EU country with B2C sales, you need to report:
- Total net revenue (excluding VAT)
- VAT rate applied
- Total VAT amount collected
Step 6: File and pay
File through your registration country’s portal by the quarterly deadline. Payment is made in a single transfer — the authority distributes it to each member state.
Step 7: Keep records for 10 years
EU law requires you to retain VAT records for 10 years, including:
- Transaction details (date, amount, customer country)
- VAT IDs and VIES validation results
- Copies of all OSS returns filed
- Exchange rates used for non-euro transactions
Common mistakes to avoid
- Using billing country as customer country: For digital services, what matters is where the service is consumed — not where the card is registered
- Skipping VIES validation: If the VAT number is invalid and you charged zero VAT, you owe the VAT yourself
- Misunderstanding the threshold: €10,000 is cumulative across all EU countries, not per country
- Non-euro currencies: OSS returns must be filed in euros — convert using the transaction date rate or ECB quarterly rate
The automation shortcut
Steps 4 and 5 are where automation pays for itself. vidaReady connects to Stripe with a read-only API key, classifies every EU transaction with live VIES validation, and generates an OSS-ready CSV by country — in minutes.