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.3.0.tar.gz (7.7 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.3.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

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

Hashes for eucompliance_tools-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d4b89e8e074998a8fe4699599449199a5553445dcaff899de81421f715e56cf1
MD5 fa7bd0bdb49dcd93f35756e4ac517914
BLAKE2b-256 aa8503a37d39fe004a5ba2675031f4f8d5a5a4a4f869c19464bc8c2a48770bcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for eucompliance_tools-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 33e2c7ee841141a760c080947faa980969b4c04891e1044f861bcbd7934b5322
MD5 d343dee98572aa1b92b14f63fe2b4a6d
BLAKE2b-256 9a6132a0505b79a310e1e1c905aa35cb5d6e723b3caac94d4c160a708cf9930a

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