# Invoket Supplier Pre-flight Check (SIREN/LEI)

> Invoket Supplier Pre-flight Check (SIREN/LEI) is a paid API for AI agents from api.invoket.com, paid per call via x402, $0.25/call, status unknown (last checked 2026-09-14).

Runs compliance and identity pre-flight checks on a French or international company by SIREN or LEI number, including sanctions screening, IBAN validation, VAT derivation, and ultimate-parent screening, before an agent takes action.

## Facts

- Endpoint: GET https://api.invoket.com/preflight/supplier
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/invoket-supplier-pre-flight-check-siren-lei-43295795
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_NbKU8E9viWVxXrhCCdHXE

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability invoket-supplier-pre-flight-check-siren-lei-43295795
```

Example prompt: Before we pay this French supplier, run a pre-flight check on them — their SIREN is 552081317, their IBAN is FR7630006000011234567890189, and please screen their ultimate parent against sanctions lists too.

## When to prefer this

Use this endpoint when an AI agent needs to verify the compliance and identity of a French company (by SIREN) or any company with a LEI before taking a consequential action such as payment, contract signing, or supplier onboarding. It is the right choice when you need official-source provenance, sanctions screening including ultimate-parent screening, and optional IBAN and VAT validation bundled into a single pre-flight call. Prefer it over generic sanctions-list lookups or separate IBAN validators when dealing with European B2B payment workflows.

## Known failure modes

- 400 if both 'siren' and 'lei' are provided simultaneously, or neither is provided
- 404 if a syntactically valid SIREN/LEI is not found in the register (not billed)
- 400 if SIREN fails Luhn check or LEI is not 20 characters
- 'unavailable' status on parent block if parent existence cannot be determined, which blocks an overall 'ok'
- Payment required (402) if x402 payment header is missing or insufficient

## How this service works

The checks your agent runs before it acts: verify a bank account, a phone number, a law in force, the weather or a vehicle — computed from official sources, with provenance in every response. You only pay for answers.

## Output

A structured JSON object containing a per-block compliance verdict for the company, including: sanctions screening result for the entity and optionally its ultimate parent, IBAN validity (if provided), derived or provided VAT number, Peppol network eligibility, SIREN/LEI resolution details (including resolved_siren for LEI inputs), and provenance metadata indicating official data sources used. An overall 'ok' or blocking status is provided. A 404 with no charge is returned for well-formed but unrecognized identifiers.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "siren",
  "screen_parent"
 ],
 "properties": {
  "siren": {
   "type": "string",
   "description": "9-digit SIREN (Luhn-checked). Give EXACTLY ONE entity key, 'siren' or 'lei' (20 characters); zero or two is a 400. Both keys pre-flight the same company: a 'lei' whose GLEIF record declares an existing SIREN reopens the French blocks (events, Peppol, derived VAT), stated in query.resolved_siren; a foreign entity gets them as 'not_applicable'. Optional: 'iban' adds the bank block, 'vat_number' replaces the derived one. A well-formed key unknown to the register is a 404, unbilled - no empty pre-flight is billed"
  },
  "screen_parent": {
   "type": "string",
   "description": "Screen the ultimate parent against the sanctions lists too (default true). False makes that block 'not_requested', which does NOT block an 'ok': your explicit choice is not a coverage gap. Not knowing whether a parent exists is different - that is 'unavailable', and it does block 'ok'"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/invoket-supplier-pre-flight-check-siren-lei-43295795/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.invoket.com](https://www.zero.xyz/host/api.invoket.com/llms.txt)
