Verify a French invoice
verify_french_invoiceInvoice verification for France — use when you HOLD an invoice (or its extracted fields) and must check that the identifiers it displays belong together before paying it. Cross-checks in ONE call: the SIREN against the official registry (existence and active status, live), the VAT number printed on the invoice against the one computed from the SIREN (the French key is deterministic) AND live against VIES, and the IBAN's ISO 13616 form + key digits with the bank identified. Returns a deterministic verdict coherent/incoherent/inverifiable with closed-list reasons traced to their source — flags a VAT number that belongs to ANOTHER company, a ceased supplier, or a key-invalid IBAN. A VIES outage yields inverifiable, never a false invalid. NOT a payee verification: the bank leg checks form only — a valid-but-swapped IBAN is not detectable, and non_verifie says so next to the verdict. At least one of tva/iban is required (a SIREN alone is a profile, not a cross-check). Paid via x402 ($0.02 in USDC or EURC).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tva | No | VAT number printed on the invoice, e.g. FR27552032534 — cross-checked against the SIREN and live against VIES. At least one of tva/iban is required | |
| iban | No | IBAN printed on the invoice (spaces tolerated) — form + key + bank identification, never a holder-name check. At least one of tva/iban is required | |
| siren | Yes | 9-digit SIREN printed on the invoice (digits only) | |
| api_key | No | Optional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote. | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. | |
| quote | No | The signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`. | |
| resultat | No | The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature; KYB, batch KYB, sanctions, intelligence and the five invoicing tools (prepare_french_invoice_file, prepare_european_invoice_file, prepare_french_einvoicing_recipient, verify_iban_bank, validate_eu_vat_number) also carry a `provenance` array — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means). Codes are documented at GET /v1/provenance/registres (free). | |
| payment_required | Yes | True when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`. |