# Invoket > The checks AI agents run before they act — verify bank accounts before paying, phone numbers before messaging, laws in force before advising, weather before deciding, vehicles before buying. Computed from official sources (bank registries, OFAC/EU/UN lists, LEGI/EUR-Lex, ERA5/GFS, NHTSA vPIC), with provenance in every response. Pay per call in USDC, no account, no API key — you only pay for answers. The live catalog is served by the gateway. ## Documentation - [Introduction](https://invoket.com/docs) — The pre-action checks Invoket serves — bank accounts, phone numbers, laws in force, weather and vehicles, computed from official sources with provenance in every response — and how pay-per-call access works. - [Quickstart](https://invoket.com/docs/quickstart) — Call a paid Invoket endpoint — probe the 402, then settle and replay with copy-paste snippets (curl, x402-fetch). - [Payments and rails](https://invoket.com/docs/payments-and-rails) — Stablecoins and networks accepted by Invoket, atomic amounts and prices in USD. - [For agents](https://invoket.com/docs/for-agents) — How an agent discovers Invoket's paid endpoints — the CDP x402 Bazaar (MCP), /catalog, llms.txt and /.well-known/x402.json. - [MCP server](https://invoket.com/docs/mcp) — The official @invoket/mcp server — one line to give your AI agent paid access to Invoket. Non-custodial BYOK, spend-capped, runs on your machine over stdio. - [GET /preflight/payment](https://invoket.com/docs/api/preflight-payment) — Run every check on a bank transfer in one call — IBAN validity, bank and BIC from national registries, SEPA scheme reachability, sanctions screening of the bank and its jurisdiction, and screening of the beneficiary name — and get one verdict, ok / review / stop / insufficient_coverage, with every reason attached to its block and its dated source. - [GET /preflight/supplier](https://invoket.com/docs/api/preflight-supplier) — Run every check on a supplier in one call — identity and status (Sirene or GLEIF), BODACC insolvency and deregistration, live EU VAT validation, Peppol e-invoicing reachability, the declared control chain and sanctions screening of the company and its ultimate parent — and get one verdict, ok / review / stop / insufficient_coverage, with every reason attached to its block and source. - [GET /iban/resolve](https://invoket.com/docs/api/iban-resolve) — Resolve an IBAN in a single call — structural validity, issuing bank, BIC and SEPA reachability per scheme (SCT, SCT Inst, SDD Core/B2B) from the EPC register. Reference of the parameters, the UnifiedResponse and the error codes. - [POST /iban/resolve/batch](https://invoket.com/docs/api/iban-resolve-batch) — Resolve up to 500 IBANs in one call with a single x402 settlement — structural validity, issuing bank, BIC and reachability for each entry. Reference of the request body, the UnifiedResponse and the error codes. - [GET /iban/screen](https://invoket.com/docs/api/iban-screen) — IBAN sanctions screening in a single call — sanctioned bank/BIC (OFAC/EU/UN) and high-risk jurisdiction (FATF black/grey, embargoes, EU-AML) aggregated into one risk band. Reference of the parameters, the UnifiedResponse ScreenResult and the error codes for KYB onboarding agents. - [POST /iban/screen/batch](https://invoket.com/docs/api/iban-screen-batch) — Screen up to 500 IBANs for sanctions and jurisdiction risk in one call with a single x402 settlement — sanctioned bank/BIC (OFAC/EU/UN) and FATF high-risk jurisdiction verdicts for KYB onboarding agents. Reference of the request body, the UnifiedResponse ScreenResult list and the error codes. - [GET /iban/repair](https://invoket.com/docs/api/iban-repair) — Repair a degraded IBAN in a single call — recover invalid IBANs from OCR invoice ingestion, recompute check digits and recover unreadable characters, with candidates ranked known-bank first. Reference of the parameters, the UnifiedResponse and the error codes. - [POST /iban/repair/batch](https://invoket.com/docs/api/iban-repair-batch) — Repair up to 500 degraded IBANs in one call with a single x402 settlement — bulk invoice/OCR reconciliation, recompute check digits and recover unreadable characters, candidates ranked known-bank first. Reference of the request body, the UnifiedResponse and the error codes. - [GET /screen/entity](https://invoket.com/docs/api/screen-entity) — Screen a company or person name against the official designation lists in full — OFAC SDN and Consolidated, EU financial sanctions list, UN Security Council list — with aliases, programmes and designation dates behind every hit. Reference of the parameters, the UnifiedResponse verdict and the error codes. - [POST /screen/entity/batch](https://invoket.com/docs/api/screen-entity-batch) — Screen up to 200 company or person names in one call against the official designation lists — OFAC SDN and Consolidated, EU financial sanctions list, UN Security Council list — with one sourced verdict per name and a single x402 settlement. Reference of the request body, the per-item results and the error codes. - [GET /screen/address](https://invoket.com/docs/api/screen-address) — Check a crypto address against the sanctioned addresses published by OFAC (SDN and Consolidated) and by the EU financial sanctions list — multi-list where free feeds are OFAC-only — returning the designated entity, its programmes and its designation date. Bitcoin, EVM, Tron, Solana, Monero. - [POST /screen/address/batch](https://invoket.com/docs/api/screen-address-batch) — Check up to 500 crypto addresses in one call against the sanctioned addresses published by OFAC (SDN and Consolidated) and by the EU financial sanctions list, with a single x402 settlement. Reference of the request body, the per-item results and the error codes. - [GET /phone/validate](https://invoket.com/docs/api/phone-validate) — Validate a phone number in a single offline call — E.164 form, region, national format and line type. Reference of the parameters, the UnifiedResponse and the error codes. - [GET /climate/point](https://invoket.com/docs/api/climate-point) — Historical climate point query over ERA5 reanalysis - 2 m temperature, total precipitation and 10 m wind at a GPS point or city name and a date, decoded from GRIB into a UnifiedResponse. No account, no key, pay per call through x402. - [GET /weather/forecast](https://invoket.com/docs/api/weather-forecast) — Weather forecast point query for a GPS point or city name - 2 m temperature, precipitation and 10 m wind, plus optional convective instability (CAPE/CIN, a thunderstorm/hail-risk instability proxy - not a calibrated hail probability), humidity, total cloud cover and snow (ground depth and snowfall flag) - targeted by lead time, instant or calendar date, up to 35 days ahead, served as deterministic NOAA GFS at 0.25 degrees within 16 days then the NOAA GEFS ensemble mean at 0.5 degrees beyond (a member average whose extremes are smoothed - a trend signal, not a threshold trigger), decoded from GRIB into a UnifiedResponse. No account, no key, pay per call through x402. - [GET /weather/forecast/daily](https://invoket.com/docs/api/weather-forecast-daily) — Daily weather forecast series for a GPS point or city name - one row per UTC calendar day from today to the end of the covered window, with min/max temperature, total precipitation and max wind, decoded from NOAA GFS/GEFS GRIB into a UnifiedResponse. Days past the deterministic window are ensemble-mean rows whose extremes are smoothed - a trend signal, not a threshold trigger. One x402 settlement for the whole series. No account, no key, pay per call. - [GET /weather/forecast/exceedance](https://invoket.com/docs/api/weather-forecast-exceedance) — Counted ensemble exceedance for a GPS point or city name - how many of the 31 NOAA GEFS members cross your threshold on each UTC calendar day of the ensemble tail, roughly two to five weeks out. Ask "at least 30 mm of rain", "wind at or above 15 m/s" or "a day at or below 0 deg C" and get one counted fraction per day with the member count behind it. What is served is a raw counted fraction, not a calibrated probability - no bias correction, no statistical post-processing, and members_total on every day so the number can be audited. One x402 settlement for the whole series. No account, no key, pay per call. - [POST /weather/forecast/batch](https://invoket.com/docs/api/weather-forecast-batch) — Batch weather forecast over NOAA GFS/GEFS - resolve many point-and-target forecasts in one call with one x402 settlement, each item priced per query, decoded from GRIB into a UnifiedResponse. Partial success per item, no account, no key. - [POST /climate/point/batch](https://invoket.com/docs/api/climate-point-batch) — Batch climate point query over ERA5 reanalysis - resolve many GPS point and date pairs in one call with one x402 settlement, decoded from GRIB into a UnifiedResponse. Priced per query through the live catalog. - [GET /climate/degree-days](https://invoket.com/docs/api/climate-degree-days) — Heating, cooling and growing degree days (HDD/CDD/GDD) at a GPS point over a date range, computed from ERA5 reanalysis - decades of degree days in one x402-paid call, for energy hedging and agriculture. Mean-temperature method, returned as a UnifiedResponse. - [GET /climate/aggregate](https://invoket.com/docs/api/climate-aggregate) — Monthly and seasonal climate aggregates at a GPS point from ERA5 reanalysis - mean temperature with daily extremes, total precipitation and mean wind over a date range, in one x402-paid call. Returned as a UnifiedResponse. - [GET /climate/indices](https://invoket.com/docs/api/climate-indices) — Climate event indices at a GPS point from ERA5 reanalysis - frost days, summer days, tropical nights, consecutive dry spells, heavy rainfall days, max one-day rainfall and max wind gust over a date range. Standard ETCCDI definitions for parametric insurance triggers, agriculture and construction. Returned as a UnifiedResponse. - [GET /climate/anomaly](https://invoket.com/docs/api/climate-anomaly) — Climate anomaly at a GPS point - observed ERA5 value versus the 1991-2020 WMO climate normal, for temperature, precipitation and wind over a date range. Departure from the 30-year baseline for parametric insurance and ESG climate reporting. Returned as a UnifiedResponse. - [GET /climate/return-period](https://invoket.com/docs/api/climate-return-period) — Climate return period and percentile at a GPS point - where a target year's seasonal temperature or precipitation ranks in 30 years of ERA5 history, the WMO-standard climatological period. Empirical distribution with the sample size always exposed, for reinsurance, climate risk and extreme-season ranking. Returned as a UnifiedResponse. - [GET /legal/article](https://invoket.com/docs/api/legal-article) — French law in force at a date - consolidated article text, in-force or repealed status, an explicit in_force_at_date flag, validity dates and LEGI provenance, returned as a UnifiedResponse with explicit error codes. - [GET /legal/eu-act](https://invoket.com/docs/api/legal-eu-act) — EU law in force at a date - consolidated act or article text by CELEX or ELI, status, an explicit in_force_at_date flag, the staggered date it becomes applicable, validity dates, EUR-Lex provenance and UnifiedResponse error codes. - [POST /legal/article/batch](https://invoket.com/docs/api/legal-article-batch) — Batch legal in-force checks for up to 50 French LEGI and EU CELEX/ELI references in one x402 settlement, returned as a UnifiedResponse with ordered per-reference verdicts and explicit error codes. - [GET /legal/history](https://invoket.com/docs/api/legal-history) — Version timeline of a French or EU law article - status history and validity dates for compliance monitoring and regulatory drift detection, over the currently ingested corpus (selected French codes and EU acts, expanding), returned as a UnifiedResponse with explicit error codes. - [GET /legal/diff](https://invoket.com/docs/api/legal-diff) — What changed in a French or EU law article between two dates - consolidated text diff with structured added/removed segments and unified patch format, for due diligence and regulatory watch, returned as a UnifiedResponse with explicit error codes. - [Send feedback (/review)](https://invoket.com/docs/review) — A free, no-account channel for agents (and humans) to report an unsupported case, an improvement, a bug, a data gap or a pricing concern via POST /review. - [POST /legal/history/batch](https://invoket.com/docs/api/legal-history-batch) — Monitor a portfolio of laws for changes - version timelines for up to 100 French LEGI and EU CELEX/ELI references in one x402 settlement, priced per reference, returned as a UnifiedResponse with ordered per-reference timelines and explicit error codes. - [POST /legal/diff/batch](https://invoket.com/docs/api/legal-diff-batch) — Diff many laws between dates - what changed across a list of up to 50 French LEGI and EU CELEX/ELI references in one x402 settlement, priced per reference, returned as a UnifiedResponse with ordered per-reference diffs (structured segments and unified patch) and explicit error codes. - [GET /legal/deadline](https://invoket.com/docs/api/legal-deadline) — Compute the exact due date of a legal time limit under an explicitly chosen computation regime - calendar days, business days, working days, clear days (jours francs), months or years - with every weekend and public holiday it skipped named and dated, the end-of-month and next-working-day rules it applied, and the step-by-step reasoning. Official holiday calendar for France, community reference dataset for nine more countries, and every answer says which authority it used. Returned as a UnifiedResponse. No account, no key, pay per call through x402. - [GET /legal/transposition](https://invoket.com/docs/api/legal-transposition) — The national implementing measures a Member State has notified to the European Commission for an EU act - each measure with its national act type, title, national reference, publication and notification dates - plus the published transposition deadline and how many days the first notification came after it. Ask for one country, or omit it for a one-line verdict on each of the 30 EEA States. A register of notifications, never an assessment of conformity. Returned as a UnifiedResponse. No account, no key, pay per call through x402. - [GET /vehicle/vin/decode](https://invoket.com/docs/api/vehicle-vin-decode) — Offline VIN decoding - manufacturer, assembly country and region, model year, check-digit validity and deterministic attributes for any 17-character VIN, decoded from the public NHTSA vPIC tables into a UnifiedResponse. No account, no key, pay per call through x402. - [GET /vehicle/recalls](https://invoket.com/docs/api/vehicle-recalls) — Candidate recall campaigns for a vehicle - consolidated offline from NHTSA and RappelConso, looked up by make (optionally model and year) or by VIN, with a dated per-source coverage block, returned as a UnifiedResponse. An empty list is a successful answer. No account, no key, pay per call through x402. - [GET /vehicle/critair](https://invoket.com/docs/api/vehicle-critair) — Crit'Air class and current low-emission-zone (ZFE) restrictions for a vehicle, computed offline from declared characteristics - fuel plus Euro norm or first-registration date - as a UnifiedResponse. Pure regulatory calculation, no store, no network. An unclassified vehicle is still a successful answer. No account, no key, pay per call through x402. - [GET /vehicle/co2](https://invoket.com/docs/api/vehicle-co2) — Type-approval CO2 emissions and technical characteristics of a European vehicle - WLTP g/km with its p10/p50/p90 dispersion, fuel, engine capacity, power and mass - read offline from the official EU CO2 monitoring dataset (Regulation (EU) 2019/631), keyed by type-approval number or by make, model and year, every answer stating the precision it was matched at, as a UnifiedResponse. No account, no key, pay per call through x402. - [GET /vehicle/tax](https://invoket.com/docs/api/vehicle-tax) — What registering a vehicle in France costs - CO2 malus, weight malus and the regional certificate tax - computed against the official schedule in force on the registration date you supply, each item stating its bracket, its threshold and the exemption applied with its legal article, returned as a UnifiedResponse. France only, and the total disappears rather than being partial. No account, no key, pay per call through x402. - [GET /vehicle/report](https://invoket.com/docs/api/vehicle-report) — A composite vehicle report for one VIN in a single x402 settlement - VIN decode (always present) plus candidate recall campaigns, type-approval CO2, the French registration tax it would cost and, when declared characteristics are supplied, a Crit'Air class, each block carrying its own provenance, returned as a UnifiedResponse. A partial report is a successful, billed answer. No account, no key, pay per call through x402. - [POST /invoice/read](https://invoket.com/docs/api/invoice-read) — Faithful structured extraction of a European electronic invoice (Factur-X/ZUGFeRD PDF, CII D16B, UBL 2.1) into the EN 16931 semantic model - parties with SIREN/VAT ids, lines, VAT breakdown, totals, payment IBAN, due dates - as a UnifiedResponse. No OCR guesswork, no account, no key, pay per call through x402. - [POST /invoice/validate](https://invoket.com/docs/api/invoice-validate) — Deterministic EN 16931 conformance verdict on a European electronic invoice (Factur-X/ZUGFeRD PDF, CII D16B, UBL 2.1) in four reported layers - XSD, business rules with official BR-xx ids and observed/expected values, Factur-X profile conformance, identifier plausibility - plus optional national/network CIUS rule packs via ?ruleset=xrechnung (German BR-DE, faithful to KoSIT) or peppol (Peppol BIS Billing 3.0, faithful to OpenPeppol). One surface, three markets. Sourced rule ids, no LLM. No account, no key, pay per call through x402. - [POST /invoice/generate](https://invoket.com/docs/api/invoice-generate) — Generate a CII D16B or UBL 2.1 electronic invoice guaranteed conformant to EN 16931 - and, in UBL, guaranteed conformant to Peppol BIS Billing 3.0 - from a simple business JSON - parties, lines, VAT. Generated-then-validated - every XML served has already passed the four validation layers of /invoice/validate, official BR-xx rule set (plus the PEPPOL-EN16931-R pack for Peppol), pinned CEN and OpenPeppol artefacts. The only x402 generator that guarantees and re-proves Peppol BIS 3.0. Actionable 400 issues, all reported together. No account, no key, pay per call through x402. - [POST /invoice/generate-pdf](https://invoket.com/docs/api/invoice-generate-pdf) — Generate a complete Factur-X document - a readable PDF/A-3B invoice carrying an embedded CII D16B XML (factur-x.xml) guaranteed conformant to EN 16931 - from the same business JSON as /invoice/generate. Generated-then-validated and re-read - the embedded XML passed the four validation layers and was re-extracted bit-for-bit by our own reader before anything is served. veraPDF-conformant PDF/A-3B, byte-deterministic output. No account, no key, pay per call through x402. - [POST /invoice/vat-treatment](https://invoket.com/docs/api/invoice-vat-treatment) — Determine the VAT treatment of one cross-border transaction under Directive 2006/112/EC - place of supply, person liable, mechanism (standard, reverse charge, intra-Community exemption, exempt export, out of scope), the standard rate in force at that date, and the exact invoice mentions to print - each sourced article by article, with an honest undetermined for the regimes it does not cover. Returned as a UnifiedResponse. No account, no key, pay per call through x402. - [POST /invoice/vat-treatment/batch](https://invoket.com/docs/api/invoice-vat-treatment-batch) — Judge a sales ledger in one call - up to 200 transactions, one VAT determination each under Directive 2006/112/EC, one x402 settlement. Same verdicts as the single call (place of supply, person liable, mechanism, rate in force at each date, compulsory invoice mentions), with legal bases and caveats deduplicated and cited by key, a malformed item reported at its position, and a summary counting the five mechanisms. Returned as a UnifiedResponse. - [POST /invoice/late-payment](https://invoket.com/docs/api/invoice-late-payment) — Compute what an unpaid commercial invoice actually owes under Directive 2011/7/EU - statutory interest tranche by tranche across every half-year of the reference rate, the EUR 40 fixed compensation for recovery costs, and the total - under the national transposition that applies (FR, DE, ES, IT, NL, BE, PT, PL) or the explicitly flagged Directive minimum. Every tranche carries its reference rate, statutory rate and interest, so the figure can be recomputed by hand. Returned as a UnifiedResponse. - [GET /company/resolve](https://invoket.com/docs/api/company-resolve) — Official identity card of a French company from its SIREN or SIRET - legal name, active/ceased status, legal form, NAF activity, workforce band, creation date and head-office address, served offline from the monthly INSEE Sirene register (30M+ legal units) as a UnifiedResponse. No account, no key, pay per call through x402. - [GET /company/events](https://invoket.com/docs/api/company-events) — Official BODACC legal announcements for a French company by SIREN - insolvency proceedings (safeguard, receivership, liquidation), deregistrations, business sales - as a dated timeline with mechanically derived factual flags, history since 2008, served offline as a UnifiedResponse. A SIREN known to the Sirene register with no announcement is a paid 200 with an empty list over a stated coverage window; a well-formed SIREN unknown to that register is a 404, not billed - "unknown to the register" is not the same answer as "known, without announcements". No account, no key, pay per call through x402. - [GET /company/vat](https://invoket.com/docs/api/company-vat) — Live intra-EU VAT number validation against VIES (European Commission) for any member state, plus offline derivation of the French VAT number from a SIREN. Three outcomes - valid, invalid, unverifiable - are all paid 200 answers - the agent pays for a check that ran, not for a "positive" result. An unavailable member state falls back to our last firm verdict on the number, served as cached and dated by its age, or degrades to an honest syntax-only answer - never a 5xx. No account, no key, pay per call through x402. - [GET /company/peppol](https://invoket.com/docs/api/company-peppol) — Is a company reachable on the Peppol e-invoicing network, under which identifiers and for which document types? Answered offline from the ingested public export of the Peppol directory - a dated photo (coverage.directory_as_of), never a live SMP lookup. "Not registered" is a paid 200 answer (reachable false), never a 404 - the absence is the answer, dated. The one 404 is a well-formed siret= or siren= that does not exist in the Sirene register - unknown is unknown on every route of the service, and it is not billed; participant= is never concerned, it can name any country. The French index returns every identifier a SIREN is known under, including the CTC routing sub-addresses of the 2026 French e-invoicing reform. No account, no key, pay per call through x402. - [GET /company/lei](https://invoket.com/docs/api/company-lei) — Legal identity of a company anywhere in the world from its LEI, BIC, ISIN, French SIREN or exact name plus country - legal name, jurisdiction, entity and registration status, addresses and mapped market identifiers, served offline from the official GLEIF LEI reference (3.3M+ entities, CC0) as a UnifiedResponse. An ambiguous key returns every candidate, never an arbitrary pick. No account, no key, pay per call through x402. - [GET /company/ownership](https://invoket.com/docs/api/company-ownership) — Who controls this counterparty - direct parent, ultimate parent, the dated chain between them and the direct subsidiaries, from the GLEIF Level 2 relationships (CC0), served offline as a UnifiedResponse. These are self-declared accounting-consolidation parents, NOT beneficial owners under AML/KYC rules, and Level 2 publishes no ownership percentage. A published non-reporting reason is served as the answer. No account, no key, pay per call through x402. - [GET /company/report](https://invoket.com/docs/api/company-report) — Complete due diligence on a French company in one paid response, by SIREN - official identity (Sirene), dated legal events (BODACC), live VAT validation (VIES), Peppol e-invoicing reachability and the global GLEIF identity with its ultimate consolidating parent, each block carrying its own provenance, never smoothed under one date. The showcase pre-action counterparty check before you invoice, pay or onboard - no account, no key, no Creditsafe/Pappers subscription. An unknown SIREN is an unbilled 404, never an empty billed report. The summary is mechanically derived facts, not a risk score. Pay per call through x402. - [POST /certify/batch](https://invoket.com/docs/api/certify-batch) — Certify a file of French counterparties in one call - up to 200 SIREN or SIRET lines, one sourced verdict per line from the INSEE Sirene register and the BODACC gazette, the name you hold compared to the one the register publishes, and an Ed25519-signed Merkle root that lets the buyer of the file verify any single line offline, with a public verifier and no dependency on us. - [GET /medication/resolve](https://invoket.com/docs/api/medication-resolve) — Official identity card of a medication from its French CIS code, US NDC, exact name (+country) or INN/DCI substance - marketing-authorization status, active substances normalized to the INN, presentations with public price and reimbursement rate, and generic group, served offline from the monthly French BDPM register and the US openFDA/RxNorm datasets as a UnifiedResponse. No account, no key, pay per call through x402. - [GET /medication/generics](https://invoket.com/docs/api/medication-generics) — Generic groups of a French medication from its BDPM CIS code, exact name or INN/DCI substance - the reference brand-name drug and every equivalent generic, with their BDPM role, official name and presentations (public price in cents and reimbursement rate) exactly as published. Served offline from the monthly French BDPM register as a UnifiedResponse. No account, no key, pay per call through x402. - [GET /medication/availability](https://invoket.com/docs/api/medication-availability) — Check a French medication's market availability from its BDPM CIS code or an INN/DCI substance - the official ANSM shortage reports (rupture, risk of shortage, tension, return to market, discontinuation) relayed exactly as published, with dates, medical domain and the official ANSM report URL. Honest by design: ANSM only records reported shortages, so the absence of a report is never a stock guarantee. Served offline from a data.ANSM snapshot as a UnifiedResponse. No account, no key, pay per call through x402. - [POST /medication/interactions](https://invoket.com/docs/api/medication-interactions) — Check drug-drug interactions between 2+ medications against the official French ANSM interactions thesaurus - the authoritative constraint level, management and mechanism relayed exactly as the ANSM wrote them. Post CIS codes, US NDCs, INN/DCI substances or ANSM classes; US products join the French thesaurus through the INN substance bridge. Honest by design: 'no interaction' is asserted only for pairs actually compared, everything else falls into an explicit coverage block - never a fake all-clear. Served offline from an ANSM snapshot as a UnifiedResponse. No account, no key, pay per call through x402. - [GET /medication/report](https://invoket.com/docs/api/medication-report) — Everything an agent needs to know about a medication before acting on a prescription or an order, in one paid call, by French CIS code or US NDC - official identity and price (BDPM), generic group (BDPM), reported shortages (data.ANSM) and the drug-drug interactions of the ANSM thesaurus between the subject and an optional list of co-medications. Four sections, each carrying its own source and date - never smoothed under one date. The showcase of the Medication family: the four unit endpoints consolidated into a single settlement. Sourced, dated facts, never a clinical opinion. Served offline as a UnifiedResponse. No account, no key, pay per call through x402. - [GET /label/chem/classify](https://invoket.com/docs/api/label-chem-classify) — Harmonised CLP classification and labelling of a substance from its CAS number, EC number or exact Annex VI name - hazard classes with H-statements, GHS pictograms, signal word and concentration limits, versioned by ATP (in force at the queried date, plus any upcoming change) with the CELEX number and EUR-Lex link of the act each entry version comes from, served offline from the ECHA Annex VI (CLP) as a UnifiedResponse. No account, no key, pay per call through x402. - [POST /label/chem/classify/batch](https://invoket.com/docs/api/label-chem-classify-batch) — Screen a whole BOM or formulation - up to 200 substances by CAS, EC or exact name - for its harmonised CLP classification (Annex VI, ECHA) in one x402 settlement, all evaluated at a single date, priced per unit. Reference of the request body, the UnifiedResponse and the error codes. - [GET /label/chem/svhc](https://invoket.com/docs/api/label-chem-svhc) — SVHC Candidate List status of a substance from its CAS number, EC number or exact name - listed or not, Article 57 reasons for inclusion, inclusion date, the ECHA inclusion decision documents and the generic REACH Article 33 and SCIP obligations it triggers, served offline from the ECHA Candidate List (REACH Art. 59(10)) as a UnifiedResponse. No account, no key, pay per call through x402. - [POST /label/chem/svhc/batch](https://invoket.com/docs/api/label-chem-svhc-batch) — Screen a whole BOM or formulation - up to 200 substances by CAS, EC or exact name - for its SVHC Candidate List status (REACH Art. 59(10), ECHA) in one x402 settlement, against the last published list, priced per unit. Reference of the request body, the UnifiedResponse and the error codes. - [POST /label/claims/check](https://invoket.com/docs/api/label-claims-check) — Check a proposed food-label wording against the EU Register of nutrition and health claims (Regulation (EC) 1924/2006) - is the claim authorised (exact legal wording and conditions of use), non-authorised (full official rejection reason and EFSA opinion), a partial fragment, or absent from the register. Strict, never fuzzy matching served offline as a UnifiedResponse. No account, no key, pay per call through x402. - [GET /label/claims/permitted](https://invoket.com/docs/api/label-claims-permitted) — List the authorised health claims for a nutrient or substance against the EU Register of nutrition and health claims (Regulation (EC) 1924/2006) - the exact legal wording an agent may write, with the conditions of use and referenced EFSA opinion as published. The catalogue counterpart of the claim check. Strict, never fuzzy lookup served offline as a UnifiedResponse. No account, no key, pay per call through x402. - [GET /label/cosmetic/ingredient](https://invoket.com/docs/api/label-cosmetic-ingredient) — The EU regulatory verdict on a cosmetic ingredient - prohibited (Annex II), restricted (III) or authorised as a colorant (IV), preservative (V) or UV filter (VI) under Regulation (EC) No 1223/2009 - by CAS, EC number, INCI name or exact chemical name, with maximum concentrations, conditions of use and the mandatory label wording served word for word, versioned by amending regulation, as a UnifiedResponse. No account, no key, pay per call through x402. - [POST /label/cosmetic/ingredient/batch](https://invoket.com/docs/api/label-cosmetic-ingredient-batch) — Screen a whole INCI list - up to 200 cosmetic ingredients by CAS, EC number, INCI name or exact chemical name - against Annexes II to VI of Regulation (EC) No 1223/2009 in one x402 settlement, all evaluated at a single date, priced per unit. One verdict per item with its published entries, conditions and mandatory label wording, plus a count per verdict. Reference of the request body, the UnifiedResponse and the error codes. - [GET /label/food/additive](https://invoket.com/docs/api/label-food-additive) — Is a food additive authorised in a given EU food category, at what maximum level and under which conditions - the Union list of Regulation (EC) No 1333/2008 (Annexes II and III) by E number or exact published name, with levels, restrictions and footnotes served word for word, quantum satis as published, and group authorisations resolved with via_group, as a UnifiedResponse. Without a food category there is no verdict. No account, no key, pay per call through x402. - [About](https://invoket.com/about) — Who operates Invoket, what the gateway does and does not do, and the official sources every check is computed from. ## Blog - [Blog](https://invoket.com/blog) — use-case articles and x402 ecosystem notes. - [Certify a supplier file: 200 SIRENs checked, signed, verifiable offline](https://invoket.com/blog/certify-a-supplier-file-before-the-e-invoicing-switchover) — An agent cleaning a French customer or supplier file before the e-invoicing switchover gets 200 sourced verdicts in one paid call — and a signed batch whose lines the buyer of the file can verify without trusting the agent that produced it. (2026-08-14) - [One settlement, N units: pricing a batch for agents](https://invoket.com/blog/one-settlement-n-units-pricing-a-batch-for-agents) — An agent checking 500 counterparties should not sign 500 payments. How a batch endpoint quotes a variable price in the 402 challenge, before the agent signs anything. (2026-08-13) - [Spend caps and BYOK: paying without handing over keys](https://invoket.com/blog/spend-caps-and-byok-paying-without-handing-over-keys) — A self-custodial x402 payer keeps the signing key on the operator's machine — which means the spend caps and the price check have to be code the operator runs. (2026-08-13) - [Token decimals: why an x402 rail stays switched off](https://invoket.com/blog/token-decimals-why-an-x402-rail-stays-switched-off) — An x402 payment requirement carries an atomic amount and an asset address, but no decimals. Why that one missing field keeps non-stablecoin rails off a seller's challenge. (2026-08-13) - [Can this company receive your e-invoice? A Peppol participant lookup](https://invoket.com/blog/can-this-company-receive-your-e-invoice) — Before an agent sends an e-invoice, GET /company/peppol returns the participant identifiers and accepted document types from a dated Peppol directory export. (2026-08-12) - [Is this EU VAT number valid right now? A live VIES check](https://invoket.com/blog/is-this-eu-vat-number-valid-right-now) — Before an agent invoices cross-border, GET /company/vat asks the member state live via VIES. Valid, invalid and unverifiable are all paid, dated answers. (2026-08-12) - [Paid 200s and unbilled 4xx: the x402 settlement line](https://invoket.com/blog/paid-200s-and-unbilled-4xx-the-x402-settlement-line) — x402 specifies how a payment settles, not what the buyer is paying for. Where Invoket draws the line: which answers are billed, which are free, and why. (2026-08-12) - [The 16 KB ceiling on a 402 challenge](https://invoket.com/blog/the-16-kb-ceiling-on-a-402-challenge) — In x402, discovery rides inside an HTTP response header — so it has a budget. Where the 16 KB ceiling comes from, what to cut first, and what to never cut. (2026-08-12) - [From an IBAN to the legal entity behind it](https://invoket.com/blog/from-an-iban-to-the-legal-entity-behind-it) — An agent holding a bank account, a security or a SIREN can name the company behind it in two calls — GLEIF identity by LEI, BIC, ISIN, SIREN or exact name plus country. (2026-08-11) - [Is this exact label wording an authorised health claim?](https://invoket.com/blog/is-this-exact-label-wording-an-authorised-health-claim) — Most of the EU claims register is refusals, not permissions. One call checks a proposed label wording against it and returns the official reason for a no. (2026-08-11) - [Is this SIREN a real, still-active company? INSEE Sirene](https://invoket.com/blog/is-this-siren-a-real-still-active-company) — An agent holding a SIREN or SIRET gets the official INSEE Sirene identity card in one paid call — legal name, active or ceased status, head office, no account. (2026-08-11) - [Check a French company for insolvency: its BODACC timeline](https://invoket.com/blog/should-an-agent-extend-credit-to-this-company) — One paid call returns a French company's BODACC timeline — insolvency judgments, deregistrations, business sales — with factual flags, and a flag it refuses to guess. (2026-08-11) - [Who controls this counterparty? The GLEIF parent hierarchy](https://invoket.com/blog/who-controls-this-counterparty) — One call returns the declared consolidation chain above a LEI — direct parent, ultimate parent, subsidiaries — and why that is not beneficial ownership. (2026-08-11) - [A full medication report for one CIS code, in one call](https://invoket.com/blog/a-full-medication-report-for-one-cis-in-one-settlement) — Identity, generics, shortages and ANSM interactions in one paid call — four sections, four different dates, and a root date that is the oldest of them, never the freshest. (2026-08-10) - [Check a medication for shortages: the French ANSM register](https://invoket.com/blog/check-a-medication-for-reported-shortages-before-ordering) — The ANSM register lists declared shortages, not pharmacy stock. That is why /medication/availability answers no_known_shortage and never "available". (2026-08-10) - [Check drug-drug interactions from the French ANSM thesaurus](https://invoket.com/blog/check-a-prescription-for-interactions-before-an-agent-acts) — Drug-drug interactions from the official French ANSM thesaurus, relayed verbatim — with an explicit coverage block, so "no interaction" never quietly means "not checked". (2026-08-10) - [Due diligence on a French company: five registers, one call](https://invoket.com/blog/due-diligence-on-a-french-company-in-one-settlement) — One SIREN, five public registers — Sirene, BODACC, VIES, Peppol, GLEIF — each block dated with its own provenance, and no risk score anywhere. (2026-08-10) - [Generate a Factur-X e-invoice that proves its own conformance](https://invoket.com/blog/generate-an-e-invoice-that-proves-its-own-conformance) — One paid call turns a business JSON into an EN 16931 invoice — CII, UBL, Peppol BIS 3.0 or a full Factur-X PDF/A-3B — that has already re-passed the official rule set before it is served. (2026-08-10) - [GEFS ensemble exceedance: how many members cross your threshold?](https://invoket.com/blog/how-many-ensemble-members-cross-your-threshold) — Averaging 31 GEFS members destroys a threshold signal weeks ahead. One paid call counts them member by member and returns a counted fraction per day, with the member count behind it. (2026-08-10) - [Is this E-number additive authorised in this food category?](https://invoket.com/blog/is-this-additive-authorised-in-this-food-category) — The EU Union list authorises a couple — additive plus food category — never an additive on its own. One offline call returns the dated verdict, the level as published, and the group behind it. (2026-08-10) - [Is this cosmetic ingredient allowed in the EU?](https://invoket.com/blog/is-this-cosmetic-ingredient-allowed-in-the-eu) — Prohibited, restricted or annex-authorised under Regulation 1223/2009 — one call returns every Annex entry that covers a substance, with the label wording served word for word. (2026-08-10) - [Is this directive transposed in this country?](https://invoket.com/blog/is-this-directive-transposed-in-this-country) — In force, applicable and transposed are three different things. One call returns the national measures a Member State notified for an EU act, and how late they were. (2026-08-10) - [Is this substance on the REACH Candidate List?](https://invoket.com/blog/is-this-substance-on-the-reach-candidate-list) — The SVHC Candidate List changes about twice a year, past every model cutoff. One offline call returns a dated verdict, the Article 57 reasons, and the duties inclusion triggers. (2026-08-10) - [Pre-flight a bank transfer before an agent sends it](https://invoket.com/blog/pre-flight-a-bank-transfer-before-an-agent-sends-it) — IBAN validity, bank and BIC, SEPA reachability, sanctions on the bank, its jurisdiction and the beneficiary name — one call, one verdict, and the reason behind it. (2026-08-10) - [Pre-flight a supplier before an agent onboards it](https://invoket.com/blog/pre-flight-a-supplier-before-an-agent-onboards-it) — Identity, insolvency, live VAT, Peppol, control chain and sanctions on the company and on its ultimate parent — one call, one verdict, and the reason behind it. (2026-08-10) - [Price an unpaid invoice under the Late Payment Directive](https://invoket.com/blog/price-an-unpaid-invoice-under-the-late-payment-directive) — An agent chasing a late B2B invoice needs a number, not a rate. One call splits statutory interest into half-year tranches and adds the article 6 fixed sum. (2026-08-10) - [Read an inbound Factur-X, CII or UBL e-invoice before paying it](https://invoket.com/blog/read-an-inbound-e-invoice-before-an-agent-pays-it) — One paid call turns a Factur-X, CII or UBL document into the EN 16931 semantic model — parties, lines, VAT, IBAN, dates — faithfully, with no OCR guesswork. (2026-08-10) - [Screen a crypto address against OFAC and EU sanctions lists](https://invoket.com/blog/screen-a-crypto-address-before-an-agent-sends-funds) — An agent paying on-chain — an x402 payTo, a payout wallet, a refund address — can clear it against OFAC and EU sanctioned addresses in one paid call. (2026-08-10) - [Sanctions-screen a name against the OFAC, EU and UN lists](https://invoket.com/blog/screen-a-name-against-four-sanctions-lists) — OFAC SDN and Consolidated, the EU and UN lists screened in full with aliases — named match types, a dated snapshot, and no counterparty data leaving the service. (2026-08-10) - [Should an agent book this invoice? The EN 16931 verdict](https://invoket.com/blog/should-an-agent-book-this-invoice-en-16931-verdict) — One paid call returns a deterministic EN 16931 verdict on an inbound e-invoice — official BR-xx rule ids, observed vs expected values, plus XRechnung and Peppol rule packs. (2026-08-10) - [EU VAT determination for a sales ledger, 200 lines per call](https://invoket.com/blog/vat-treatment-for-a-sales-ledger-in-one-settlement) — One VAT determination per line — place of supply, mechanism, rate, compulsory mentions — for up to 200 transactions in a single paid call, each sourced article by article. (2026-08-10) - [What WLTP CO2 was this car type-approved at?](https://invoket.com/blog/what-co2-was-this-car-type-approved-at) — Type-approval WLTP CO2 and technical specs for any European car, from the EU 2019/631 monitoring dataset — every figure stating the precision it was matched at. (2026-08-10) - [What CLP classification applies on the date you ask?](https://invoket.com/blog/what-clp-classification-applies-on-the-date-you-ask) — Annex VI moves by annual ATP, past every model cutoff. One call returns the CLP label in force at the date you ask, plus the change already published. (2026-08-10) - [What date does this legal deadline fall on?](https://invoket.com/blog/what-date-does-this-legal-deadline-fall-on) — Agents should not guess due dates. One call returns the deadline under an explicitly chosen computation regime, with every skipped weekend and holiday named. (2026-08-10) - [What is behind a CIS code or a US NDC?](https://invoket.com/blog/what-is-behind-a-cis-code-or-a-us-ndc) — One paid call turns a French CIS or a US NDC into an official identity card — status, prices, reimbursement rates — with the INN as the FR↔US bridge. (2026-08-10) - [What will a carte grise cost? French registration tax, by region](https://invoket.com/blog/what-will-registering-this-car-in-france-cost) — CO2 malus, weight malus and regional tax for a French registration, priced against the schedule in force on the date you supply and auditable against the law. (2026-08-10) - [Which generics can substitute for this medication?](https://invoket.com/blog/which-generics-can-substitute-for-this-medication) — A BDPM generic group is a regulatory decision, not a computed equivalence. /medication/generics returns every member, its official role and its published price. (2026-08-10) - [Which health claims may you write on an EU label?](https://invoket.com/blog/which-health-claims-may-you-write-on-an-eu-label) — An agent drafting a label needs the claims it is allowed to write, not a plausible sentence. One offline call returns the authorised wordings for a nutrient, their conditions of use, and the EFSA opinion behind each. (2026-08-10) - [A full vehicle report for one VIN: decode, recalls, Crit'Air](https://invoket.com/blog/a-full-vehicle-report-for-one-vin-in-one-settlement) — One paid call returns the VIN decode, the candidate recall campaigns and a Crit'Air class — each block with its own provenance, and an explicit coverage map. (2026-07-11) - [A day-by-day forecast series for one location, in one call](https://invoket.com/blog/a-day-by-day-forecast-series-in-one-settlement) — An agent planning energy, logistics or field work over a week needs the whole daily series, not one call per day: min/max temperature, total precipitation and peak wind for every day to the horizon. (2026-07-11) - [Can this car enter a French ZFE? Its Crit'Air class, computed offline](https://invoket.com/blog/can-this-car-enter-a-french-low-emission-zone) — Crit'Air class and in-force ZFE restrictions, computed offline from declared fuel plus Euro norm or first-registration date. No account, pay per call. (2026-07-11) - [Decode a VIN before an agent vets a used-car listing](https://invoket.com/blog/decode-a-vin-before-an-agent-vets-a-used-car-listing) — A 17-character VIN encodes manufacturer, assembly country and model year. One offline call decodes it from the public NHTSA vPIC tables, pay per call. (2026-07-11) - [Free trials for agents: the dust-amount x402 rail](https://invoket.com/blog/free-trials-for-agents-the-zero-amount-rail) — How an autonomous agent tries a paid x402 API with no account and no code change — a symbolic dust-amount rail in the 402 challenge, signed like a paid call and never settled. (2026-07-11) - [Do managed agent wallets change anything for an API seller?](https://invoket.com/blog/managed-agent-wallets-what-they-mean-for-api-sellers) — AWS AgentCore Payments and Fireblocks give agents managed x402 wallets with spend policies — growing the buyer pool for every standard x402 API. (2026-07-11) - [Screen a vendor file of IBANs in bulk, up to 500 per call](https://invoket.com/blog/screen-a-vendor-file-of-ibans-in-one-settlement) — Bulk IBAN sanctions screening before a payout or an onboarding run: up to 500 counterparty IBANs cleared for sanctioned banks and jurisdiction risk in one request, against a single dated snapshot. (2026-07-11) - [Which recalls may apply to this vehicle? NHTSA and RappelConso](https://invoket.com/blog/which-recall-campaigns-may-apply-to-this-vehicle) — Open recall data keys on make, model and year — never on one VIN. One offline call returns candidate campaigns from NHTSA and RappelConso, pay per call. (2026-07-11) - [Is anyone actually paying with x402? The mid-2026 record](https://invoket.com/blog/x402-in-mid-2026-adoption-and-governance) — Where x402 stands in mid-2026: Linux Foundation governance, the V2 spec, adoption data from Chainalysis, and the skeptical case on real demand. (2026-07-11) - [A weather forecast by GPS coordinates or city, pay per call](https://invoket.com/blog/a-forecast-for-any-location-pay-per-call) — An agent planning logistics or energy dispatch needs a forecast for a point and a lead time, not a dashboard. One paid call returns GFS — temperature, precipitation and wind — decoded from GRIB, no account. (2026-06-28) - [How far from normal was this month? The ERA5 climate anomaly](https://invoket.com/blog/how-far-from-normal-was-this-month) — ESG reports and parametric triggers need a departure from a stable baseline, not a raw reading. One paid call returns the ERA5 value, the 1991-2020 WMO normal, and the anomaly between them. (2026-06-28) - [Historical weather for any GPS point and date, from ERA5](https://invoket.com/blog/historical-weather-for-any-gps-point) — An agent often needs the weather that actually happened at a location on a date. One paid call returns ERA5 reanalysis — temperature, precipitation and wind — decoded from GRIB, no account. (2026-06-28) - [What happens between a 402 challenge and the paid response](https://invoket.com/blog/how-an-agent-discovers-and-buys-a-paid-api) — The exact x402 mechanics an autonomous agent runs to call a paid endpoint — discover the resource, get the 402, sign the payment, settle through a facilitator, and replay. (2026-06-28) - [Heating, cooling and growing degree-days for any location](https://invoket.com/blog/heating-and-cooling-degree-days-for-any-location) — Energy and agriculture agents need HDD, CDD and GDD over a period, not raw temperatures to sum themselves. One paid call computes them from ERA5 with a declared method, no account. (2026-06-28) - [How rare was this season? Percentile and return period from ERA5](https://invoket.com/blog/how-rare-was-this-season) — Reinsurance and climate risk need a ranking, not a reading — where a season ranks in the historical record. One paid call returns the empirical percentile, return period and the sample size it used. (2026-06-28) - [Is this EU act in force? Look it up in EUR-Lex by CELEX or ELI](https://invoket.com/blog/is-this-eu-act-in-force-by-celex-or-eli) — EU law addressed by its stable identifier — CELEX or ELI — instead of a title an agent may have hallucinated. One call returns the act or article text at a date, its status and its validity window. (2026-06-28) - [Is this French law still in force? Légifrance article text, dated](https://invoket.com/blog/is-this-french-law-still-in-force) — The consolidated text of a French article as it stood on a date, plus its in-force or repealed status, read from the official Légifrance LEGI base — not a paraphrase from training data. (2026-06-28) - [How does an agent find a paid API with no human in the loop?](https://invoket.com/blog/machine-readable-discovery-x402-bazaar-mcp) — How an autonomous agent finds a paid API with no human in the loop — semantic search over the CDP x402 Bazaar, paid tools exposed through MCP, and per-origin manifests. (2026-06-28) - [Validate and normalize a phone number offline, in E.164](https://invoket.com/blog/normalize-a-phone-number-offline) — Before an agent stores, dials or texts a number, it should know the number is well-formed, in which region, and what line type it is. One offline call answers all four in milliseconds. (2026-06-28) - [ETCCDI climate indices for parametric-insurance triggers](https://invoket.com/blog/parametric-insurance-triggers-for-any-location) — A parametric policy pays on a measured threshold — frost days, a one-day rainfall max, a wind gust. One paid call returns standard ETCCDI climate indices from ERA5, with the thresholds it applied. (2026-06-28) - [Repair an invalid IBAN: check digits and OCR near-misses](https://invoket.com/blog/recover-a-garbled-iban-from-ocr-before-paying) — An OCR pass over a scanned invoice produces a near-miss IBAN — one wrong digit, an unreadable character. One paid call recomputes the check digits and recovers the missing characters before an agent pays the wrong account. (2026-06-28) - [Monthly and seasonal climate summaries for any GPS point](https://invoket.com/blog/season-summaries-for-any-gps-point) — A reporting agent needs the climate balance of a month or season — mean temperature, total rainfall, mean wind — not 90 daily lookups to roll up itself. One paid call returns it from ERA5. (2026-06-28) - [What changed in this law between two dates?](https://invoket.com/blog/what-changed-in-this-law-between-two-dates) — For due diligence and regulatory watch an agent needs the text delta of a statute between two dates, not two full texts to diff itself. One call returns the structured segments and a unified patch. (2026-06-28) - [When did this law last change? The version history of an article](https://invoket.com/blog/when-did-this-law-last-change) — The version timeline of a French or EU article — every version with its dates and status — in one compact call, so an agent watching for regulatory drift never re-reads the full text to spot it. (2026-06-28) - [Why an API key does not work for an autonomous agent](https://invoket.com/blog/why-agents-pay-per-call-instead-of-api-keys) — Autonomous agents are a poor fit for accounts, API keys and card subscriptions. The HTTP 402 status code plus a wallet lets an agent pay per call with no onboarding — here is why that model fits. (2026-06-28) - [Which agentic-payment rail can a seller accept today?](https://invoket.com/blog/x402-vs-ap2-vs-stripe-mpp-choosing-rails-2026) — A sourced, neutral comparison of the three agentic-payment standards — x402, Google's AP2, and the Stripe/Tempo Machine Payments Protocol — from the point of view of a developer wiring an endpoint. (2026-06-28) - [Validate an IBAN before an agent pays: bank, BIC and SEPA reach](https://invoket.com/blog/verify-a-bank-account-before-an-agent-pays) — IBAN validation with no account: check digits, the bank and BIC behind the account, and whether it is reachable for the SEPA scheme you intend to use. One paid call, answered offline. (2026-06-27) - [Sanctions-screen a beneficiary IBAN before an agent pays it](https://invoket.com/blog/screen-an-iban-before-an-agent-pays) — IBAN sanctions screening in one paid call: the issuing bank cleared against the OFAC, EU and UN lists and its jurisdiction rated for risk — plus how to read that verdict without overclaiming. (2026-06-24) ## API / Endpoints ### Before your agent commits — every check in one call Composite pre-flights that run a whole family of checks in one call and return a single verdict you can recompute — a check that did not happen never passes, and every block carries its own provenance. - [POST /preflight/invoice-payment](https://api.invoket.com/preflight/invoice-payment) — Before your agent pays a supplier invoice: send the invoice file itself (Factur-X PDF, CII or UBL XML) and get one verdict - pay, hold, stop, insufficient_coverage - over the document's EN 16931 compliance, the supplier in the INSEE Sirene and BODACC registers, live EU VAT (VIES), sanctions screening of the party actually credited, VAT consistency and the statutory due date. Every reason names the block and the source it comes from. ($0.25, free trial: 1 free call per day per payer address) - [GET /preflight/payment](https://api.invoket.com/preflight/payment) — Run every check on a bank transfer before your agent executes it, in one call: IBAN validity, bank and BIC from national registries, SEPA scheme reachability from the EPC register, sanctions screening of the bank and of its jurisdiction (OFAC, EU, UN, FATF), and screening of the beneficiary name against the OFAC, EU and UN designation lists. Returns a verdict - stop, review, insufficient_coverage, ok - with every reason attached to its block and its dated source. ($0.25, free trial: 1 free call per day per payer address) - [GET /preflight/supplier](https://api.invoket.com/preflight/supplier) — Run every check on a supplier before you onboard, pay or invoice it, in one call: identity and status (INSEE Sirene or GLEIF), BODACC insolvency and deregistration announcements, live EU VAT validation (VIES), Peppol e-invoicing reachability, the declared control chain, and OFAC/EU/UN sanctions screening of both the company and its ultimate parent. Returns a verdict - stop, review, insufficient_coverage, ok - with every reason attached to its block and source. ($0.25, free trial: 1 free call per day per payer address) - [POST /preflight/x402-seller](https://api.invoket.com/preflight/x402-seller) — Before your agent signs an x402 payment to a counterparty it does not know: submit the 402 challenge you received and get one verdict - ok, review, stop, insufficient_coverage - over the pay-to address screened against the OFAC, EU and UN designation lists, the amount claimed compared with what that resource publishes in the public CDP Bazaar census, and whether the resource is listed at all. Every reason names its block and its source. ($0.25, free trial: 1 free call per day per payer address) ### Before your agent pays Bank-account checks backed by national bank registries, the EPC register and the OFAC/EU/UN & FATF lists — every response carries its provenance. - [GET /iban/repair](https://api.invoket.com/iban/repair) — Before your agent pays an IBAN taken from OCR or invoice ingestion: fix a broken or garbled IBAN — recompute check digits, recover unreadable characters (?) and rank candidates by known bank from national bank registries ($0.01, free trial: 1 free call per day per payer address) - [POST /iban/repair/batch](https://api.invoket.com/iban/repair/batch) — Before a payment run over OCR or invoice data: fix up to 500 broken or garbled IBANs in one call, within a total repair-effort budget — recompute check digits, recover unreadable characters and rank candidates by known bank from national bank registries. A batch whose combined '?' search space is too large is rejected with 400 BATCH_BUDGET_EXCEEDED and never charged: send fewer IBANs per call, or fewer '?' per IBAN ($0.005 + $0.005/iban) - [GET /iban/resolve](https://api.invoket.com/iban/resolve) — Before your agent pays a new bank account: validate the IBAN (all countries), resolve its bank and BIC from national bank registries, and check SEPA reachability per scheme (SCT, SCT Inst, SDD Core/B2B) against the EPC register ($0.01, free trial: 1 free call per day per payer address) - [POST /iban/resolve/batch](https://api.invoket.com/iban/resolve/batch) — Before a payment run: validate up to 500 IBANs in one call, resolve bank and BIC from national bank registries, and check SEPA reachability per scheme (SCT, SCT Inst, SDD Core/B2B) against the EPC register ($0.005 + $0.005/iban) - [GET /iban/screen](https://api.invoket.com/iban/screen) — Before your agent onboards or pays a counterparty: screen the bank account for sanctions — flags sanctioned banks (BIC) and high-risk jurisdictions against the official OFAC, EU, UN and FATF lists, for KYB/AML compliance ($0.01, free trial: 1 free call per day per payer address) - [POST /iban/screen/batch](https://api.invoket.com/iban/screen/batch) — Before onboarding or a payment run: screen up to 500 IBANs in one call for sanctioned banks (BIC) and high-risk jurisdictions against the official OFAC, EU, UN and FATF lists, for KYB/AML compliance ($0.005 + $0.005/iban) ### Before your agent trusts a name or an address Sanctions screening backed by the OFAC SDN and Consolidated lists, the EU financial sanctions list and the UN Security Council list — every response carries its provenance. - [GET /screen/address](https://api.invoket.com/screen/address) — Before your agent sends funds to a crypto address: check it against the sanctioned addresses published by OFAC (SDN and Consolidated) AND by the EU financial sanctions list - multi-list, where free feeds are OFAC-only - returning the designated entity, its programmes and its designation date behind every hit. Bitcoin, EVM, Tron, Solana and Monero. No transaction analysis, no clustering, no derived addresses, no risk score. ($0.01, free trial: 1 free call per day per payer address) - [POST /screen/address/batch](https://api.invoket.com/screen/address/batch) — Before a payout run or a sweep: check up to 500 crypto addresses in one call against the sanctioned addresses published by OFAC (SDN and Consolidated) AND by the EU financial sanctions list - multi-list, where free feeds are OFAC-only - each hit carrying the designated entity, its programmes and its designation date. A malformed address is flagged at its position instead of failing the batch. No transaction analysis, no clustering, no risk score. ($0.005 + $0.005/item) - [GET /screen/entity](https://api.invoket.com/screen/entity) — Before your agent onboards a counterparty, signs a contract or releases a payment: screen a company or person name against the official designation lists in full - OFAC SDN and Consolidated, the EU financial sanctions list, the UN Security Council list - 26,666 entities with their aliases, programmes and designation dates. Deterministic name matching, every hit sourced to the list that published it. PEP screening, adverse media and transaction analysis are not covered. ($0.01, free trial: 1 free call per day per payer address) - [POST /screen/entity/batch](https://api.invoket.com/screen/entity/batch) — Before onboarding a supplier book or running a payout list: screen up to 200 company or person names in one call against the official designation lists in full - OFAC SDN and Consolidated, the EU financial sanctions list, the UN Security Council list - one sourced verdict per name, with aliases, programmes and designation dates. A malformed item is flagged at its position instead of failing the batch. PEP screening, adverse media and transaction analysis are not covered. ($0.005 + $0.005/item) ### Before your agent messages Phone-number checks backed by libphonenumber (offline) — every response carries its provenance. - [GET /phone/validate](https://api.invoket.com/phone/validate) — Before your agent stores or messages a phone number: validate and normalize it offline — E.164 formatting, region, national format and line type from Google's libphonenumber metadata, no network call ($0.01, free trial: 1 free call per day per payer address) ### Before your agent advises or signs Law-in-force checks backed by LEGI (Légifrance), EUR-Lex and the official public-holiday calendars — every response carries its provenance. - [GET /legal/article](https://api.invoket.com/legal/article) — Before your agent cites, advises on or drafts against a French law: check the article is in force at a given date — consolidated text, status (in force / repealed / deferred) and validity dates, from the official Légifrance LEGI dataset. Covers 12 major French codes and statutes (civil, labor, commercial, tax/CGI and more). ($0.01, free trial: 1 free call per day per payer address) - [POST /legal/article/batch](https://api.invoket.com/legal/article/batch) — Before your agent signs off a contract review or a due-diligence memo: check that up to 50 legal citations are still in force at a given date in one call — consolidated text, status and validity dates per reference, from the official LEGI (French law) and EUR-Lex (EU law) datasets. Covers 12 major French codes and statutes and key EU acts (GDPR, DSA, AI Act, MiCA and more). ($0.005 + $0.005/ref) - [GET /legal/deadline](https://api.invoket.com/legal/deadline) — Before your agent commits to a filing date, a notice period or a contractual term: the exact due date of a time limit under an explicitly chosen computation regime — calendar days, calendar days with rollover, business days (Mon-Sat), working days (Mon-Fri), clear days (jours francs), months or years — with every weekend and public holiday it skipped, each one named, the end-of-month and next-working-day rules it applied, and the step-by-step reasoning. Holiday calendars for 10 countries: France from the official State dataset, the nine others from a community reference dataset, and every answer says which authority it used. The regime is required and never inferred from the legal matter. ($0.01, free trial: 1 free call per day per payer address) - [GET /legal/diff](https://api.invoket.com/legal/diff) — Before your agent updates a contract clause or a compliance rule that depends on a law: see exactly what changed in a French or EU article between two dates — resolves the version in force at each date, from the official LEGI and EUR-Lex datasets, and returns a word-level diff plus a git-style unified patch with both versions' metadata. Covers 12 major French codes and statutes and key EU acts (GDPR, DSA, AI Act, MiCA and more). ($0.01, free trial: 1 free call per day per payer address) - [POST /legal/diff/batch](https://api.invoket.com/legal/diff/batch) — Before your agent re-runs a contract review or due diligence after time has passed: a structured diff of the consolidated text — word-level segments plus a git-style unified patch — for up to 50 French or EU article references, each between its own two dates, in one call, from the official LEGI and EUR-Lex datasets. Covers 12 major French codes and statutes and key EU acts (GDPR, DSA, AI Act, MiCA and more). ($0.005 + $0.005/ref) - [GET /legal/eu-act](https://api.invoket.com/legal/eu-act) — Before your agent advises on EU compliance or cites EU law: check an act or article is in force at a given date, by CELEX or ELI identifier — consolidated text, status, validity dates and the staggered date it becomes APPLICABLE (in force is not the same thing: the AI Act is in force since 2024-08-01, but its Article 50 only applies from 2026-08-02), from the official EUR-Lex dataset. Covers key EU digital and financial acts (GDPR, DSA, AI Act, MiCA and more). ($0.01, free trial: 1 free call per day per payer address) - [GET /legal/history](https://api.invoket.com/legal/history) — Before your agent relies on a stored legal citation or watches a provision for change: the full version timeline of a French or EU article — each version's status (in force, repealed, superseded, deferred) and validity dates, from the official LEGI and EUR-Lex datasets — to detect exactly when it changed. Covers 12 major French codes and statutes and key EU acts (GDPR, DSA, AI Act, MiCA and more). ($0.01, free trial: 1 free call per day per payer address) - [POST /legal/history/batch](https://api.invoket.com/legal/history/batch) — Before your agent re-certifies a legal knowledge base or monitors a portfolio of citations: the version timeline (status and validity dates) of up to 100 French or EU article references in one call, from the official LEGI and EUR-Lex datasets, to detect which references changed and when. Covers 12 major French codes and statutes and key EU acts (GDPR, DSA, AI Act, MiCA and more). ($0.005 + $0.005/ref) - [GET /legal/transposition](https://api.invoket.com/legal/transposition) — Before your agent relies on an EU directive producing effects in a Member State: in force, applicable and transposed are three different things. This returns the national implementing measures a Member State has notified to the European Commission for an EU act — each measure with its national act type, title, national reference, publication and notification dates — plus the published transposition deadline and how many days the first notification came after it (positive means late). Ask for one country, or omit it for a one-line verdict on each of the 30 EEA States. What is served is a register of notifications, never an assessment of conformity. ($0.01, free trial: 1 free call per day per payer address) ### Before your agent plans or insures Weather and climate checks backed by Copernicus ERA5, NOAA GFS/GEFS and the WMO 1991-2020 normals — every response carries its provenance. - [GET /climate/aggregate](https://api.invoket.com/climate/aggregate) — Before your agent writes a seasonal report, audits an ESG claim or reconciles a weather-linked contract: period climate summaries for any GPS point or city over a date range — mean, min and max temperature, total precipitation and mean wind — from the Copernicus ERA5 reanalysis (temperature and precipitation: rolling 30-year window; wind: rolling ~5-year window), with the served grid cell and a coverage flag. ($0.01, free trial: 1 free call per day per payer address) - [GET /climate/anomaly](https://api.invoket.com/climate/anomaly) — Before your agent verifies a 'hotter than normal' claim, reports climate exposure or settles an anomaly-based trigger: how far observed temperature, precipitation and wind departed from the WMO 1991-2020 climatological normal, for any GPS point or city over a date range within the ingested Copernicus ERA5 window (rolling 30 years for temperature and precipitation, rolling ~5 years for wind). ($0.01, free trial: 1 free call per day per payer address) - [GET /climate/degree-days](https://api.invoket.com/climate/degree-days) — Before your agent sizes heating or cooling demand, settles an energy contract or models crop growth: heating, cooling and growing degree-days (HDD/CDD/GDD) for any GPS point or city over a date range, computed from Copernicus ERA5 daily mean temperature (rolling 30-year window) with the NWS/EIA/WMO mean-temperature method. ($0.01, free trial: 1 free call per day per payer address) - [GET /climate/indices](https://api.invoket.com/climate/indices) — Before your agent prices or settles a parametric-insurance trigger, or screens weather risk for agriculture and construction: climate-event indices for any GPS point or city over a date range — frost and summer days, tropical nights, dry spells, heavy-rain days, max one-day rainfall, total precipitation and peak gust — ETCCDI/Climdex definitions on true daily Tmin/Tmax from the Copernicus ERA5 reanalysis (precipitation-based indices: rolling 30-year window; Tmin/Tmax- and gust-based indices: rolling ~5-year window). ($0.01, free trial: 1 free call per day per payer address) - [GET /climate/point](https://api.invoket.com/climate/point) — Before your agent verifies a weather-dependent claim, backtests a parametric trigger or checks what conditions a site or shipment faced: daily 2 m temperature, total precipitation and 10 m wind at any GPS point or city for a past date, from the Copernicus ERA5 reanalysis — temperature and precipitation cover a rolling 30-year window, wind a rolling ~5-year window — with the served grid cell and a coverage flag. ($0.01, free trial: 1 free call per day per payer address) - [POST /climate/point/batch](https://api.invoket.com/climate/point/batch) — Before your agent backtests parametric triggers over a site portfolio, verifies claims across parcels or scores weather exposure for an asset fleet: daily 2 m temperature, total precipitation and 10 m wind for up to 500 point/date queries in one call, from the Copernicus ERA5 reanalysis (temperature and precipitation: rolling 30-year window; wind: rolling ~5-year window). Each query takes lat+lon or a city name; an uncovered item is flagged via per-item coverage instead of failing the batch. ($0.005 + $0.005/query) - [GET /climate/return-period](https://api.invoket.com/climate/return-period) — Before your agent underwrites, reinsures or stress-tests a climate exposure: rank a target year's season against 30 years of a location's climate history (Copernicus ERA5 reanalysis, WMO-standard climatological period) — percentile, empirical return period and sample size, for any GPS point or city. Temperature and precipitation cover a rolling 30-year window; every verdict reports its actual sample size via sample_years and coverage. ($0.01, free trial: 1 free call per day per payer address) - [GET /weather/forecast](https://api.invoket.com/weather/forecast) — Before your agent schedules a delivery, plans outdoor work or hedges short-term weather exposure: a point forecast of 2 m temperature, precipitation and 10 m wind — plus opt-in convective, humidity, cloud and snow variables — for any GPS point or city. Deterministic NOAA GFS at 0.25 deg to 16 days (384 h), NOAA GEFS ensemble mean at 0.5 deg to 35 days (840 h) — beyond 16 days the value is an ensemble mean with smoothed extremes: trend, not threshold triggers. The lead selector is optional (omitted, the forecast defaults to the current analysis time) and the response names the model that served it and the exact forecast step. ($0.01, free trial: 1 free call per day per payer address) - [POST /weather/forecast/batch](https://api.invoket.com/weather/forecast/batch) — Before your agent plans across a whole network — fleet routing, multi-site operations, portfolio hedging: 2 m temperature, precipitation and 10 m wind forecasts for up to 500 point + lead-time queries in one call, from the deterministic NOAA GFS run (~16 days). Each query takes lat+lon or a city name plus an optional lead selector (omitted, it defaults to the current analysis time); an uncovered item is flagged via per-item coverage instead of failing the batch. ($0.005 + $0.005/query) - [GET /weather/forecast/daily](https://api.invoket.com/weather/forecast/daily) — Before your agent plans a multi-day operation — logistics, construction, an event, crop work: a day-by-day forecast for any GPS point or city, with daily minimum and maximum 2 m temperature, total precipitation and peak 10 m wind per UTC calendar day, from today to the end of the NOAA GFS window (~16 days), extendable to 35 days on the NOAA GEFS ensemble mean — those extra days are an average of ~30 members, so their extremes are smoothed: trend, not threshold triggers. Each day names the model that served it and carries a coverage flag. ($0.01, free trial: 1 free call per day per payer address) - [GET /weather/forecast/exceedance](https://api.invoket.com/weather/forecast/exceedance) — Before your agent commits to a rain-or-shine decision two to five weeks out — a parametric payout, a shipping window, a harvest or concrete slot: how many NOAA GEFS ensemble members cross your threshold on each day of the ensemble tail. Ask 'at least 30 mm of rain in a day', 'wind at or above 15 m/s' or 'a day at or below 0 deg C' for any GPS point or city, and get one counted fraction per UTC calendar day with the member count behind it. Ask days= (up to 20) for the whole tail. This is what the ensemble MEAN served by GET /weather/forecast cannot answer: averaging the members smooths extremes away, so a mean day essentially never crosses a threshold. What is served here is a raw counted fraction, not a calibrated probability — no bias correction or statistical post-processing is applied, and members_total is served on every day so the number can be audited. ($0.01, free trial: 1 free call per day per payer address) ### Before your agent buys a vehicle Vehicle checks backed by NHTSA vPIC, RappelConso, the EU CO2 monitoring dataset (Regulation (EU) 2019/631), the French registration-tax schedules and the official Crit'Air tables — every response carries its provenance. - [GET /vehicle/co2](https://api.invoket.com/vehicle/co2) — Before your agent prices, imports or compares a European vehicle: get its type-approval CO2 emissions and technical characteristics — WLTP g/km with its dispersion, fuel, engine capacity, power and mass — from the official EU CO2 monitoring data (Regulation (EU) 2019/631, new registrations 2018-2022), keyed by type-approval number or by make, model and year. Every answer states the precision it was matched at ($0.01, free trial: 1 free call per day per payer address) - [GET /vehicle/critair](https://api.invoket.com/vehicle/critair) — Before your agent plans a route or advises on a vehicle in France: compute its Crit'Air class and current low-emission-zone (ZFE) restrictions from the official classification tables (arrêté du 21 juin 2016), from declared fuel and Euro norm or first registration date ($0.01, free trial: 1 free call per day per payer address) - [GET /vehicle/lookup](https://api.invoket.com/vehicle/lookup) — Turn a vehicle designation an agent actually holds - 'Renault Clio V', 'VW Golf 2020' - into the make/model/year key that /vehicle/recalls and /vehicle/co2 require, spelled the way the referential spells it. Sources: NHTSA and RappelConso recall campaigns, EEA European registration aggregates. Closed verdict: exact, ambiguous or none. Several model years for one model is the normal answer, and every candidate is returned - we never pick one for you. ($0.01, free trial: 1 free call per day per payer address) - [GET /vehicle/prepurchase](https://api.invoket.com/vehicle/prepurchase) — Before your agent buys a used vehicle: one VIN returns a decision - ok, review, stop, insufficient_coverage - over open recall campaigns (NHTSA, RappelConso), type-approval CO2 from the European Environment Agency, Crit'Air low-emission-zone class and what the French registration certificate would cost. Every reason names its block; the answer states what it cannot attest - service history, mileage, liens, accident damage. ($0.25, free trial: 1 free call per day per payer address) - [GET /vehicle/recalls](https://api.invoket.com/vehicle/recalls) — Before your agent buys, sells or services a vehicle: list manufacturer recall campaigns that may affect it, consolidated from official NHTSA and RappelConso sources, matched by make, model and year or from a VIN. An empty list means no known recall. Results are paged at 200 campaigns, one paid call per page: the busiest brands (~900 campaigns) take 5 ($0.01, free trial: 1 free call per day per payer address) - [GET /vehicle/report](https://api.invoket.com/vehicle/report) — Before your agent buys or appraises a vehicle: one consolidated report from a VIN — decode, candidate recall campaigns, type-approval CO2, the French registration tax it would cost and, from declared characteristics, Crit'Air / low-emission-zone status — from official NHTSA vPIC, RappelConso, EU 2019/631 and French tax sources, each block with its own provenance and honest coverage ($0.10, free trial: 1 free call per day per payer address) - [GET /vehicle/tax](https://api.invoket.com/vehicle/tax) — Before your agent buys, imports or quotes a vehicle in France: compute what registering it costs — CO2 malus, weight malus and the regional certificate tax — against the official schedule in force on the registration date you supply, not the one a model remembers. Coverage is France only; each item states its bracket, its threshold and the exemption applied with its legal article, and the total disappears rather than being partial ($0.01, free trial: 1 free call per day per payer address) - [GET /vehicle/vin/decode](https://api.invoket.com/vehicle/vin/decode) — Before your agent buys, lists or insures a vehicle: decode any 17-character VIN offline — manufacturer, country and region of build, model year, check digit validity and deterministic attributes from the official NHTSA vPIC tables ($0.01, free trial: 1 free call per day per payer address) ### Before your agent books an invoice E-invoice checks backed by the EN 16931 semantic model and the official Factur-X, CII and UBL specifications, plus the fiscal verdicts of Directive 2006/112/EC (VAT) and Directive 2011/7/EU (late payment) — every response carries its provenance. - [POST /invoice/generate](https://api.invoket.com/invoice/generate) — Before your agent bills a customer: get the invoice document itself, ready to send and archive - not a verdict on someone else's file. Post simple business JSON (parties, lines, VAT), receive XML already cleared by the full official EN 16931 rule set, totals computed, inconsistent input refused field by field. CII by default (Factur-X EN 16931 URN), syntax=ubl for UBL 2.1, ruleset=peppol for Peppol BIS Billing 3.0. vat_treatment writes the reverse charge or intra-Community exemption mention. ($0.10, free trial: 1 free call per day per payer address) - [POST /invoice/generate-pdf](https://api.invoket.com/invoice/generate-pdf) — Before your agent bills a customer: get the whole Factur-X file it sends and the customer reads - a PDF/A-3B embedding the EN 16931 CII XML, the hybrid invoice mandated by the French 2026-2027 reform. Post simple business JSON (parties, lines, VAT), get a file ready to send and archive: totals computed, inconsistent input refused field by field, the official rule set cleared and the embedded XML re-read byte for byte. vat_treatment writes the reverse charge or intra-Community exemption mention. ($0.10, free trial: 1 free call per day per payer address) - [POST /invoice/late-payment](https://api.invoket.com/invoice/late-payment) — Before your agent sends a dunning letter or books a receivable: what is legally due on an unpaid B2B invoice. Post the claim (amount, currency, country, due date - or invoice date plus agreed terms - and payment date) and get late-payment interest computed PERIOD BY PERIOD under Directive 2011/7/EU: the reference rate changes every 1 January and 1 July, so a claim straddling several half-years is split into tranches, each at the rate of its own half-year - applying today's rate to the whole period is simply wrong. Statutory rate = ECB main refinancing rate (NBP reference rate for Poland) plus the national margin, with the national transposition actually applied: France 10 points, Germany 9 on the Basiszinssatz base, Belgium rounding the reference up to the half point, 8 points elsewhere. Covers FR, DE, ES, IT, NL, BE, PT and PL, with an explicit fallback to the Directive minimum for the other Member States - a national rule is never guessed. Adds the fixed recovery compensation of Art. 6 (EUR 40, tiered in Poland), each component cited to its article. Paying on time is a valid answer, not an error. ($0.01, free trial: 1 free call per day per payer address) - [POST /invoice/read](https://api.invoket.com/invoice/read) — Read any EU structured e-invoice in one call: post a Factur-X PDF, CII or UBL XML and get faithful structured data - parties with SIREN/VAT identifiers, line items, VAT breakdown, totals, payment IBAN and due dates. Covers the three formats mandated by the French 2026-2027 e-invoicing reform (EN 16931). No account, no key, no OCR guesswork. ($0.01, free trial: 1 free call per day per payer address) - [POST /invoice/validate](https://api.invoket.com/invoice/validate) — Should you accept this invoice? Post a Factur-X PDF, CII or UBL XML and get a deterministic EN 16931 verdict: XSD conformance, every violated business rule by its official BR id with observed vs expected values, Factur-X profile consistency, and syntax checks on IBAN, SIREN/SIRET and VAT identifiers. The formats mandated by the French 2026-2027 reform. A non-conformant invoice is a paid, documented answer - no LLM guesswork. Add ?ruleset=xrechnung or ?ruleset=peppol to layer a national CIUS pack on top of the EN 16931 base: XRechnung (German BR-DE rules, DE mandate) or Peppol BIS Billing 3.0 (BE mandate, live since 2026-04), each violation sourced by its official id (BR-DE-xx, PEPPOL-EN16931-Rxxx). Each verdict also carries informational VAT consistency checks (INV-VAT-*), never mixed with the normative BR ids. ($0.01, free trial: 1 free call per day per payer address) - [POST /invoice/vat-treatment](https://api.invoket.com/invoice/vat-treatment) — Before your agent issues or books a cross-border invoice: who charges the VAT, under which mechanism, where the supply is taxed and with which compulsory wording. Post one transaction (countries, goods or services, business or consumer customer, supply kind, date, optional amount) and get a determination sourced article by article under Directive 2006/112/EC: place of supply, person liable, standard VAT, reverse charge, intra-Community exemption or out of scope, the rate in force at that date, and the exact invoice mentions to print. An invoice missing its reverse-charge mention passes the EN 16931 rules and is still refused by the tax authority - the check /invoice/validate cannot make. The customer's VAT number is taken AS DECLARED (zero network): verify it live with /company/vat. Uncovered regimes (OSS/IOSS, import VAT, margin schemes, triangulars) come back as a motivated undetermined, never a plausible default. ($0.01, free trial: 1 free call per day per payer address) - [POST /invoice/vat-treatment/batch](https://api.invoket.com/invoice/vat-treatment/batch) — A sales ledger or an order book judged in one call: up to 200 transactions, one VAT determination each, one settlement. Same verdicts as /invoice/vat-treatment - place of supply, person liable, standard VAT, reverse charge, intra-Community exemption or out of scope, the rate in force at the date of each line, the compulsory invoice mentions and the articles of Directive 2006/112/EC they rest on. A malformed item is reported at its position instead of failing the batch; only an empty or oversized batch is a 400. Legal bases and caveats are shared across the batch and cited by key, and the summary counts the five mechanisms. Customer VAT numbers are taken AS DECLARED (zero network by design) - verify them with /company/vat; uncovered regimes (OSS/IOSS, import VAT, margin schemes, triangular transactions) come back as a motivated undetermined, never a plausible default. ($0.005 + $0.005/item) ### Before your agent onboards a counterparty Counterparty due-diligence checks backed by the official INSEE Sirene register, the BODACC gazette, VIES, the Peppol directory and the global GLEIF LEI reference — every response carries its provenance. - [GET /company/events](https://api.invoket.com/company/events) — Check a French company for official insolvency, deregistration and business-sale announcements before you invoice or extend credit: dated event timeline and factual flags from the official BODACC gazette, by SIREN. An empty list is a paid answer: no known announcement over the covered window. No account, no key. ($0.01, free trial: 1 free call per day per payer address) - [GET /company/lei](https://api.invoket.com/company/lei) — Identify the company behind a bank identifier, a French SIREN, an ISIN or an exact name before you onboard, pay or invoice it: official GLEIF LEI identity - legal name, jurisdiction, entity and registration status, addresses, national registration number, mapped BICs and ISINs. Lookup by LEI, BIC (8 or 11), ISIN, SIREN, or exact legal name plus country. Homonyms are returned as candidates, never silently resolved. ($0.01, free trial: 1 free call per day per payer address) - [GET /company/ownership](https://api.invoket.com/company/ownership) — Find out who controls a counterparty before you onboard, pay or invoice it: the declared control chain from the official GLEIF Level 2 reference, by LEI - direct parent, ultimate parent, the dated chain between them, and direct subsidiaries. A declared absence of parent comes back with its official reason, never as an empty block. This is the accounting consolidation parent, not beneficial ownership. ($0.01, free trial: 1 free call per day per payer address) - [GET /company/peppol](https://api.invoket.com/company/peppol) — Check whether a company can receive e-invoices on the Peppol network before you send one: participant identifiers and accepted document types from the official Peppol Directory export, by SIREN, SIRET or explicit Peppol participant ID. 'Not registered' is a paid, dated answer. No account, no key. ($0.01, free trial: 1 free call per day per payer address) - [GET /company/report](https://api.invoket.com/company/report) — Full counterparty due-diligence on a French company in one paid call, by SIREN: Sirene identity and status, dated BODACC insolvency/deregistration/sale announcements, live EU VAT validation (VIES) and Peppol e-invoicing reachability - each block with its own provenance. The pre-action check before you invoice, pay or onboard. No account, no key. ($0.10, free trial: 1 free call per day per payer address) - [GET /company/resolve](https://api.invoket.com/company/resolve) — Verify a French company before you invoice, pay or onboard it: legal name, active/ceased status, legal form, NAF activity, workforce band, creation date and head-office address from the official INSEE Sirene register (30M+ legal units, monthly snapshot). Lookup by SIREN or SIRET. No account, no key, pay per call. ($0.01, free trial: 1 free call per day per payer address) - [GET /company/vat](https://api.invoket.com/company/vat) — Validate any EU VAT number live against the official European Commission VIES service before you invoice cross-border, or derive and check the French VAT number from a SIREN. Returns valid/invalid or an honest 'unverifiable' when the member state is down - syntax check always included. No account, no key. ($0.01, free trial: 1 free call per day per payer address) ### Before your agent acts on a prescription Medication checks backed by the French BDPM (ANSM/HAS) register and the US openFDA and RxNorm datasets - every response carries its provenance. - [GET /medication/availability](https://api.invoket.com/medication/availability) — Check a medication's availability before your agent orders or substitutes it: shortage reports from the French ANSM (data.ANSM) by CIS code or substance (INN/DCI) - status (rupture, risque_rupture, tension, remise_a_disposition, arret_commercialisation, or no_known_shortage), report dates, expected return and the official ANSM report URL. Honest by design: ANSM only records reported shortages, so the absence of a report is never a stock guarantee. French market scope: a US NDC key returns an honest FR-only coverage note. No account, no key, pay per call. ($0.01, free trial: 1 free call per day per payer address) - [GET /medication/generics](https://api.invoket.com/medication/generics) — Find the French BDPM generic group of a medication before your agent substitutes or sources it: given a CIS code, exact name or DCI substance, returns the group's principle brand (princeps) and every equivalent generic, each with its role (princeps/generique), official name and pack-level public price and reimbursement rate when the BDPM publishes them. French (BDPM) scope: a US NDC key returns an honest FR-only coverage note. No account, no key, pay per call. ($0.01, free trial: 1 free call per day per payer address) - [POST /medication/interactions](https://api.invoket.com/medication/interactions) — Check drug-drug interactions against the authoritative French ANSM thesaurus before your agent acts on a prescription or an order: post 2+ medications (CIS code, US NDC, INN/DCI substance or ANSM class) and get every published interaction between them - constraint level (contre_indication, association_deconseillee, precaution_emploi, a_prendre_en_compte), management advice and mechanism exactly as published by ANSM, plus honest coverage of anything that could not be compared. US drugs join via the INN substance bridge. No account, no key, pay per call. ($0.01, free trial: 1 free call per day per payer address) - [GET /medication/lookup](https://api.invoket.com/medication/lookup) — Turn a medication name an agent actually holds - 'Doliprane 1000', 'Tylenol', 'paracetamol' - into the CIS code, product NDC or canonical active-substance identifier that /medication/resolve, /medication/interactions, /medication/generics and /medication/availability require. Sources: the French BDPM register and openFDA/RxNorm. Closed verdict: exact, ambiguous or none. One brand name covering several strengths and forms is the normal answer, and every candidate is returned - we never pick one for you. ($0.01, free trial: 1 free call per day per payer address) - [GET /medication/report](https://api.invoket.com/medication/report) — One consolidated medication report before your agent acts on a prescription or an order, by French CIS code or US NDC: official BDPM identity with pack-level price and reimbursement, INN-normalized substances, BDPM generic group, ANSM shortage status, and ANSM-thesaurus drug-drug interactions between the subject and an optional co-medication list (with=, comma-separated CIS/NDC/DCI). Every section carries its own source and date; honest coverage. No account, no key, pay per call. ($0.10, free trial: 1 free call per day per payer address) - [GET /medication/resolve](https://api.invoket.com/medication/resolve) — Resolve a medication before your agent acts on a prescription or an order: official identity from the French BDPM registry (ANSM/HAS) by CIS code, exact name or DCI substance - authorization and marketing status, active substances normalized to INN (the FR-US bridge), pack-level price and reimbursement rate, generic group. Same endpoint resolves US drugs by NDC or name (openFDA/RxNorm). No account, no key, pay per call. ($0.01, free trial: 1 free call per day per payer address) ### Before your agent ships an EU label EU labelling verdicts backed by the ECHA Annex VI harmonised classification (CLP) versioned by ATP, the cosmetics Regulation (EC) No 1223/2009 and the food-additive Union list of Regulation (EC) No 1333/2008 — every response carries its provenance. - [GET /label/chem/classify](https://api.invoket.com/label/chem/classify) — Before your agent approves a substance for an EU label or safety data sheet: the harmonised classification and labelling from Annex VI of the CLP regulation (ECHA), by CAS, EC number or exact name - hazard classes with H statements, GHS pictograms, signal word, concentration limits, versioned by ATP: the entry in force at the queried date, plus the upcoming change when a published but not-yet-applicable ATP modifies it. Absence from Annex VI returns an explicit self-classification verdict. ($0.01, free trial: 1 free call per day per payer address) - [POST /label/chem/classify/batch](https://api.invoket.com/label/chem/classify/batch) — Before your agent clears a BOM or a formulation for the EU market: screen up to 200 substances in one call against Annex VI of the CLP regulation (ECHA) - one harmonised-classification verdict per item (CAS, EC number or exact name) with H statements, GHS pictograms, signal word, and the ATP version in force plus upcoming ATP changes; a malformed item is flagged at its position instead of failing the batch, and an unlisted substance gets an explicit self-classification verdict. ($0.005 + $0.005/item) - [GET /label/chem/svhc](https://api.invoket.com/label/chem/svhc) — Before your agent clears a substance, an article or a supply-chain declaration for the EU market: is it on the ECHA Candidate List of substances of very high concern (SVHC, REACH)? By CAS, EC number or exact name - the published entry with its Article 57 inclusion reasons (CMR, PBT, vPvB, equivalent concern), inclusion date and the ECHA inclusion decisions as published, plus the generic obligations it triggers (REACH Article 33 information duty, SCIP notification above 0.1 % w/w). A not-listed verdict is dated to the served list, never an all-clear. ($0.01, free trial: 1 free call per day per payer address) - [POST /label/chem/svhc/batch](https://api.invoket.com/label/chem/svhc/batch) — Before your agent clears a BOM, a formulation or a supplier declaration for the EU market: screen up to 200 substances in one call against the ECHA Candidate List of SVHC (REACH) - one verdict per item (CAS, EC number or exact name) with the published Article 57 inclusion reasons, inclusion date and the triggered obligations (REACH Article 33, SCIP notification); a malformed item is flagged at its position instead of failing the batch, and a not-listed substance gets an explicit verdict dated to the served list. ($0.005 + $0.005/item) - [POST /label/claims/check](https://api.invoket.com/label/claims/check) — Before your agent puts a nutrition or health claim on an EU food label: is the proposed wording an authorised claim (exact legal wording + conditions of use), a non-authorised one (official rejection reason + EFSA opinion), or absent from the EU Register (Regulation (EC) 1924/2006)? Post the label wording (and optionally the nutrient); matching is strict-normalised (case, punctuation, spacing), exact or containment, never fuzzy - zero false positives. The Register carries the REJECTED claims a plain LLM validates by mistake. An absent wording returns the authorised claims for the nutrient plus a limit note (absence is neither authorisation nor prohibition - 'on hold' botanicals are not in the Register). ($0.01, free trial: 1 free call per day per payer address) - [GET /label/claims/permitted](https://api.invoket.com/label/claims/permitted) — List the authorised EU nutrition and health claims for a given nutrient or substance (Regulation (EC) 1924/2006): what your agent may legally write on a food label. Pass the nutrient; get every authorised claim as published - exact legal wording, conditions of use, EFSA opinion and legislation. A known nutrient whose claims are all rejected returns an explicit empty list with the rejected count (not a silent gap); a nutrient absent from the Register returns an empty list with a limit note (absence is neither authorisation nor prohibition - 'on hold' botanical claims are not in the Register). The counterpart of /label/claims/check: check starts from a wording, permitted starts from the nutrient. ($0.01, free trial: 1 free call per day per payer address) - [GET /label/cosmetic/ingredient](https://api.invoket.com/label/cosmetic/ingredient) — Before your agent clears an ingredient for an EU cosmetic label: is it prohibited (Annex II), restricted (Annex III), or authorised as a colorant (IV), preservative (V) or UV filter (VI) under Regulation (EC) No 1223/2009? By CAS, EC number, INCI name or exact chemical name - every published entry with its maximum concentration, conditions of use and the MANDATORY LABEL WORDING served word for word, versioned by amending regulation: the consolidated version in force at the queried date plus the upcoming change when a published but not-yet-applicable one modifies the entry. CosIng is a legally non-binding information tool: only the Annexes are authoritative, and any divergence is reported, never silently resolved. Absence from the Annexes is not an authorisation - the verdict says so explicitly. ($0.01, free trial: 1 free call per day per payer address) - [POST /label/cosmetic/ingredient/batch](https://api.invoket.com/label/cosmetic/ingredient/batch) — Before your agent clears a cosmetic formulation for the EU market: screen a whole INCI list - up to 200 ingredients in one call - against Annexes II to VI of Regulation (EC) No 1223/2009. One verdict per item (prohibited, restricted, authorised colorant/preservative/UV filter, or not listed) with the published entries, maximum concentrations, conditions and MANDATORY label wording served word for word, plus a summary count per verdict. A malformed item or an unresolved identity is flagged at its position instead of failing the batch; the input order is preserved but no conclusion is drawn from it (an INCI list's descending-concentration order is not exploited). This is not a formulation compliance verdict: no concentration in the finished product is computed. ($0.005 + $0.005/item) - [GET /label/food/additive](https://api.invoket.com/label/food/additive) — Before your agent validates a recipe, a food label or an import: is this additive authorised in this food category, at what maximum level and under which conditions (Union list, Regulation (EC) No 1333/2008, Annexes II and III)? By E number or exact published name, WITH a food category code - you get an authorised/not_authorised verdict with the maximum level, restrictions and footnotes served word for word ('quantum satis' as published, never converted), and via_group when the authorisation comes from a published group such as 'E 249 - 250'. WITHOUT a food category you get the inventory of categories where it is authorised and NO verdict: an additive has no status in the abstract. A not_authorised verdict is dated - the Union list is positive. Where the text bounds a line by a 'Period of application', the lines that apply at your date come first and each one carries in_force_at_date: an expired line is flagged, never dropped. ($0.01, free trial: 1 free call per day per payer address) - [GET /label/lookup](https://api.invoket.com/label/lookup) — Turn an ingredient name read off a label - 'sodium nitrite', 'titanium dioxide', an INCI name - into the exact CAS, EC, INCI or E number that /label/chem/classify, /label/chem/svhc, /label/cosmetic/ingredient and /label/food/additive require. Sources: ECHA Annex VI and Candidate List, the consolidated Cosmetics and Food Additives Regulations, and the Commission CosIng index. Closed verdict: exact, ambiguous or none, and every candidate names the endpoints it opens. ($0.01, free trial: 1 free call per day per payer address) ### More checks Additional checks from the live catalog — every response carries its provenance. - [POST /certify/batch](https://api.invoket.com/certify/batch) — Clean a customer or supplier file before the French e-invoicing switchover: submit up to 200 lines with their SIREN or SIRET and get one sourced verdict per line - existence and administrative state in the INSEE Sirene register, insolvency and deregistration announcements in the BODACC gazette, and the name you hold compared to the one the register publishes. The batch carries a signed Merkle root, so the buyer of the file can verify any single line offline. ($0.05 + $0.02/subject) - [POST /certify/screening](https://api.invoket.com/certify/screening) — Screen a file of counterparties against sanctions lists and keep the proof: up to 200 names or crypto addresses in one call, each compared to the OFAC, EU and UN lists with the publication date of every list served. The batch carries a signed Merkle root, so whoever receives your file verifies a single line offline - what was screened, against which lists, on which dates. ($0.05 + $0.02/subject) ## Machine discovery - [Gateway x402 catalog (JSON)](https://api.invoket.com/catalog) - [x402 machine manifest](https://invoket.com/.well-known/x402.json) - [CDP x402 Bazaar discovery (search_resources / MCP)](https://api.cdp.coinbase.com/platform/v2/x402/discovery/search) — Invoket is indexed in the CDP Bazaar; agents can also find it via the official x402 MCP server.