{"name":"io.github.LeBorgneAntoine/facturx","slug":"leborgneantoine-facturx","title":"Factur-X e-invoicing","description":"Generate, validate and read Factur-X / EN 16931 e-invoices (France, EU): PDF/A-3, CII, UBL 2.1.","url":"https://mcp.market/server/leborgneantoine-facturx","rating":null,"grade":"C","score":64,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-20T21:45:42.810Z","last_ok_at":"2026-09-20T21:45:42.810Z","latency_ms":215},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://facturx.orvel.dev/docs/","version":"0.1.3","remotes":[{"type":"streamable-http","url":"https://facturx.orvel.dev/mcp","headers":[{"description":"Bearer <API key>. Free key (50 documents/month, no card) and paid plans at https://facturx.orvel.dev/docs/pricing/","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[],"tools":[{"name":"embed_xml","description":"Combine a visual PDF you already have with a Factur-X (CII) XML into one PDF/A-3 Factur-X invoice.\n\n    Use when the PDF is produced by your own system and you only need the compliant hybrid file. Do not use\n    to create an invoice from data: call generate_invoice, which renders the PDF too. The XML is validated\n    first and rejected with rule ids if it fails. Nothing is stored. Returns a text summary plus the PDF/A-3\n    as a base64 embedded resource.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pdf_base64":{"description":"Your existing visual invoice PDF (any PDF, will be converted to PDF/A-3), base64 encoded","title":"Pdf Base64","type":"string"},"xml":{"description":"Factur-X / CII XML text for the same invoice; must pass the `check` rules or the tool fails","title":"Xml","type":"string"},"check":{"default":"fr-ctc","description":"Rule set the XML must pass before embedding: fr-ctc (default, France) or base (EN 16931 only)","enum":["base","fr-ctc"],"title":"Check","type":"string"},"language":{"$ref":"#/$defs/Language","default":"fr","description":"Document language written in the PDF metadata: fr or en"}},"required":["pdf_base64","xml"],"$defs":{"Language":{"enum":["fr","en"],"title":"Language","type":"string"}},"title":"embed_xmlArguments"}},{"name":"extract_invoice","description":"Read an e-invoice and return its business data as JSON: number, dates, seller, buyer, totals, VAT breakdown, lines.\n\n    Use to get the content of a received invoice (Factur-X PDF, CII or UBL XML) for bookkeeping, matching\n    or summaries. Does not judge compliance: call validate_invoice for that. Read-only, nothing stored.\n    Returns {profile, fields{...}} and, with include_xml, the XML text.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"document_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Factur-X PDF (the embedded XML is read) or a CII/UBL XML file, base64 encoded","title":"Document Base64"},"xml":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"CII or UBL XML as plain text; alternative to document_base64, give exactly one","title":"Xml"},"include_xml":{"default":false,"description":"Also return the raw XML text (large); default false returns only the parsed fields","title":"Include Xml","type":"boolean"}},"title":"extract_invoiceArguments"}},{"name":"generate_invoice","description":"Create a new, compliant e-invoice (Factur-X PDF/A-3, CII XML or UBL XML) from structured invoice data.\n\n    Use when you have the invoice content (parties, lines, dates) and need the document. Do not use when you\n    already have a visual PDF and a Factur-X XML to combine: call embed_xml. To check a document you did not\n    create here, call validate_invoice; to read one, call extract_invoice.\n\n    The result is validated (XSD + schematron for `check`) before it is returned; on failure the tool returns\n    an error listing the failing rule ids (e.g. BR-CO-10, BR-FR-01) so you can fix the input and retry.\n    Nothing is stored. Returns a text summary (number, totals, warnings) plus the document as an embedded\n    resource: base64 PDF for facturx-pdf, XML text for cii-xml / ubl-xml.\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"invoice":{"$ref":"#/$defs/Invoice","description":"Invoice data: seller, buyer, lines, dates, payment terms. Amounts are decimal strings (\"1200.00\"), dates ISO 8601. Totals and the VAT breakdown are computed. Full JSON Schema in the resource facturx://schema/invoice."},"profile":{"$ref":"#/$defs/Profile","default":"en16931","description":"Factur-X conformance level written in the XML: en16931 (default, full EN 16931 semantic model), extended (adds optional business terms), extended-ctc-fr (French B2B mandate profile), basicwl (no lines)"},"output":{"$ref":"#/$defs/OutputFormat","default":"facturx-pdf","description":"facturx-pdf (default): PDF/A-3 with the visual invoice and the CII XML embedded, the format French platforms accept. cii-xml: the UN/CEFACT CII XML alone. ubl-xml: UBL 2.1 XML alone (Peppol-style)."},"language":{"$ref":"#/$defs/Language","default":"fr","description":"Language of the visual PDF: fr or en"},"check":{"default":"fr-ctc","description":"Rule set the output must pass before it is returned: fr-ctc (default) = EN 16931 + French CTC rules (BR-FR-*), base = EN 16931 only (non-French sellers).","enum":["base","fr-ctc"],"title":"Check","type":"string"},"footer_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional footer text on the PDF","title":"Footer Text"}},"required":["invoice"],"$defs":{"AdditionalDocument":{"additionalProperties":false,"properties":{"id":{"description":"BT-122","title":"Id","type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-123","title":"Description"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-124","title":"Url"}},"required":["id"],"title":"AdditionalDocument","type":"object"},"Address":{"additionalProperties":false,"properties":{"line1":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-35 / BT-50","title":"Line1"},"line2":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-36 / BT-51","title":"Line2"},"line3":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-162 / BT-163","title":"Line3"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-37 / BT-52","title":"City"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-38 / BT-53","title":"Postal Code"},"country_subdivision":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-39 / BT-54","title":"Country Subdivision"},"country":{"description":"ISO 3166-1 alpha-2, BT-40 / BT-55","maxLength":2,"minLength":2,"title":"Country","type":"string"}},"required":["country"],"title":"Address","type":"object"},"AllowanceCharge":{"additionalProperties":false,"description":"Document-level allowance (BG-20) or charge (BG-21).","properties":{"amount":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"}],"description":"BT-92 / BT-99, tax excluded","title":"Amount"},"base_amount":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-93 / BT-100","title":"Base Amount"},"percentage":{"anyOf":[{"maximum":100,"minimum":0,"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,3}|(?=[\\d.]{1,8}0*$)\\d{0,3}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-94 / BT-101","title":"Percentage"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-97 / BT-104","title":"Reason"},"reason_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"UNTDID 5189 / 7161, BT-98 / BT-105","title":"Reason Code"},"vat_category":{"$ref":"#/$defs/VatCategory","default":"S","description":"BT-95 / BT-102"},"vat_rate":{"anyOf":[{"maximum":100,"minimum":0,"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,3}|(?=[\\d.]{1,8}0*$)\\d{0,3}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-96 / BT-103","title":"Vat Rate"}},"required":["amount"],"title":"AllowanceCharge","type":"object"},"Contact":{"additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-41 / BT-56","title":"Name"},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-41-0 / BT-56-0 (used when name is empty)","title":"Department"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-42 / BT-57","title":"Phone"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-43 / BT-58","title":"Email"}},"title":"Contact","type":"object"},"Delivery":{"additionalProperties":false,"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Deliver-to party name, BT-70","title":"Name"},"location_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-71","title":"Location Id"},"location_id_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-71-1","title":"Location Id Scheme"},"address":{"anyOf":[{"$ref":"#/$defs/Address"},{"type":"null"}],"default":null},"actual_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-72","title":"Actual Date"},"period_start":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-73","title":"Period Start"},"period_end":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-74","title":"Period End"}},"title":"Delivery","type":"object"},"FrenchMentions":{"additionalProperties":false,"description":"Legal mentions required on French B2B invoices (BR-FR-05). Added as BG-1 notes with codes PMD, PMT, AAB.","properties":{"enabled":{"default":true,"description":"Add the three mandatory French mentions when missing","title":"Enabled","type":"boolean"},"late_payment_penalties":{"default":"Tout retard de paiement entraîne une pénalité exigible à compter de la date d'échéance, calculée sur la base de trois fois le taux d'intérêt légal.","description":"Note code PMD","title":"Late Payment Penalties","type":"string"},"recovery_fee":{"default":"Indemnité forfaitaire pour frais de recouvrement en cas de retard de paiement : 40 €.","description":"Note code PMT","title":"Recovery Fee","type":"string"},"early_payment_discount":{"default":"Pas d'escompte pour paiement anticipé.","description":"Note code AAB","title":"Early Payment Discount","type":"string"}},"title":"FrenchMentions","type":"object"},"Invoice":{"additionalProperties":false,"properties":{"number":{"description":"BT-1 (BR-FR-01/02: max 35 chars, letters, digits, . _ / -)","maxLength":35,"pattern":"^[A-Za-z0-9._/\\-]+$","title":"Number","type":"string"},"issue_date":{"description":"BT-2","format":"date","title":"Issue Date","type":"string"},"type_code":{"default":"380","description":"UNTDID 1001, BT-3: 380 invoice, 381 credit note, 384 corrected, 386 prepayment, 389 self-billed","enum":["380","381","384","386","389","261","751"],"title":"Type Code","type":"string"},"currency":{"default":"EUR","description":"BT-5","maxLength":3,"minLength":3,"title":"Currency","type":"string"},"vat_accounting_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-6","title":"Vat Accounting Currency"},"due_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-9","title":"Due Date"},"tax_point_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-7","title":"Tax Point Date"},"buyer_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-10","title":"Buyer Reference"},"project_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-11","title":"Project Reference"},"contract_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-12","title":"Contract Reference"},"purchase_order_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-13","title":"Purchase Order Reference"},"sales_order_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-14","title":"Sales Order Reference"},"receiving_advice_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-15","title":"Receiving Advice Reference"},"despatch_advice_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-16","title":"Despatch Advice Reference"},"tender_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-17","title":"Tender Reference"},"buyer_accounting_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-19","title":"Buyer Accounting Reference"},"payment_terms":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-20","title":"Payment Terms"},"operation_type":{"default":"services","description":"Nature of the operation, used to derive the French business process code BT-23 (B1/S1/M1)","enum":["goods","services","mixed"],"title":"Operation Type","type":"string"},"already_paid":{"default":false,"description":"Invoice already paid at issuance (French BT-23 variants B2/S2/M2)","title":"Already Paid","type":"boolean"},"business_process":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Explicit BT-23 business process code (e.g. S1). Overrides operation_type/already_paid.","title":"Business Process"},"french_mentions":{"$ref":"#/$defs/FrenchMentions","description":"Mandatory French legal mentions (BR-FR-05)"},"notes":{"description":"BG-1","items":{"$ref":"#/$defs/Note"},"title":"Notes","type":"array"},"seller":{"$ref":"#/$defs/Party","description":"BG-4"},"buyer":{"$ref":"#/$defs/Party","description":"BG-7"},"delivery":{"anyOf":[{"$ref":"#/$defs/Delivery"},{"type":"null"}],"default":null,"description":"BG-13"},"payment":{"anyOf":[{"$ref":"#/$defs/Payment"},{"type":"null"}],"default":null,"description":"BG-16"},"preceding_invoices":{"description":"BG-3","items":{"$ref":"#/$defs/PrecedingInvoice"},"title":"Preceding Invoices","type":"array"},"additional_documents":{"description":"BG-24","items":{"$ref":"#/$defs/AdditionalDocument"},"title":"Additional Documents","type":"array"},"allowances":{"description":"BG-20","items":{"$ref":"#/$defs/AllowanceCharge"},"title":"Allowances","type":"array"},"charges":{"description":"BG-21","items":{"$ref":"#/$defs/AllowanceCharge"},"title":"Charges","type":"array"},"lines":{"description":"BG-25","items":{"$ref":"#/$defs/Line"},"minItems":1,"title":"Lines","type":"array"},"totals":{"anyOf":[{"$ref":"#/$defs/Totals"},{"type":"null"}],"default":null,"description":"BG-22, computed when omitted"},"prepaid_amount":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-113 shortcut when totals are computed","title":"Prepaid Amount"},"rounding_amount":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-114 shortcut when totals are computed","title":"Rounding Amount"},"tax_exemption_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Default BT-120 text for E/AE/K/G/O categories, e.g. 'TVA non applicable, art. 293 B du CGI'","title":"Tax Exemption Reason"},"tax_exemption_reason_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Default BT-121 VATEX code","title":"Tax Exemption Reason Code"}},"required":["number","issue_date","seller","buyer","lines"],"title":"Invoice","type":"object"},"Language":{"enum":["fr","en"],"title":"Language","type":"string"},"Line":{"additionalProperties":false,"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-126, auto-numbered when omitted","title":"Id"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-127","title":"Note"},"item_name":{"description":"BT-153","title":"Item Name","type":"string"},"item_description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-154","title":"Item Description"},"seller_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-155","title":"Seller Item Id"},"buyer_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-156","title":"Buyer Item Id"},"standard_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-157, e.g. EAN/GTIN","title":"Standard Item Id"},"standard_item_id_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-157-1, e.g. 0160 = GTIN","title":"Standard Item Id Scheme"},"origin_country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-159","title":"Origin Country"},"attributes":{"additionalProperties":{"type":"string"},"description":"BG-32 item attributes","title":"Attributes","type":"object"},"quantity":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)","type":"string"}],"description":"BT-129","title":"Quantity"},"unit_code":{"default":"C62","description":"UN/ECE Rec 20, BT-130 (C62 unit, HUR hour, DAY, KGM, MTR, LTR...)","title":"Unit Code","type":"string"},"unit_price":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"}],"description":"Net unit price, BT-146","title":"Unit Price"},"gross_unit_price":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-148","title":"Gross Unit Price"},"price_discount":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-147","title":"Price Discount"},"price_base_quantity":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-149","title":"Price Base Quantity"},"price_base_unit_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-150","title":"Price Base Unit Code"},"vat_category":{"$ref":"#/$defs/VatCategory","default":"S","description":"BT-151"},"vat_rate":{"anyOf":[{"maximum":100,"minimum":0,"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,3}|(?=[\\d.]{1,8}0*$)\\d{0,3}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-152, required for category S","title":"Vat Rate"},"allowances":{"description":"BG-27","items":{"$ref":"#/$defs/LineAllowanceCharge"},"title":"Allowances","type":"array"},"charges":{"description":"BG-28","items":{"$ref":"#/$defs/LineAllowanceCharge"},"title":"Charges","type":"array"},"period_start":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-134","title":"Period Start"},"period_end":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-135","title":"Period End"},"order_line_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-132","title":"Order Line Reference"},"buyer_accounting_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-133","title":"Buyer Accounting Reference"},"net_amount":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-131. Computed as quantity x unit_price / base_qty - allowances + charges when omitted","title":"Net Amount"}},"required":["item_name","quantity","unit_price"],"title":"Line","type":"object"},"LineAllowanceCharge":{"additionalProperties":false,"properties":{"amount":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"}],"description":"BT-136 / BT-141","title":"Amount"},"base_amount":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-137 / BT-142","title":"Base Amount"},"percentage":{"anyOf":[{"maximum":100,"minimum":0,"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,3}|(?=[\\d.]{1,8}0*$)\\d{0,3}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-138 / BT-143","title":"Percentage"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-139 / BT-144","title":"Reason"},"reason_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-140 / BT-145","title":"Reason Code"}},"required":["amount"],"title":"LineAllowanceCharge","type":"object"},"Note":{"additionalProperties":false,"properties":{"text":{"description":"BT-22","title":"Text","type":"string"},"subject_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"UNTDID 4451 code, BT-21 (e.g. AAI general, PMT payment, PMD penalties)","title":"Subject Code"}},"required":["text"],"title":"Note","type":"object"},"OutputFormat":{"enum":["facturx-pdf","cii-xml","ubl-xml"],"title":"OutputFormat","type":"string"},"Party":{"additionalProperties":false,"properties":{"name":{"description":"Legal name, BT-27 / BT-44","title":"Name","type":"string"},"trading_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-28 / BT-45","title":"Trading Name"},"siren":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"French SIREN (9 digits). Written as legal registration id BT-30 / BT-47 with scheme 0002.","title":"Siren"},"legal_registration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-30 / BT-47 when not a SIREN. Ignored if siren is set.","title":"Legal Registration Id"},"legal_registration_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 6523 ICD for legal_registration_id (BT-30-1 / BT-47-1), e.g. 0002 = SIREN","title":"Legal Registration Scheme"},"vat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-31 / BT-48, e.g. FR12345678901","title":"Vat Id"},"electronic_address":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-34 / BT-49","title":"Electronic Address"},"electronic_address_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"EAS code for electronic_address (BT-34-1 / BT-49-1), e.g. 0225 = SIRET (FR)","title":"Electronic Address Scheme"},"siret":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"French SIRET (14 digits). Shortcut for electronic_address with scheme 0225.","title":"Siret"},"global_ids":{"additionalProperties":{"type":"string"},"description":"BT-29 / BT-46: {schemeID: identifier}, e.g. {'0009': SIRET}","title":"Global Ids","type":"object"},"tax_registration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Seller only, BT-32","title":"Tax Registration Id"},"legal_info":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Seller only, BT-33: legal form, share capital, RCS city...","title":"Legal Info"},"address":{"$ref":"#/$defs/Address"},"contact":{"anyOf":[{"$ref":"#/$defs/Contact"},{"type":"null"}],"default":null}},"required":["name","address"],"title":"Party","type":"object"},"Payment":{"additionalProperties":false,"properties":{"means_code":{"default":"30","description":"UNTDID 4461, BT-81. 30 credit transfer, 58 SEPA transfer, 59 SEPA direct debit, 48 card","title":"Means Code","type":"string"},"means_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-82","title":"Means Text"},"remittance_information":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-83","title":"Remittance Information"},"iban":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Payee account, BT-84","title":"Iban"},"account_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-85","title":"Account Name"},"bic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-86","title":"Bic"},"mandate_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Direct debit, BT-89","title":"Mandate Reference"},"creditor_reference_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Direct debit, BT-90","title":"Creditor Reference Id"},"debited_iban":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Direct debit, BT-91","title":"Debited Iban"},"terms":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-20","title":"Terms"}},"title":"Payment","type":"object"},"PrecedingInvoice":{"additionalProperties":false,"properties":{"number":{"description":"BT-25","title":"Number","type":"string"},"issue_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-26","title":"Issue Date"}},"required":["number"],"title":"PrecedingInvoice","type":"object"},"Profile":{"description":"Factur-X / CII profile for generation.","enum":["basicwl","en16931","extended","extended-ctc-fr"],"title":"Profile","type":"string"},"Totals":{"additionalProperties":false,"description":"Document totals (BG-22). All computed by the engine when omitted.","properties":{"line_total":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"}],"description":"BT-106","title":"Line Total"},"allowance_total":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-107","title":"Allowance Total"},"charge_total":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-108","title":"Charge Total"},"tax_exclusive":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"}],"description":"BT-109","title":"Tax Exclusive"},"tax_total":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"}],"description":"BT-110","title":"Tax Total"},"tax_inclusive":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"}],"description":"BT-112","title":"Tax Inclusive"},"prepaid":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-113","title":"Prepaid"},"rounding":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-114","title":"Rounding"},"amount_due":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"}],"description":"BT-115","title":"Amount Due"},"vat_breakdown":{"description":"BG-23","items":{"$ref":"#/$defs/VatBreakdown"},"title":"Vat Breakdown","type":"array"}},"required":["line_total","tax_exclusive","tax_total","tax_inclusive","amount_due"],"title":"Totals","type":"object"},"VatBreakdown":{"additionalProperties":false,"properties":{"category":{"$ref":"#/$defs/VatCategory","description":"BT-118"},"rate":{"anyOf":[{"maximum":100,"minimum":0,"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,3}|(?=[\\d.]{1,8}0*$)\\d{0,3}\\.\\d{0,4}0*$)","type":"string"},{"type":"null"}],"default":null,"description":"BT-119","title":"Rate"},"taxable_amount":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"}],"description":"BT-116","title":"Taxable Amount"},"tax_amount":{"anyOf":[{"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,15}|(?=[\\d.]{1,20}0*$)\\d{0,15}\\.\\d{0,4}0*$)","type":"string"}],"description":"BT-117","title":"Tax Amount"},"exemption_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-120","title":"Exemption Reason"},"exemption_reason_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"VATEX code, BT-121","title":"Exemption Reason Code"}},"required":["category","taxable_amount","tax_amount"],"title":"VatBreakdown","type":"object"},"VatCategory":{"description":"UNTDID 5305 subset used by EN 16931 (BT-151 / BT-118).","enum":["S","Z","E","AE","K","G","O","L","M"],"title":"VatCategory","type":"string"}},"title":"generate_invoiceArguments"}},{"name":"validate_invoice","description":"Check whether an existing e-invoice (Factur-X PDF, CII or UBL XML) is compliant, and report why not.\n\n    Use on any document you did not produce with generate_invoice (supplier invoices, files from another\n    system) or to re-check after a fix. Do not use to read the invoice content: call extract_invoice.\n    Runs XSD then the EN 16931 schematron (plus French rules for fr-ctc). Read-only, nothing stored.\n    Returns {valid, profile, findings[]} where each finding has the rule id (e.g. BR-CO-10), severity and\n    message; a non-compliant document is a normal result, not an error.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"document_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Factur-X PDF (the embedded XML is read) or a CII/UBL XML file, base64 encoded","title":"Document Base64"},"xml":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"CII or UBL XML as plain text; alternative to document_base64, give exactly one","title":"Xml"},"check":{"default":"fr-ctc","description":"fr-ctc (default): EN 16931 + French CTC rules (BR-FR-*). base: EN 16931 only.","enum":["base","fr-ctc"],"title":"Check","type":"string"}},"title":"validate_invoiceArguments"}}],"scan":{"score":64,"grade":"C","scanned_at":"2026-09-20T16:17:32.832Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T16:17:32.825Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 731ms"]},"poisoning":{"score":15,"max":15,"notes":["4 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://facturx.orvel.dev/mcp","reachable":true,"authRequired":false,"latencyMs":731,"serverInfo":{"name":"facturx","version":"0.1.3"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://facturx.orvel.dev/docs/assets/facturx-icon-512.png","source":"registry","width":512,"height":512},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}