78trust / 100

Einvoice Readiness

by Resolve402 in Company & people data

x402 APIPassing, checked 2 h ago

Check whether a European company can receive an electronic invoice today, through which Peppol participants and formats, and which national e-invoicing mandate applies to it from which date. Give a French SIREN or SIRET, an intra-EU VAT number, a national company number with its country (BE KBO, NL KvK, IT P.IVA, DE), or a company name and country. The Peppol Directory is queried by free text AND by exact participant on every scheme plausible for the country (FR 0002, 0009, 0225 SIREN_routing, 9957; BE 0208, 9925; NL 0106, 0190, 9944; DE 0204, 9930; IT 0211, 0210, 9906...), results are merged and unrelated hits dropped; document types are mapped to stable capabilities (Peppol BIS Billing invoice and credit note, CII, Factur-X, PINT, order) with a can_receive_einvoice verdict. Identity from Sirene/RNE (France) or VIES; obligation calendar per country with its official source. Charged only if the company is found (a company found but not on Peppol is a 200, registered:false). 20 free calls/day per IP with header X-Free-Trial: 1.

GET
https://resolve402.dev/api/einvoice-readiness
Price
$0.005
per call in USDC
Uptime
100%
last 30 days
Response time
168 ms
781 ms slowest 5%
Last check
Passed
2 h ago, next any minute now

Run a free test callHow to call it

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to call it

GET https://resolve402.dev/api/einvoice-readiness

Each call costs $0.005 in USDC on Base, paid with the request over x402.

Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.

Example request

From the listing.

GET https://resolve402.dev/api/einvoice-readiness?siren=552032534

Parameters

ParameterTypeRequiredDescription
companystringNoCompany name, with country (used when no identifier is given; the closest Peppol entity name is kept)
company_idstringNoNational company number, with country: BE KBO/BCE (0417497106), NL KvK (24330087), IT Partita IVA, DE Leitweg-ID...
countrystringNoISO-2 country (EU/EEA), required with company_id and company: FR, BE, NL, DE, IT, ES, PL, LU, AT, DK, SE, FI, NO...
sirenstringNoFrench SIREN (9 digits, Luhn-checked) or SIRET (14 digits). Sets country=FR.
vatstringNoIntra-EU VAT number with country prefix, e.g. FR27552032534, BE0417497106, NL810433941B01, DE811569869

Example response

The provider's example. We can't check it without paying.

Example response, 88 lines
{
  "company": {
    "category": "GE",
    "country": "FR",
    "identifiers": {
      "siren": "552032534",
      "siret": "55203253400703",
      "vat": "FR27552032534"
    },
    "name": "DANONE",
    "status": "active",
    "vat_check": null
  },
  "obligation": {
    "applied": "Issuing date set from the company's INSEE category GE: 1 September 2026.",
    "country": "FR",
    "issue": {
      "from": "2026-09-01",
      "mandatory": true,
      "scope": "Large companies (GE) and mid-caps (ETI) issue electronically from 1 September 2026; SMEs and micro-enterprises (PME, TPE, auto-entrepreneurs) from 1 September 2027. E-reporting follows the same calendar."
    },
    "receive": {
      "mandatory": true,
      "scope": "All VAT-registered businesses established in France must be able to receive electronic invoices from 1 September 2026, whatever their size.",
      "since": "2026-09-01"
    },
    "source": "https://www.impots.gouv.fr/professionnel/la-facturation-electronique-quest-ce-que-cest"
  },
  "peppol": {
    "accepted_formats": [
      "Peppol BIS Billing 3.0 Invoice (UBL)",
      "Peppol BIS Billing 3.0 Credit Note (UBL)",
      "Factur-X 1.0 (PDF + CII, EN 16931)",
      "France CIUS 1.0 Invoice (UBL, EN 16931)",
      "UN/CEFACT CII D16B, Peppol BIS Billing 3.0 (EN 16931)"
    ],
    "can_receive_einvoice": true,
    "participants": [
      {
        "accepted_formats": [
          "Peppol BIS Billing 3.0 Invoice (UBL)",
          "Peppol BIS Billing 3.0 Credit Note (UBL)",
          "UN/CEFACT CII D16B, Peppol BIS Billing 3.0 (EN 16931)",
          "Factur-X 1.0 (PDF + CII, EN 16931)"
        ],
        "capabilities": {
          "cii_cross_industry_invoice": true,
          "en16931_invoice": true,
          "order": false,
          "peppol_bis_billing_credit_note": true,
          "peppol_bis_billing_invoice": true,
          "pint": false,
          "pint_invoice": false
        },
        "country": "FR",
        "found_by": [
          "q=552032534&country=FR"
        ],
        "id": "0225:552032534_interco",
        "name": "DANONE",
        "registration_date": "2026-08-11",
        "scheme": "0225",
        "scheme_name": "FR:SIREN_ROUTING"
      }
    ],
    "registered": true
  },
  "provenance": {
    "directory_queries": [
      {
        "kind": "free_text",
        "matches": 5,
        "query": "q=552032534&country=FR"
      },
      {
        "kind": "participant",
        "matches": 0,
        "query": "participant=iso6523-actorid-upis%3A%3A0002%3A552032534"
      },
      {
        "kind": "participant",
        "matches": 0,
        "query": "participant=iso6523-actorid-upis%3A%3A0225%3A552032534"
      }
    ],
    "participants_dropped": 0
  }
}

Call it from code

The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.005.

curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i 'https://resolve402.dev/api/einvoice-readiness?siren=552032534'

# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - 'https://resolve402.dev/api/einvoice-readiness?siren=552032534' \
  | grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decode
JavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

// Pays at most $0.005 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.005" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.005 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fresolve402.dev%2Fapi%2Feinvoice-readiness
const res = await pay("https://resolve402.dev/api/einvoice-readiness?siren=552032534");
console.log(res.status, await res.text());
Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

# Pays at most $0.005 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.005"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))

with x402_requests(client) as session:
    res = session.get("https://resolve402.dev/api/einvoice-readiness?siren=552032534")
    print(res.status_code, res.text)

Security scan

No findings

We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
2 h agoPassed402216 ms$0.005
7 h agoPassed402163 ms$0.005
11 h agoPassed402126 ms$0.005
16 h agoPassed402366 ms$0.005
20 h agoPassed402114 ms$0.005
Show 7 older checks
24 h agoPassed402181 ms$0.005
28 h agoPassed402229 ms$0.005
32 h agoPassed402168 ms$0.005
36 h agoPassed402781 ms$0.005
40 h agoPassed402116 ms$0.005
44 h agoPassed402132 ms$0.005
2 days agoPassed402370 ms$0.005