Metadata-Version: 2.4
Name: factline
Version: 0.2.0
Summary: Client for Factline: sanctions, PEP, KYC and company checks, plus Dutch address, rent and vehicle data, for apps and AI agents.
Author-email: Factline <hello@factline.dev>
License-Expression: MIT
Project-URL: Homepage, https://factline.dev/agents
Project-URL: Documentation, https://factline.dev/docs
Keywords: sanctions,pep,kyc,kyb,aml,netherlands,rdw,mcp,ai-agents,x402,agent-payments,ofac
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: x402
Requires-Dist: x402>=2.20; extra == "x402"
Dynamic: license-file

# factline

Official-records checks for apps and AI agents: sanctions and PEP screening, one-call KYC, company registers in 10 countries, Dutch insolvency, EU VAT, EORI, IBAN, email and phone checks, plus Dutch address, neighbourhood, rent, flood, school and vehicle data. Standard library only.

```bash
pip install factline
```

```python
from factline import Factline

fl = Factline(api_key="fl_live_...")  # or set FACTLINE_API_KEY

fl.sanctions_screen(name="Acme Trading Ltd")
fl.kyc_check(name="Jan Jansen", email="jan@example.nl", phone="+31612345678")
fl.company_lookup(name="Tesco", country="GB")
fl.rent_check(postcode="2517AS", house_number=100)
fl.vehicle_basic(licence_plate="GT-722-F")  # free, no key needed
```

- **API key:** free trial, EUR 19 credit pack or monthly plans at https://factline.dev/business. Without a key, paid calls raise `FactlinePaymentRequired` (the API answers with an x402 payment request that agents with a wallet can pay).
- **Free preview:** `fl.preview("sanctions_screen", name="Acme")`.
- **Agents (MCP):** `MCP_SERVERS["kyc"]`, `["nl"]`, `["vehicles"]`. With LangChain: `MultiServerMCPClient({"factline": {"url": MCP_SERVERS["kyc"], "transport": "streamable_http"}})`. More setups: https://factline.dev/agents

## Pay guard for x402 agents

Check every x402 payment before your agent signs it (free): the payTo wallet against the OFAC list, the seller's paying wallets, age and uptime, and the amount against its listed price and your budget.

```python
from x402 import x402Client
from factline.pay_guard import with_pay_guard

client = with_pay_guard(x402Client(), max_usd=1.0)   # deny aborts the payment
```

Or one call: `from factline.pay_guard import check_payment; check_payment(url, pay_to, amount_usd=0.05)`. Install the x402 client with `pip install "factline[x402]"`.

MIT licence. Data comes from official sources; see https://factline.dev/trust.
