Skip to main content

OFAC, sanctions, PEP & KYB screening for Python — screen names, companies & crypto wallets against OFAC SDN, EU, UK, UN + 100+ watchlists, plus 23 KYB / reference-data validators (LEI/GLEIF, US EIN, ABA routing, Australian ABN, Brazil CNPJ, LATAM tax-IDs, SWIFT/BIC, India GSTIN & PAN, GTIN/GLN, ISIN/CUSIP/SEDOL, DUNS, CAGE, EORI, IMEI, phone/E.164, UK VAT). Free demo, no key.

Project description

ofac-sanctions-screening

OFAC / sanctions / PEP / KYB screening for Python. Screen any person, company, or crypto wallet against OFAC SDN, EU, UK (OFSI), UN + 100+ global watchlists (powered by OpenSanctions) and get a PASS / WARN / BLOCK verdict — in one call, with cited sources.

  • Free demo, no signup — start screening in 10 seconds, no API key.
  • 🪙 Crypto-wallet OFAC screening — screen BTC/ETH addresses against the OFAC SDN crypto list (most APIs only do names & companies).
  • 🏢 KYB-360 — sanctions + PEP + entity risk + registry in one call.
  • ⚖️ One PASS / WARN / BLOCK verdict — no raw-list parsing.
  • 🔌 Zero dependencies, Python 3.8+. Pay-per-call (card or USDC via x402) — no seat license, no enterprise contract.

Install

pip install ofac-sanctions-screening

Quickstart (free, no key)

from ofac_sanctions_screening import Client

c = Client()  # free demo mode, rate-limited

# Sanctions / PEP screen a person or company
print(c.screen("Vladimir Putin"))
# {'result': {'flagged': True, 'match_count': 2, 'risk_topics': ['sanction', 'role.pep', ...], 'matches': [...]}}

# OFAC-screen a crypto wallet against the SDN crypto list
print(c.screen_wallet("1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"))

# KYB screen a company
print(c.kyb("Acme Inc"))

Full access (paid)

Get an API key instantly with a card at https://api.gocreativeai.com/credits/buy (or pay-per-call in USDC via x402 — no key at all):

c = Client(api_key="gck_...")

c.screen("Some Person")        # full sanctions & PEP coverage
c.screen_wallet("0xabc...")    # full OFAC wallet screen
c.kyb("Some Company Ltd")      # full KYB-360 dossier
c.verdict("Some Person")       # one PASS / WARN / BLOCK decision
c.risk("Some Company")         # entity risk score 0-100 + onboarding flag

KYB identity / tax-ID validation (paid)

Reject malformed business identifiers before an expensive registry call — deterministic check-digit + reference-data validators for onboarding and vendor due diligence:

c = Client(api_key="gck_...")

c.verify_lei("529900T8BM49AURSDO55")
# {'verdict': 'VALID_ACTIVE', 'checksum_valid': True,
#  'entity': {'legal_name': 'Ubisecure Oy', 'legal_jurisdiction': 'FI', 'entity_status': 'ACTIVE', ...},
#  'registration': {'lei_status': 'ISSUED', ...}}   # ← live GLEIF Level-1 record

c.verify_ein("12-3456789")           # {'verdict': 'VALID_FORMAT', 'issuing_campus': 'Andover', ...}
c.verify_abn("51824753556")          # {'verdict': 'VALID', 'abn_formatted': '51 824 753 556', ...}
c.verify_latam_taxid("MX", "GODE561231GR8")
# {'verdict': 'VALID', 'country': 'MX', 'tax_id_scheme': 'RFC (Registro Federal de Contribuyentes)', ...}
# also handles AR CUIT, PE RUC, CO NIT, CL RUT

c.verify_bic("DEUTDEFF")
# {'verdict': 'VALID', 'structure': {'institution_code': 'DEUT', 'country_code': 'DE', ...},
#  'entity': {'legal_name': 'DEUTSCHE BANK AKTIENGESELLSCHAFT', 'lei': '7LTWFZYICNSX8D621K86', ...}}  # ← GLEIF BIC-to-LEI

c.verify_gstin("27AAPFU0939F1ZV")   # India GSTIN — mod-36 checksum + state + embedded PAN
c.verify_pan("AAPFU0939F")          # India PAN — structure + holder type
c.verify_gtin("4006381333931")      # GTIN/UPC/EAN — GS1 mod-10 check digit + region
c.verify_uk_vat("GB434031494")      # UK VAT — HMRC modulus-97 (9755)

# Or use the dispatcher for any validator:
c.verify("lei", "5493001KJTIIGC8Y1R12")
c.verify("latam-taxid", "GODE561231GR8", country="MX")

Reference-data / identifier validators (paid)

Deterministic check-digit + structural validators for finance, trade, securities and telecom identifiers — same keyless-algorithm pattern, one line each:

c = Client(api_key="gck_...")

# Finance / banking
c.verify_aba("021000021")          # US bank routing / ABA / MICR (Fed mod-10) + district
c.verify_cnpj("11222333000181")    # Brazil CNPJ checksum + Receita Federal company lookup
c.verify_cnpj_alpha("12ABC34501DE35")  # Brazil CNPJ incl. new 2026 alphanumeric format

# Securities
c.verify_isin("US0378331005")      # ISIN (ISO 6166) + security resolve
c.verify_cusip("037833100")        # CUSIP (North-American securities, mod-10)
c.verify_sedol("2046251")          # SEDOL (UK/Ireland, LSE weighted mod-10)

