EU compliance checks without an account: VAT ID via VIES, IBAN, sanctions lists, company registers, AI Act Article 50 - with a signed receipt on every answer
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eucompliance_tools-0.3.0.tar.gz.
File metadata
- Download URL: eucompliance_tools-0.3.0.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4b89e8e074998a8fe4699599449199a5553445dcaff899de81421f715e56cf1
|
|
| MD5 |
fa7bd0bdb49dcd93f35756e4ac517914
|
|
| BLAKE2b-256 |
aa8503a37d39fe004a5ba2675031f4f8d5a5a4a4f869c19464bc8c2a48770bcf
|
File details
Details for the file eucompliance_tools-0.3.0-py3-none-any.whl.
File metadata
- Download URL: eucompliance_tools-0.3.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33e2c7ee841141a760c080947faa980969b4c04891e1044f861bcbd7934b5322
|
|
| MD5 |
d343dee98572aa1b92b14f63fe2b4a6d
|
|
| BLAKE2b-256 |
9a6132a0505b79a310e1e1c905aa35cb5d6e723b3caac94d4c160a708cf9930a
|