Skip to main content

eucompliance-tools

EU compliance checks without an account. VAT IDs against the live VIES register, IBANs, sanctions lists, company registers, AI Act Article 50 — and every answer carries a signed receipt.

pip install eucompliance-tools
from eucompliance_tools import vat, iban, sanctions

vat("ATU16170006")                    # format, checksum, and the official VIES register
iban("AT611904300234573201")          # checksum, country structure, bank
sanctions("Muster Person")            # EU, UN and UK consolidated lists

No signup, no key, no card. 100 free calls a day.

Why the receipt matters

Every answer carries a signed record over its own content. Anyone can check it later — free, no account:

from eucompliance_tools import vat, verify

answer = vat("ATU16170006")
verify(answer)
# {'valid': True, 'content_unchanged': True, 'signature_valid': True, ...}

If a single field was altered after the check ran, valid is False and the verdict carries receipt_tampered. That turns a compliance result into a document you can put in a file, instead of a claim someone has to trust.

The failure codes follow the taxonomy adopted by CAAP-1, so a bookkeeping consumer can route on them directly.

What is covered

Function What it does
vat(id) EU VAT ID: format, checksum, live VIES lookup with registered name and address
iban(nr) IBAN checksum, country structure, bank identification
sanctions(name) EU Commission consolidated list, UN, UK — in one call
company(country, name=…) Official national business registers
ai_disclosure(...) AI Act Article 50 disclosure and provenance record
verify(answer) Check any receipt — always free
catalog() The full machine-readable catalogue with prices

Beyond the free tier

The free tier is 100 calls a day and needs nothing. Past that there are two ways, and neither needs an account.

Pay per call in USDC (x402 on Base — the payer needs no ETH, gas is sponsored):

pip install eucompliance-tools[x402]
from eth_account import Account
from eucompliance_tools import paid

account = Account.from_key("0x…")
paid("preflight", params={"chain": "base", "to": "0x…"}, account=account)

Or a key with 100 calls included, from https://eucompliance.tools/kaufen — email in, key out, no card:

import os
os.environ["EUCOMPLIANCE_API_KEY"] = "…"

For AI Act Article 50, use the dedicated package

ai_disclosure() here is the direct call. For production use eucompliance-ai-act instead — it hooks into your existing LLM client in one line, hashes the output locally so your content never leaves your system, and attaches the disclosure to every generation:

from eucompliance_ai_act import wrap
client = wrap(OpenAI(), deployer="Muster GmbH")

Honest limits

These checks read official sources and report what those sources say at the moment you ask. VIES goes down; a register can be stale; a sanctions hit on a common name needs a human to look at it. The receipt proves what we returned and when — it does not turn a screening hit into a legal judgement.

Technical service, not legal advice.

MIT licensed. Operated by Patrick Kaufmann, sole proprietor in Vienna, Austria.

Metadata

Release files for eucompliance-tools 0.3.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 eucompliance-tools 0.3.0
File Size Uploaded
eucompliance_tools-0.3.0.tar.gz 7.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eucompliance-tools 0.3.0
File Interpreter ABI Platform
eucompliance_tools-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.1 kB

Release files / eucompliance_tools-0.3.0.tar.gz

Download URL eucompliance_tools-0.3.0.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d4b89e8e074998a8fe4699599449199a5553445dcaff899de81421f715e56cf1
BLAKE2b-256 checksum
How to use checksums
aa8503a37d39fe004a5ba2675031f4f8d5a5a4a4f869c19464bc8c2a48770bcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / eucompliance_tools-0.3.0-py3-none-any.whl

Download URL eucompliance_tools-0.3.0-py3-none-any.whl
Size 7.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
33e2c7ee841141a760c080947faa980969b4c04891e1044f861bcbd7934b5322
BLAKE2b-256 checksum
How to use checksums
9a6132a0505b79a310e1e1c905aa35cb5d6e723b3caac94d4c160a708cf9930a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

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