Supplier invoice check API
Use before an agent pays a supplier invoice: supplier in official registers; company, directors, owners and parents screened (EU, UN, UK, US sanctions, PEP); VAT match; IBAN valid, same country, on the Polish whitelist; sender email; Dutch bankruptcy; Peppol. With known_iban, a different bank account than the one on file puts it on hold. Verdict: pass, review or hold.
0.08 USDC per call · GET /v1/invoice/check · free preview at /v1/invoice/check/preview
Parameters
| Name | Required | Description |
|---|---|---|
name | no | Supplier company name as on the invoice, e.g. Colruyt Group |
id | no | Or the supplier's company number (LEI, UK company number, SIREN, Polish NIP, ...) |
country | no | Supplier's ISO country, e.g. BE, NL, GB, PL |
vat | no | Supplier VAT number on the invoice: checked in VIES and matched to the registered name |
iban | no | IBAN the invoice asks you to pay |
email | no | Email address the invoice came from |
domain | no | Optional supplier website, compared with the sender's email domain |
kvk | no | Optional Dutch KvK number: adds a bankruptcy check |
known_iban | no | Optional: the supplier's IBAN in your vendor master. If the invoice asks for a different account the verdict is hold (changed bank details, the most common invoice fraud) |
Example request
curl "https://factline.dev/v1/invoice/check?id=7740001454&country=PL&vat=PL7740001454&iban=PL62102010260000190206882106"
# 402 Payment Required: pay with an x402 client (USDC on Base or Solana), or send
# Authorization: Bearer <your Factline API key>Example response
{
"verdict": "pass",
"flags": [],
"notes": [
"IBAN is registered to this company on the Polish VAT whitelist"
],
"supplier": {
"name": "ORLEN SPÓŁKA AKCYJNA",
"status": "active",
"country": "PL",
"registry": "Polish VAT taxpayer register (Biala lista, Ministry of Finance)",
"registry_id": "7740001454",
"lei": null,
"legal_form": null,
"address": "CHEMIKÓW 7, 09-411 PŁOCK",
"incorporated": "1993-07-05",
"vat_status": "active VAT payer",
"bank_accounts": [
"PL09102010260000110207607072",
"PL28102010260000140207626759"
]
},
"bank": {
"iban": "PL62 1020 1026 0000 1902 0688 2106",
"valid": true,
"country": "PL",
"reasons": [],
"sepa": true
},
"sender_email": "not sent (send email)",
"einvoicing": {
"on_peppol": false,
"can_receive_invoices": false,
"participant_ids": [],
"accepts": []
},
"group": {
"direct_parent": null,
"ultimate_parent": null,
"direct_parent_note": "no LEI found for this company, so no parent data",
"ultimate_parent_note": null,
"lei": null,
"source": "GLEIF Level 2 relationship data (CC0)"
},
"people": "not published openly by this register",
"checks": {
"register": {
"status": "ok",
"source": "wl-api.mf.gov.pl"
},
"sanctions": {
"status": "ok",
"result": {
"query": {
"name": "ORLEN SPÓŁKA AKCYJNA",
"type": "entity",
"birth_year": null,
"threshold": 85
},
"possible_match": false,
"matches": [],
"list": {
"sources": [
{
"list": "EU",
"name": "EU consolidated financial sanctions list (European Commission)",
"dated": "2026-09-22"
},
{
"list": "UN",
"name": "UN Security Council consolidated sanctions list",
"dated": "2026-10-10"
},
{
"list": "UK",
"name": "UK Sanctions List (FCDO/OFSI)",
"dated": "08/10/2026"
},
{
"list": "US",
"name": "US OFAC Specially Designated Nationals (SDN) list",
"dated": "OFAC SDN"
}
],
"entities": 25681,
"loaded_at": "2026-10-12T00:20:52.400Z"
},
...Use it from an AI agent
Agents with an x402 wallet call the URL directly and pay per request. Assistants that speak MCP connect to https://factline.dev/mcp. Full reference: docs, OpenAPI, llms.txt. Businesses: API keys with a free trial.
Questions
How much does the Supplier invoice check cost?
0.08 USDC per call, paid per request with x402 (no account), or included in a Factline API key plan with a free trial. Calls that fail are not charged.
Can I try it for free?
Yes: GET /v1/invoice/check/preview with the same parameters validates your input and shows what the paid answer contains, at no cost.
Where does the data come from?
Official public registers and open data, named with their licence in every response (source field) and at /.well-known/x402-license-provenance.
Related checks
Dutch address report API · Compare Dutch addresses API · Dutch neighbourhood statistics API · Dutch address verification API · Reverse geocoding API for the Netherlands · Dutch energy label API