I’m a solo founder running a service business through an Estonian e-Residency company (OÜ). Every time I invoiced a client in another EU country, I had to manually check if reverse charge applies, validate their VAT number on VIES, and figure out the correct tax treatment. I got tired of Googling the same rules over and over, so I built the tool I wanted.
Invoxo automatically determines the correct VAT treatment for each invoice based on seller/buyer countries, VAT registration status, and buyer type. It covers:
– VIES VAT number validation (real-time, with proof retention)
– Reverse charge auto-detection for EU B2B
– OSS handling for B2C digital services
– Immutable tax records locked at issuance
The tax engine routes every invoice through a regime-specific decision system — no hardcoded rules in the UI layer. Tax payloads are versioned and hashed for audit.
It’s built for service businesses only — no goods, no customs, no margin schemes. That constraint keeps the tax logic correct rather than approximately correct.
Stack: Laravel, TaxRegimeRouter that isolates each regime’s decision logic, treatments, and payload schemas.
14-day free trial, plans from €19/month.
Happy to answer questions about EU VAT edge cases or the architecture.