# Trade / supply chain / government
c.verify_duns("150483782")         # D&B D-U-N-S number format
c.verify_cage("1U2A3")             # US CAGE / NATO NCAGE (defense-supplier onboarding)
c.verify_eori("GB123456789000")    # EU/UK EORI (customs / trade compliance)
c.verify_gln("0614141000012")      # GS1 GLN (mod-10) + region

# Telecom / media
c.verify_phone("+14155552671")     # phone number (ITU-T E.164) + country decode
c.verify_imei("490154203237518")   # IMEI (GSMA Luhn) + TAC (manufacturer/model) decode
c.verify_issn("2049-3630")         # ISSN (ISO 3297, mod-11)
c.verify_media_type("application/json")  # IANA media type / MIME (RFC 6838)

Methods

Method Free demo Paid endpoint Returns
screen(name) /v1/verdict/screen sanctions & PEP matches across OFAC/EU/UK/UN + 100+ lists
screen_wallet(address) /v1/verdict/wallet OFAC SDN crypto-wallet match
kyb(name) /v1/verdict/kyb KYB-360 dossier
verdict(name) /v1/verdict/check PASS / WARN / BLOCK
risk(name) /v1/risk/entity-score risk score 0-100
verify_lei(lei) /v1/verify/lei ISO 17442 checksum + GLEIF legal-entity record
verify_ein(ein) /v1/verify/ein US EIN format + IRS issuing campus
verify_abn(abn) /v1/verify/abn Australian ABN (ATO modulus-89)
verify_latam_taxid(country, tax_id) /v1/verify/latam-taxid MX RFC / AR CUIT / PE RUC / CO NIT / CL RUT
verify_bic(bic) /v1/verify/bic SWIFT/BIC (ISO 9362) + GLEIF legal entity
verify_gstin(gstin) /v1/verify/gstin India GSTIN (mod-36) + state / embedded PAN
verify_pan(pan) /v1/verify/pan India PAN structure + holder type
verify_gtin(gtin) /v1/verify/gtin GTIN/UPC/EAN (GS1 mod-10) + region
verify_uk_vat(vat) /v1/verify/uk-vat UK VAT (HMRC modulus-97)
verify_aba(routing_number) /v1/verify/aba US bank routing / ABA / MICR (Fed mod-10) + district
verify_cnpj(cnpj) /v1/verify/cnpj Brazil CNPJ checksum + Receita Federal lookup
verify_cnpj_alpha(cnpj) /v1/verify/cnpj-alpha Brazil CNPJ incl. 2026 alphanumeric format
verify_isin(isin) /v1/verify/isin ISIN (ISO 6166) + security resolve
verify_cusip(cusip) /v1/verify/cusip CUSIP (North-American securities)
verify_sedol(sedol) /v1/verify/sedol SEDOL (UK/Ireland securities)
verify_duns(duns) /v1/verify/duns D&B D-U-N-S number format
verify_cage(code) /v1/verify/cage US CAGE / NATO NCAGE code
verify_eori(eori) /v1/verify/eori EU/UK EORI (customs / trade)
verify_gln(gln) /v1/verify/gln GS1 GLN (mod-10) + region
verify_phone(phone) /v1/verify/phone phone number (ITU-T E.164)
verify_imei(imei) /v1/verify/imei IMEI (GSMA Luhn) + TAC decode
verify_issn(issn) /v1/verify/issn ISSN (ISO 3297, mod-11)
verify_media_type(media_type) /v1/verify/media-type IANA media type / MIME (RFC 6838)
verify(kind, value, country=…) dispatcher any of the 23 validators by kind

All methods return parsed JSON (dict). Errors raise ComplianceError with a clear message (402 → how to get a key, 429 → demo quota reached).

Get a free key (2 minutes)

The screen, screen_wallet, kyb, screening_report, wallet_report and batch_screen methods work with no key (rate-limited demo). To unlock full coverage and all 23 validators, grab a gck_ key:

  1. Go to https://api.gocreativeai.com/start — the guided key wizard.
  2. Buy credits with a card (instant) at https://api.gocreativeai.com/credits/buy, or pay per call in USDC via x402 with no key at all.
  3. Client(api_key="gck_...") — done.

Why this vs the incumbents

Same OpenSanctions data the serious vendors use, but keyless and pay-per-call — a fraction of the cost of Dataspike, ComplyAdvantage, or enterprise contracts, and it adds crypto-wallet OFAC screening most don't. See the comparisons: vs Dataspike · vs sanctions.io · vs ComplyAdvantage.

Disclaimer

Screening results draw on public watchlist + sanctions data and are provided for compliance-screening support. Verify matches before acting; absence of a match is not a guarantee of clearance. Not legal advice.

License

MIT © GoCreative · Product page · Docs

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

ofac_sanctions_screening-0.4.0.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

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

ofac_sanctions_screening-0.4.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file ofac_sanctions_screening-0.4.0.tar.gz.

File metadata

File hashes

Hashes for ofac_sanctions_screening-0.4.0.tar.gz
Algorithm Hash digest
SHA256 6c34a70b8a21bb5b22965d84db6595560a4455621843d95c91fa08db61f2703e
MD5 d07ac80b2f5e6ade45688b999ff2c984
BLAKE2b-256 430e2373e7a431ea8302bdb231ab8b855440fa04116338be4a088ebead2d1e9f

See more details on using hashes here.

File details

Details for the file ofac_sanctions_screening-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ofac_sanctions_screening-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f34eab09455dbbd9ba3fcb2ee22b03dbe54bb4cb50f3d5cd145e32a5b4b4f61
MD5 5cb23e8ff75d567c6349a9b78fe0f390
BLAKE2b-256 4736e8cf3b3fb9e38761ac6a8ec06759c469b3024434b60379ce016deb0ac707

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