Prepare Belgian or Polish invoice file
prepare_european_invoice_fileUse when the company you are about to invoice or pay is BELGIAN or POLISH and you must verify the supplier before payment (for France, use prepare_french_invoice_file). ONE call returns official registry identity, the VAT number checked against VIES, Peppol reachability for Belgium — whose structured B2B e-invoicing mandate has been in force since 1 January 2026 — and, uniquely in Poland, whether the IBAN is actually DECLARED by that taxpayer in the official White List (wykaz podatnikow VAT). The Polish check has FISCAL scope: paying more than 15,000 PLN into an undeclared account costs the buyer the deduction and creates joint liability for the supplier's VAT (art. 117ba Ordynacja podatkowa), so an undeclared account is a blocking reason. Everywhere else the bank leg is a FORM check (ISO 13616 structure + mod-97 key) plus bank identification — never a payee verification: with an iban supplied, verdict.non_verifie sits next to the verdict and names what is not checked (account existence, holder name), and the White List itself proves the account is DECLARED by that taxpayer, never who holds it. Returns a deterministic pret_a_facturer verdict with closed-list reasons, each tagged blocking or informational. The response is Ed25519-signed and carries provenance[] — one entry per block served, with the official register, its licence and its as_of date, the White List entry carrying the date actually sent to the ministry's API — so the payment decision is provable to an auditor offline. Paid via x402 ($0.03 in USDC or EURC).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Belgian enterprise number (10 digits, KBO/BCE) or Polish NIP (10 digits); dots, spaces and dashes are tolerated | |
| iban | No | IBAN of the account you are about to pay, unpunctuated (spaces tolerated) — optional, but it is what unlocks the Polish White List account check, and everywhere the structure check plus bank identification | |
| pays | Yes | Country of the counterparty: BE (Belgium) or PL (Poland). For France use prepare_french_invoice_file. | |
| 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`. |