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)
| File | Size | Uploaded | |
|---|---|---|---|
| eucompliance_tools-0.3.0.tar.gz | 7.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|