Skip to main content

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


Download files

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

Source Distribution

eucompliance_tools-0.2.0.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

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

eucompliance_tools-0.2.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file eucompliance_tools-0.2.0.tar.gz.

File metadata

  • Download URL: eucompliance_tools-0.2.0.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for eucompliance_tools-0.2.0.tar.gz
Algorithm Hash digest
SHA256 62ef74027ce46cc729782e2c001563adbf39308420bd229bb19106fd1f2a2bb5
MD5 46a47301d618f41e10c0ef3eb56e14be
BLAKE2b-256 ff4a0381b74618e2fc03f6e3e1ff78de83615169384ab44b30887a0e43aa2d61

See more details on using hashes here.

File details

Details for the file eucompliance_tools-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for eucompliance_tools-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 00d219cace7307bdbc41ccb9c593eb5c9ca390da95d103a021015f8dd4367ed3
MD5 03abb270c3c517e3ac8b5c42a8294cfc
BLAKE2b-256 5149bf4c20997b92df2a347228a91c74a662c8dc2d83b280133ffcb51493cc7b

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