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.1.0.tar.gz (6.4 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.1.0-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: eucompliance_tools-0.1.0.tar.gz
  • Upload date:
  • Size: 6.4 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.1.0.tar.gz
Algorithm Hash digest
SHA256 b1046cde11e3b5cfff15bf627d0203531ff0873a0d1c352932976b10a2b42f26
MD5 02b7d33960294fe9f550257a8c2167a7
BLAKE2b-256 0f69b890435fb9e36de57dc043ebed9b32b54ded7e471677a9da8ef23a6bbcb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eucompliance_tools-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 287ac0a67e22d92de1f35bb722310021e2a99e771c745cdc32ea53ff6ddb81ae
MD5 849b5574736a1e691983d19288f93ea2
BLAKE2b-256 0ae9a753c8f7679d5c605256df516c7cc1527114cf239f980d456084efe83bdf

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