io.github.LeBorgneAntoine/facturx
name:io.github.leborgneantoine/facturx
Generate and validate Factur-X, CII & UBL invoices. Free demo; EUR 3 evaluation, no subscription.
- transport:
- remote
- credential class:
- self-provisionable
Owner verification
Not yet verified. Verifying proves you control this server and is free, permanently — it never changes a published score.
Start verification →Tools
- check_invoice_partiesshallow
Check 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=FR require SIREN/SIRET; a French lookup can derive omitted vat. Address fields activate address checks. requester_vat applies to both lookups but cannot replace either party's vat. Roles follow seller/buyer argument names; no invoice lines or full invoice body is needed. Makes at most two EU Verify requests with the caller's plan key; Pro/Scale enable register access. Returns status and parties.seller/buyer, each with status, reasons and available evidence. Only two positive results yield invoice_ready; any not_ready yields not_ready, otherwise inconclusive. Inspect both results: denied plans, invalid input, quotas and outages never establish readiness. No document quota is consumed; upstream limits still apply per lookup. Results may change on retry. No invoice is generated, stored or sent.
- check_partyshallow
Check 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 SIREN/SIRET, country_code=FR or FR VAT triggers French checks requiring a SIREN/SIRET. Omitted vat can be derived from a successful French lookup; foreign parties normally need explicit VAT. Send address fields with a coherent country_code; requester_vat cannot substitute for the checked party's vat. Sends supplied fields to EU Verify and applicable registers. A Pro/Scale key enables checks; other plans return plan_excluded. No Factur-X document quota is consumed. Returns status, reasons with field pointers and available evidence: invoice_ready is positive, not_ready needs correction, upstream_unavailable is inconclusive and retryable, invalid_input indicates rejected input. Register results and evidence ids may change between calls. No invoice is created or stored.
- draft_credit_noteshallow
Draft 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. number and issue_date belong to the new credit note; the original number/date are copied into preceding_invoices. Give number a distinct value and use YYYY-MM-DD dates. due_date replaces the original deadline; omitting it removes that deadline rather than inheriting it. Omit credit_lines to retain all original lines and amounts. Otherwise select distinct 1-based array positions, not line ids: [{"line_index":1,"quantity":"2"}] credits two units of the first line. Omitted lines are excluded; quantities cannot exceed the original. Prices and VAT rates are retained. Selected-line mode clears original totals, prepayments, rounding and paid status for recalculation. Document allowances/charges, or reduced quantities on adjusted lines or overridden net amounts, need explicit allocation: these cases return an error; prepare a credit body for generate_invoice. No prior-credit history is stored: the caller must prevent cumulative credits beyond the original. Keep amounts positive: type 381 expresses the credit. Existing credit notes, a reused invoice number or negative line amounts produce a tool error. Default payment remittance references follow the new number; a custom reference is preserved. Returns invoice, type_code, preceding_invoice and next. Pass the returned invoice to generate_invoice with the original profile to create the document. No key or document quota is needed for drafting; nothing is stored, sent or refunded.
- embed_xmlshallow
Combine a visual PDF you already have with a Factur-X (CII) XML into one PDF/A-3 Factur-X invoice. Use when the PDF is produced by your own system and you only need the compliant hybrid file. Do not use to create an invoice from data: call generate_invoice, which renders the PDF too. The XML is validated first and rejected with rule ids if it fails. Nothing is stored. Returns a text summary plus the PDF/A-3 as a base64 embedded resource.
- explain_findingshallow
Turn 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: nonempty values override its generic context, but never change the selected fix or example. Omit them to use guide defaults for known rules. Returns rule, known, message, json_pointer, fix and example; known rules also include problem. Selected BR-FR rules and BR-CO-17/BR-CO-26 have guidance. Unknown ids return known=false and example=null with the supplied context, not an error; consult the original finding. No key or document quota is needed; nothing is stored.
- extract_invoiceshallow
Read an e-invoice and return its business data as JSON: number, dates, seller, buyer, totals, VAT breakdown, lines. Use to get the content of a received invoice (Factur-X PDF, CII or UBL XML) for bookkeeping, matching or summaries. Does not judge compliance: call validate_invoice for that. Read-only, nothing stored. Returns {profile, fields{...}} and, with include_xml, the XML text.
- generate_invoiceshallow
Create a new, compliant e-invoice (Factur-X PDF/A-3, CII XML or UBL XML) from structured invoice data. Use when you have the invoice content (parties, lines, dates) and need the document. Do not use when you already have a visual PDF and a Factur-X XML to combine: call embed_xml. To check a document you did not create here, call validate_invoice; to read one, call extract_invoice. The result is validated (XSD + schematron for `check`) before it is returned; on failure the tool returns an error listing the failing rule ids (e.g. BR-CO-10, BR-FR-01) so you can fix the input and retry. Nothing is stored. Returns a text summary (number, totals, warnings) plus the document as an embedded resource: base64 PDF for facturx-pdf, XML text for cii-xml / ubl-xml.
- get_invoice_exampleshallow
Return 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 before you generate. For credit_note, also replace preceding_invoices with the original invoice reference. To credit a real invoice already in hand, use draft_credit_note instead of this synthetic example. Amounts are positive decimal strings. Nothing is stored, and no file is created. Returns the invoice plus the profile and check to pass to generate_invoice.
- validate_invoiceshallow
Check whether an existing e-invoice (Factur-X PDF, CII or UBL XML) is compliant, and report why not. Use on any document you did not produce with generate_invoice (supplier invoices, files from another system) or to re-check after a fix. Do not use to read the invoice content: call extract_invoice. Runs XSD then the EN 16931 schematron (plus French rules for fr-ctc). Read-only, nothing stored. Returns {valid, profile, findings[]} where each finding has the rule id (e.g. BR-CO-10), severity and message; a non-compliant document is a normal result, not an error.
- view_invoice_demoshallow
Demonstrate 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 finding. Both use the production XSD and EN 16931 engine; results may be cached for 24 hours for the same engine version and input. Inspect validated_at and cached; a cache hit is not a fresh run. Call with {} to validate the passing sample, or sample=downloads for PDF/CII/UBL files and the published report. Accepts no document data, URLs or extra arguments. No PDF or business-register checks in live mode. Shared rate limits return a retryable tool error; unavailable checks never become a passing result. Use explain_finding for a returned rule id. Your own invoices require validate_invoice with an evaluation or monthly-plan key. Nothing is stored except reports for these public fixtures.
Embed this server’s score
Tool count and median score across every tool in this server’s corpus — honest in a way a single cherry-picked tool’s badge wouldn’t be.
[](https://vouch.tools/servers/03960d61-80e9-4f16-8db8-c2c1bb3a38cc)