Skip to main content

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.

Metadata

Release files for vat-doctor 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vat-doctor 0.1.0
File Size Uploaded
vat_doctor-0.1.0.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vat-doctor 0.1.0
File Interpreter ABI Platform
vat_doctor-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.1 kB

Release files / vat_doctor-0.1.0.tar.gz

Download URL vat_doctor-0.1.0.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
97366df257b8b83a89ecab069516da4e8b85731b25c072406581d8545d776cca
BLAKE2b-256 checksum
How to use checksums
14521904fff4db0046b8954ab4743f6c4aa0cfd265c34e7af9859a5073f86653
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / vat_doctor-0.1.0-py3-none-any.whl

Download URL vat_doctor-0.1.0-py3-none-any.whl
Size 10.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a831480ac417d2c59fc7a666b5e1732b2065e73d95d89d03004158ead63852d7
BLAKE2b-256 checksum
How to use checksums
9ffe6197491ff41c8cb02de278b1a5f71133b3469b9ea88e7cdd6c9cdcf683b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page