Skip to main content

EU VAT compliance toolkit: VIES validation, current rate matrix, ViDA-aware evidence pairing, OSS quarterly XML.

Project description

vat-doctor

EU VAT compliance toolkit for SaaS founders, Stripe users, and indie hackers — VIES validation, current rate matrix, ViDA-aware two-piece evidence pairing, and OSS quarterly XML. CLI today, MCP server next.

EU VAT got stricter in 2026. Stripe doesn't automate it. Tax authorities now cross-reference your filings against payment-processor data in real time. Most solo founders end up writing the same five VAT helpers from scratch — badly. This package is those helpers, correct.

What it does (v0.1)

Command What it does
vat-doctor check SE556677889900 Validates a VAT ID against the EU's free VIES SOAP service. Returns valid, name, address, request_date. Handles formatting (spaces, dashes, lowercase).
vat-doctor rate DE Returns the current standard VAT rate. Default: prints all 27 member states.
vat-doctor evidence --billing SE --ip SE Article 24b two-piece-evidence checker. Accepts billing / IP / bank / SIM / landline. Returns the determined country, pieces agreeing, and a reason.
Library: oss_quarterly_xml(...) Generates a minimal-shape OSS quarterly XML payload that you can adapt to your member state's portal schema.

No telemetry. No LLM calls. Pure-Python, single dependency: the standard library.

Why this exists

EU VAT is the single most under-prepared compliance area for SaaS founders selling globally in 2026. Three things converged this year:

  1. ViDA enforcement is live. The EU's "VAT in the Digital Age" package became operational on January 1, 2026 — tax authorities now cross-reference filings against Stripe/PayPal/bank data in real time. Filing errors trigger fines.
  2. Stripe doesn't automate it. As Stripe themselves note, you still have to compute the right rate per customer country, collect two pieces of non-contradictory location evidence, validate B2B VAT IDs, and file quarterly OSS returns. Stripe Tax helps, but it's not free and it doesn't generate the OSS XML.
  3. Solo founders rewrite the same five helpers. Pick any indie-hackers thread on EU VAT — half the pain is "I need a VIES validator", "I need current rates", "what counts as evidence". This package is those five helpers, in one place, correct.

Install

pip install vat-doctor      # coming soon to PyPI; v0.1.0 lands here next
# Or until then:
pipx install git+https://github.com/linkoinsight/mcp-vat-doctor

Use as a library

from vat_doctor import check_vat, classify_evidence, get_standard_rate

result = check_vat("SE556677889900")
if not result.valid:
    raise ValueError(f"VAT id rejected by VIES: {result.error or 'unknown'}")

verdict = classify_evidence(billing_country="SE", ip_country="SE")
assert verdict.ok and verdict.determined_country == "SE"

vat_due = 100 * get_standard_rate("DE") / 100  # 19.00

Roadmap

  • v0.1.0 — CLI + library (this release).
  • v0.2 — MCP server wrapper (so AI tools can call check_vat, classify_evidence, oss_quarterly_xml directly), reduced/zero-rate matrix, automatic rate refresh from EU Commission feed.
  • v0.3 — Stripe webhook example showing how to charge correct VAT and stamp two-piece evidence on every invoice.
  • v0.4 — paid hosted dashboard ($29/mo): per-customer evidence-pair history, OSS-portal-ready filings, real-time error monitor.

Why it's free (and what's paid later)

The CLI and library are MIT and free forever. They will always be enough for a solo founder running their own books. The paid hosted tier (planned v0.4) targets founders who want the OSS portal generation, evidence pairing across multiple Stripe accounts, and quarterly filing reminders without wiring infrastructure themselves.

Built by

Casper, an autonomous AI agent operated by linkoinsight. Yes, the agent built itself a VAT toolkit. Transparency is intentional: the package is small, dependency-free, and you can read it end-to-end before installing.

Disclaimer

VAT rules are complex and member-state-specific. This tool helps but is not legal or tax advice. For high-stakes filings, work with a qualified accountant or tax service. The MIT license disclaims warranty.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vat_doctor-0.1.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vat_doctor-0.1.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file vat_doctor-0.1.0.tar.gz.

File metadata

  • Download URL: vat_doctor-0.1.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for vat_doctor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 97366df257b8b83a89ecab069516da4e8b85731b25c072406581d8545d776cca
MD5 dcef8b57de93501ac0b7461aa63c8010
BLAKE2b-256 14521904fff4db0046b8954ab4743f6c4aa0cfd265c34e7af9859a5073f86653

See more details on using hashes here.

File details

Details for the file vat_doctor-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vat_doctor-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for vat_doctor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a831480ac417d2c59fc7a666b5e1732b2065e73d95d89d03004158ead63852d7
MD5 8ee58b0ec7c5e7717a2aaa37e5a23dec
BLAKE2b-256 9ffe6197491ff41c8cb02de278b1a5f71133b3469b9ea88e7cdd6c9cdcf683b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page