Factur-X: Generate & Validate E-Invoices

io.github.LeBorgneAntoine/facturx · v0.1.23 · finance-and-payments

Factur-X: Generate & Validate E-Invoices is healthy: it completed an MCP handshake in 2520 ms and exposes 10 tools.

Validate Factur-X, CII & UBL e-invoices free, no key. Generate compliant invoices from JSON.

Endpoint: https://facturx.orvel.dev/mcp (streamable-http)

No repository listed · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count10
Latency2520 ms
Last checked (UTC)2026-10-15T01:50:43.114Z

Health history

Checked (UTC)StatusLatencyError
2026-10-15T01:50:43.114ZHealthy2520

Tools (10)

view_invoice_demoDemonstrate the engine on bundled synthetic samples only; never checks a user's invoice. Use for product evaluation without a key. To check a supplied document, choose validate_invoice. Choose sample=valid to inspect a passing CII invoice or sample=invalid to see the missing-buyer-name
generate_invoiceCreate an EN 16931 e-invoice from structured data: Factur-X PDF/A-3, CII XML, or UBL 2.1 XML. Use when you have the parties, lines and dates and need the document. To revise one, correct the input and regenerate; save and deliver the returned file through your own system. Do not use when yo
embed_xmlCombine a visual PDF you already have with CII XML into one Factur-X PDF/A-3. Use for an existing visual invoice; use generate_invoice to render invoice data or produce UBL. Match the PDF's parties, lines and totals to xml yourself: check examines only XML and cannot detect disagreement
validate_invoiceCheck a Factur-X PDF, CII XML or UBL XML against EN 16931, and report the fields to fix. Use when the caller supplies a document, including after corrections; use extract_invoice for business data. With no document and only a request to try the product, choose view_invoice_demo instead.
extract_invoiceExtract invoice parties, dates, lines, totals and VAT as JSON for bookkeeping or matching. Use validate_invoice for compliance; this performs no OCR or recalculation. Supply one source: nonblank xml overrides document_base64 without inspecting it, so omit xml to extract a PDF's attachme
check_partyCheck exactly one seller or buyer's registry identifiers and readiness through EU Verify. Use to correct one party's identifiers; use check_invoice_parties to check seller and buyer together, or validate_invoice for document rules. Supply siren, siret or vat; siret wins over siren. A SI
check_invoice_partiesCheck a supplied seller AND buyer together, returning combined readiness and separate evidence. Use before generate_invoice; use check_party for one party and validate_invoice for document rules. Each party needs siren, siret or vat; siret wins over siren. French identifiers or country_code
explain_findingTurn a validation rule id into the invoice field to change and an example value. Use after validate_invoice or a generate_invoice rule error, not to validate an invoice itself. rule is trimmed and uppercased to select a guide entry. message/json_pointer must come from that same finding:
get_invoice_exampleReturn a complete invoice or credit-note example to edit and pass to generate_invoice. Use this first, instead of inventing fields. No API key is required, and the call does not count as a document. The seller and buyer are sample data: replace them, the number, the dates and the lines
draft_credit_noteDraft a type-381 credit note from an existing invoice, for all lines or selected quantities. Use to reverse an existing invoice's charges; use get_invoice_example for a synthetic credit-note example. invoice must be the original generate_invoice input object, not extract_invoice output.