Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "embed_xml", "extract_invoice", "generate_invoice" and 1 more
⟨100 unchanged words⟩ ) and a base64 PDF/A-3 resource. Requires aplantrial, prepaid or subscription allowance via OAuth or key; success consumes one document, errors consume ⟨6 unchanged words⟩
⟨100 unchanged words⟩ error, not an empty extraction. Requires aplantrial, prepaid or subscription allowance via OAuth or API key; success consumes onedocumentoperation, errors consume none. Nothing is stored or sent.
⟨203 unchanged words⟩ rule ids; fix the input and retry. Requiresaanplanauthenticatedkey;trial,eachprepaid or subscription allowance (OAuth or API key). Each successful result uses one document operation, including repeated calls. Returns a JSON text ⟨22 unchanged words⟩
⟨130 unchanged words⟩ unrecognized XML return a tool error. Requires aplantrial,key:prepaidcompletedorreportssubscription allowance via OAuth or API key. Completed reports consume onedocumentoperation even when invalid; tool errors do not. A no-card account trial is available. No invoice is changed, stored or sent.
Changed the definition of "view_invoice_demo"
⟨129 unchanged words⟩ rule id. Your own invoices require validate_invoice withanaevaluationverified-account trial, prepaid or monthly-plan key. Nothing is stored except reports ⟨4 unchanged words⟩
Authorization not required, issuer https://facturx.orvel.dev/
Authorization not required, issuer https://facturx.orvel.dev/
Changed the definition of "check_invoice_parties", "check_party", "draft_credit_note" and 7 more
⟨200 unchanged words⟩ description":"Buyer's registry identifiers and optional checks.","type":"object"},"requester_vat":{"anyOf":[{"maxLength" ⟨21 unchanged words⟩ "description":"Seller's registry identifiers and optional checks.","type":"object"}},"required":["seller","buyer" ⟨4 unchanged words⟩
{"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Check seller and buyer together"}
Changed the definition of "check_invoice_parties", "check_party", "draft_credit_note" and 3 more
Check seller and buyerbefore generating an invoicetogether
CheckbothainvoicesuppliedpartiessellertogetherANDandbuyerreturntogether,
Changed the definition of "view_invoice_demo"
⟨59 unchanged words⟩ not a fresh run. Call with {} to validate the passing sample, or sample=downloads for PDF/CII/UBLdownloadsfiles and theseparatepublishedvalidationreport. Accepts no document data, URLs or ⟨52 unchanged words⟩
{"properties":{"sample":{"anyOf":[{"enumdefault":["valid","invalid"],"type":"string"},{"type":"null"}],"default":null,"description":"valid (default)
Changed the definition of "view_invoice_demo"
View aTry freesampleinvoiceandvalidationreportor download sample files
PreviewTrythevalidationservicewithoutwithsignup,downloadable
Added "check_invoice_parties"; changed the definition of "check_party", "embed_xml", "explain_finding" and 3 more (9 tools before, 10 now)
⟨6 unchanged words⟩ or buyer can appear on an invoice. Usebefore generate_invoiceto correctpartyone party's identifiers; usevalidate_invoicecheck_invoice_partiesfortoacheckdocument's rulessellerinstead.andProvidebuyerat
Added "view_invoice_demo"; changed the definition of "check_party", "draft_credit_note", "embed_xml" and 4 more (8 tools before, 9 now)
⟨8 unchanged words⟩ can appear on an invoice. Use before generate_invoice,sotoyoucorrectcanpartyfixidentifiers; use validate_invoice for aSIRENdocument's rules instead. Provide at least one of siren, siret or vat as text, preserving leading zeros. siret takes precedence over siren when both are supplied. A SIREN/SIRET, country_code=FR or an FR VAT numberwithout
Added "check_party", "draft_credit_note", "explain_finding" and 1 more; changed the definition of "embed_xml", "extract_invoice", "generate_invoice" and 1 more (4 tools before, 8 now)
EmbedFactur-XCII XML into a PDF
Combine a visual PDF you already have witha Factur-X (CII)XML into onePDF/A-3Factur-Xinvoice.PDF/A-3. Use whentheyouris
Changed the definition of "generate_invoice"
⟨3192 unchanged words⟩ UBL 2.1 XML alone (Peppol-style)."},"party_check":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Check parties with EU Verify before emitting. Defaults to true for extended-ctc-fr.","title":"Party Check"},"profile":{"$ref":"#/$defs/Profile","default": ⟨35 unchanged words⟩
Certificate recorded, valid to 2026-12-01
Authorization not required
First tool surface recorded: 4 tools (server version 0.1.3)
Showing the latest 15 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Check one invoice party"}
⟨3165 unchanged words⟩ you passed to generate_invoice. Not an extract_invoice result.","type":"object"},"issue_date":{"description":"Credit note ⟨45 unchanged words⟩
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Draft a full or partial credit note"}
⟨46 unchanged words⟩ PDF metadata: fr (default) or en.","type":"string"},"pdf_base64":{"description":"Standard base64 ⟨42 unchanged words⟩
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Embed CII XML into a PDF"}
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Explain a validation finding"}
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Extract e-invoice data"}
⟨3150 unchanged words⟩ Full JSON Schema in the resource facturx://schema/invoice.","type":"object"},"language":{"$ref":"#/$defs/Language"," ⟨11 unchanged words⟩ en. Ignored when output is cii-xml or ubl-xml.","type":"string"},"output":{"$ref":"#/$defs/OutputFormat"," ⟨23 unchanged words⟩ XML alone. ubl-xml: UBL 2.1 XML alone.","type":"string"},"party_check":{"anyOf":[{"type" ⟨76 unchanged words⟩ file is emitted), basicwl (no lines)","type":"string"}},"required":["invoice"],"title ⟨3 unchanged words⟩
{"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Generate an EN 16931 invoice"}
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get an invoice or credit-note example"}
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Validate your invoice document"}
{"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Try fixed invoice samples (no document input)"}
Checkwhetheroneainvoice partyis invoice-ready
Ask EU VerifyCheckwhetherexactly one seller orbuyerbuyer'scanregistryappearidentifiersonandanreadinessinvoice.through EU Verify. Use to correct one party's identifiers; use check_invoice_parties ⟨126 unchanged words⟩
Draft acreditfullnoteorfrompartialancreditinvoicenote
ReturnDrafttheacredit-notetype-381bodycreditfornoteanfrominvoice:antypeexisting381invoice,same partiesforandall lines,amountsorunchanged.selected quantities. Usefor a full credittoofreverse an existinginvoice, notinvoice'sforcharges;extractinguseaget_invoice_exampleoravalidatingsyntheticacredit-notedocument.example. invoice must be the original generate_invoice input object ⟨34 unchanged words⟩ it removes that deadline rather than inheriting it.AllOmit 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 andamountsVAT rates areretainedretained. Selected-line mode clears original totals,soprepayments,thisroundingdoesandnotpaidcalculatestatus for recalculation. Document allowances/charges, or reduced quantities on adjusted lines or overridden net amounts, need explicit allocation: these cases return an error; prepare apartialcreditrefund.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 ⟨64 unchanged words⟩
before
{"$defs":{"AdditionalDocument":{"additionalProperties":false,"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-123","title":"Description"},"id":{"description":"BT-122","title":"Id","type":"string"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-124","title":"Url"}},"required":["id"],"title":"AdditionalDocument","type":"object"},"Address":{"additionalProperties":false,"properties":{"city":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-37 / BT-52","title":"City"},"country":{"description":"ISO 3166-1 alpha-2, BT-40 / BT-55","maxLength":2,"minLength":2,"title":"Country","type":"string"},"country_subdivision":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-39 / BT-54","title":"Country Subdivision"},"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"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-38 / BT-53","title":"Postal Code"}},"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":{"department":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-41-0 / BT-56-0 (used when name is empty)","title":"Department"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-43 / BT-58","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-41 / BT-56","title":"Name"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-42 / BT-57","title":"Phone"}},"title":"Contact","type":"object"},"Delivery":{"additionalProperties":false,"properties":{"actual_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-72","title":"Actual Date"},"address":{"anyOf":[{"$ref":"#/$defs/Address"},{"type":"null"}],"default":null},"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"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Deliver-to party name, BT-70","title":"Name"},"period_end":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-74","title":"Period End"},"period_start":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-73","title":"Period Start"}},"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":{"early_payment_discount":{"default":"Pas d'escompte pour paiement anticipé.","description":"Note code AAB","title":"Early Payment Discount","type":"string"},"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"}},"title":"FrenchMentions","type":"object"},"Invoice":{"additionalProperties":false,"properties":{"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"},"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"},"buyer":{"$ref":"#/$defs/Party","description":"BG-7"},"buyer_accounting_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-19","title":"Buyer Accounting Reference"},"buyer_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-10","title":"Buyer Reference"},"charges":{"description":"BG-21","items":{"$ref":"#/$defs/AllowanceCharge"},"title":"Charges","type":"array"},"contract_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-12","title":"Contract Reference"},"currency":{"default":"EUR","description":"BT-5","maxLength":3,"minLength":3,"title":"Currency","type":"string"},"delivery":{"anyOf":[{"$ref":"#/$defs/Delivery"},{"type":"null"}],"default":null,"description":"BG-13"},"despatch_advice_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-16","title":"Despatch Advice Reference"},"due_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-9","title":"Due Date"},"french_mentions":{"$ref":"#/$defs/FrenchMentions","description":"Mandatory French legal mentions (BR-FR-05)"},"issue_date":{"description":"BT-2","format":"date","title":"Issue Date","type":"string"},"lines":{"description":"BG-25","items":{"$ref":"#/$defs/Line"},"minItems":1,"title":"Lines","type":"array"},"notes":{"description":"BG-1","items":{"$ref":"#/$defs/Note"},"title":"Notes","type":"array"},"number":{"description":"BT-1 (BR-FR-01/02: max 35 chars, letters, digits, . _ / -)","maxLength":35,"pattern":"^[A-Za-z0-9._/\\-]+$","title":"Number","type":"string"},"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"},"payment":{"anyOf":[{"$ref":"#/$defs/Payment"},{"type":"null"}],"default":null,"description":"BG-16"},"payment_terms":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-20","title":"Payment Terms"},"preceding_invoices":{"description":"BG-3","items":{"$ref":"#/$defs/PrecedingInvoice"},"title":"Preceding Invoices","type":"array"},"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"},"project_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-11","title":"Project Reference"},"purchase_order_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-13","title":"Purchase Order Reference"},"receiving_advice_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-15","title":"Receiving Advice Reference"},"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"},"sales_order_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-14","title":"Sales Order Reference"},"seller":{"$ref":"#/$defs/Party","description":"BG-4"},"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"},"tax_point_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-7","title":"Tax Point Date"},"tender_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-17","title":"Tender Reference"},"totals":{"anyOf":[{"$ref":"#/$defs/Totals"},{"type":"null"}],"default":null,"description":"BG-22, computed when omitted"},"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"},"vat_accounting_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-6","title":"Vat Accounting Currency"}},"required":["number","issue_date","seller","buyer","lines"],"title":"Invoice","type":"object"},"Line":{"additionalProperties":false,"properties":{"allowances":{"description":"BG-27","items":{"$ref":"#/$defs/LineAllowanceCharge"},"title":"Allowances","type":"array"},"attributes":{"additionalProperties":{"type":"string"},"description":"BG-32 item attributes","title":"Attributes","type":"object"},"buyer_accounting_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-133","title":"Buyer Accounting Reference"},"buyer_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-156","title":"Buyer Item Id"},"charges":{"description":"BG-28","items":{"$ref":"#/$defs/LineAllowanceCharge"},"title":"Charges","type":"array"},"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"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-126, auto-numbered when omitted","title":"Id"},"item_description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-154","title":"Item Description"},"item_name":{"description":"BT-153","title":"Item Name","type":"string"},"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"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-127","title":"Note"},"order_line_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-132","title":"Order Line Reference"},"origin_country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-159","title":"Origin Country"},"period_end":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-135","title":"Period End"},"period_start":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-134","title":"Period Start"},"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"},"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"},"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"},"seller_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-155","title":"Seller 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"},"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"},"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"}},"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":{"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"},"text":{"description":"BT-22","title":"Text","type":"string"}},"required":["text"],"title":"Note","type":"object"},"Party":{"additionalProperties":false,"properties":{"address":{"$ref":"#/$defs/Address"},"contact":{"anyOf":[{"$ref":"#/$defs/Contact"},{"type":"null"}],"default":null},"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"},"global_ids":{"additionalProperties":{"type":"string"},"description":"BT-29 / BT-46: {schemeID: identifier}, e.g. {'0009': SIRET}","title":"Global Ids","type":"object"},"legal_info":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Seller only, BT-33: legal form, share capital, RCS city...","title":"Legal Info"},"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"},"name":{"description":"Legal name, BT-27 / BT-44","title":"Name","type":"string"},"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"},"siret":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"French SIRET (14 digits). Shortcut for electronic_address with scheme 0225.","title":"Siret"},"tax_registration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Seller only, BT-32","title":"Tax Registration Id"},"trading_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-28 / BT-45","title":"Trading Name"},"vat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-31 / BT-48, e.g. FR12345678901","title":"Vat Id"}},"required":["name","address"],"title":"Party","type":"object"},"Payment":{"additionalProperties":false,"properties":{"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"},"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"},"iban":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Payee account, BT-84","title":"Iban"},"mandate_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Direct debit, BT-89","title":"Mandate Reference"},"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"},"terms":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-20","title":"Terms"}},"title":"Payment","type":"object"},"PrecedingInvoice":{"additionalProperties":false,"properties":{"issue_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-26","title":"Issue Date"},"number":{"description":"BT-25","title":"Number","type":"string"}},"required":["number"],"title":"PrecedingInvoice","type":"object"},"Totals":{"additionalProperties":false,"description":"Document totals (BG-22). All computed by the engine when omitted.","properties":{"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"},"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"},"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"},"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"},"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"},"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_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"},"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"},"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"},"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"},"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"},"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"},"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"}},"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"}},"properties":{"due_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"Optional due date. Omit it to drop the original invoice due date.","title":"Due Date"},"invoice":{"$ref":"#/$defs/Invoice","description":"The original invoice object you passed to generate_invoice. Not an extract_invoice result."},"issue_date":{"description":"Credit note issue date, ISO 8601 (YYYY-MM-DD).","format":"date","title":"Issue Date","type":"string"},"number":{"description":"Credit note number, different from the invoice number. Max 35 characters: letters, digits, and . _ / -.","title":"Number","type":"string"}},"required":["invoice","number","issue_date"],"title":"draft_credit_noteArguments","type":"object"}Geta validan invoicebodyor credit-note example
Return a complete invoicebodyoryoucredit-notecanexample to edit and pass to generate_invoice. Use this first, ⟨29 unchanged words⟩ 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, ⟨17 unchanged words⟩
{"properties":{"document_type":{"default":"invoice","description":"invoice (default): type 380; credit_note: type 381 with a sample original-invoice reference.","enum":["invoice","credit_note"],"title":"Document Type","type":"string"},"profile":{"default":"en16931","description": ⟨32 unchanged words⟩
Validatee-invoiceyour invoice document
⟨12 unchanged words⟩ , and report the fields to fix. Useonwhenreceivedthedocumentscallerorsupplies 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. Supply one source: nonblank xml overrides document_base64 ⟨105 unchanged words⟩
Tryfreefixed invoicevalidation orsamplesdownload(nosampledocumentfilesinput)
TryDemonstratevalidationthewithoutenginesignup,onabundledkeysyntheticorsamplespaidonly;credits,neverusingchecksfixedasyntheticuser'sinvoices.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 ⟨116 unchanged words⟩
{"properties":{"sample":{"anyOf":[{"enum":["valid","invalid"],"type":"string"},{"type":"null"}],"default":null,"description":"valid: fixed CII invoice; invalid: same invoice without the buyer name. Omit for downloads.","title":"Sample"}},"title":"view_invoice_demoArguments","type":"object"}
⟨44 unchanged words⟩ ,"default":null,"description":"ISO 3166-1alpha-2. FR,alpha-2acountrySIRENcode,or a VAT startingforwithexample FRmakes the partyorFrench.DE.","title":"Country Code"},"eori" ⟨105 unchanged words⟩ ,"default":null,"description":"9-digit FrenchSIREN. Give sirenSIREN,siret,includingorleadingvat.zeros.","title":"Siren"},"siret":{ ⟨5 unchanged words⟩ }],"default":null,"description":"14-digitSIRET.Frenchparties need aSIRET,SIRENincludingorleadingSIRET.zeros.","title":"Siret"},"vat":{ ⟨4 unchanged words⟩ null"}],"default":null,"description":"Party's EU VAT number, for example FR40732829320.Checked, or derived from the SIREN.","title":"Vat"}},"title": ⟨3 unchanged words⟩
⟨7 unchanged words⟩ with CII XML into one Factur-X PDF/A-3. Usewhenforyouransystemexistingalreadyvisualproducedinvoice;theusevisualgenerate_invoiceinvoice.toForrender invoiceJSONdatathatorneedsproducerendering,UBL.use generate_invoice instead. pdf_base64 must encodeMatch thebytesparties,not alinesfileandURLtotalsortodata-URI;xmlis unencoded CII text for that same invoice. The tool does not compare the visible PDF amounts with the XMLyourself:ensure theycheckagreeexaminesbeforeonlyembedding.XMLItand cannotembed UBL; use generate_invoice for UBL output. check validates the XML,detect disagreementnotwith thePDF'svisiblecontent: choose base forPDF.ENThe16931embeddedonly,profileorcomesthefromdefault fr-ctcxml;forneitherFrenchcheckadditions.nor languagesets PDFchangesmetadata;it.itlanguage does not translateor redraw yourthe PDF.Invalidbase64, non-PDFinput,non-CII XMLor failed rulesproducereturn a tool errorandwith no file;rulefailureserrors includeids for correction. Use validate_invoice if youids.needFor afindings report.Requires a plan key and consumesfindingsonereportdocumentuseonvalidate_invoice.success.SuccessReturnsreturns a JSONtextsummary(profile, size_bytes, warningcount)plusand a base64 PDF/A-3embeddedresource. Requires a plan key; success consumes one document, errors consume none. Nothing is stored or sent.
⟨11 unchanged words⟩ ":{"default":"fr-ctc","description":"Rule set theXMLmust pass beforevalidationembeddingrules: fr-ctc(default, EN 16931 plusadds French BR-FR-*)or baseto(EN16931 only). A failed check is a tool error listing the rule ids, not a validation report,16931;andbasenousesis16931returned.only.","enum":["base","fr-ctc"], ⟨18 unchanged words⟩ or en."},"pdf_base64":{"description":"Required.Standard base64 ofthe visual invoice PDF. After decoding it must be a
⟨14 unchanged words⟩ value. Use after validate_invoice or a generate_invoice ruleerror; thiserror,explainsnotatofindingvalidatebutandoesinvoicenotitself.validate orrulemodifyisantrimmedinvoice.andPassuppercasedthetofinding'sselectruleaid,guidenotentry.itsmessage/json_pointerprosemustmessage;comesurroundingfromspacesthatare removedsameandfinding:thenonemptyidvaluesisoverrideuppercased.itsPassgenericmessagecontext,andbutjson_pointerneverfromchange thesame findingselectedtofixretainorits specific context: nonemptyexample.valuesOmitoverridethemthetoguide'susegenericguidemessagedefaultsandforsuggestedknownfield.rules. Returns rule, known,json_pointermessage,messagejson_pointer, fix andexample (plus problem for aexample; knownrule). The shortrulesguidealsocoversincludeselectedproblem. Selected BR-FR rules andBR-CO-17/BR-CO-26.BR-CO-17/BR-CO-26 have guidance. Unknown ids return known=falseand example=null,preserving yourwithmessage/pointer;thethissuppliediscontext, nota validation pass or aantoolerror;error.consultUsethe originalfinding rather than inventing a correction.finding. No key or document quota is needed;nothingis stored and no external registernothing iscalled.stored.
⟨6 unchanged words⟩ null"}],"default":null,"description":"json_pointer from the finding. Used as-isOriginalwhenfinding'syoujson_pointersendfieldit.path.","title":"Json Pointer"},"message" ⟨4 unchanged words⟩ null"}],"default":null,"description":"TheOriginalfindingfinding's message,echoed back when the rule is not in the short guide.text.","title":"Message"},"rule":{"description":"Rule id fromValidationarulefindingidentifier, for example BR-FR-01 or BR-CO-26.Required.","title":"Rule","type":"string ⟨6 unchanged words⟩
Read an e-invoice and return its business data asExtractJSON:invoicenumberparties, dates,seller, buyerlines, totals,and VATbreakdown,aslines. UseJSON for bookkeeping,matchingorsummaries of a received Factur-X PDF, CII or UBL XML. This parses embedded/XML data; it does not OCR a scanned PDF, validate rules, repair totals or change the input.matching. Use validate_invoice forcompliance and generate_invoice to create a document. Prefer xml for text already available; use document_base64compliance;forthisfileperformsbytesnowithoutOCRaordata-URIrecalculation.prefix. SendSupply oneinputsource:nonblank xmltakes precedence if bothoverridesaredocument_base64supplied.withoutLeaveinspectinginclude_xml=falseit,for businesssofieldsomitonly;xmlsettoitextracttrueawhenPDF's attachment.youinclude_xmlalsoreturnsneedthattheselected sourceXMLforvalidationarchiving orarchiving. The extracted fields arevalidation, notaXML reconstructedgenerate_invoicefrominputfields.body;Extractedmapfieldsthemneedintomappingthatbeforetool'suseinvoiceasschema.generate_invoice input. Returnsflavor,fieldsprofile,andguideline,format/profilexml_filenamemetadata,fields andplus PDF metadata(nullforXML input), plus xml whenPDFrequested.input. Missing business valuesremainnull andnull; numeric values arestrings, not recalculated numbers.strings. Missing input, invalid base64, malformed/unrecognized XMLor a PDF withoutembeddede-invoiceembedded XMLisreturns a tool error, nota successfulan empty extraction.Requires a plan key;successfulextractionssuccessconsumeconsumes one document, errorsdoconsumenot.none. Nothing is stored orsent to recipients.sent.
⟨6 unchanged words⟩ null"}],"default":null,"description":"Base64Standard base64 of a Factur-X PDF,or of aCIIor UBLXMLfile. Give thisorxml. If both are set, nonblank xml is used. Invalid base64 is a tool error. A PDF with no embedded e-invoiceUBL XMLis a tool error, not an empty result. Omit both andfile;thenotooldata-URIerrors.prefix.","title":"Document Base64"},"include_xml":{"default":false,"description":"When true, the result also includes theIncluderawsource XML text,which can be large. Default false returns onlyin theparsed fieldsresult;
⟨22 unchanged words⟩ , 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 you already have a ⟨194 unchanged words⟩
⟨16 unchanged words⟩ to fix. Use on received documents or aftera correction;corrections; use extract_invoiceto read business data instead. Prefer xmlforXML already available as text; use document_base64 for PDF or XML filebusinessbytes,data.without a data-URI prefix. SendSupply oneinputsource: nonblank xmltakes precedence if both are supplied. The profile is detected from the document, notoverridesselecteddocument_base64bywithoutcheck.inspectingChooseit.check=baseToforcheckENa16931PDF'sonly;attachment,theomitdefaultxml.fr-ctccheck addsFrenchrulesand cantoreporttheFrench-fielddetectedomissionsprofile;onitforeigncannotinvoices. RunschangeXSDthatbeforeprofile. Useschematron;baseschemaforfailuresnon-Frenchskipinvoicesthetolateravoidrules.French-field findings. Returnsvalid, profile, flavor, checks_run/checks_skippedvalidity and findings withseverity,rule,messageids andjson_pointerfieldwhenpointersavailable.for explain_finding. XSD failuresInspectskip schematron; inspect checks_skipped before treatingthe reportvalidation ascomplete;complete.warningsWarnings alone donot make valid false.Fix the fields identified in findings, or use explain_finding for guidance. No invoicenotisinvalidatechangedanorinvoice.stored.Rule failuresandor a PDF withoutembeddedXML returnvalid=false normally.valid=false;Missingmissing input,invalid base64,malformedXMLmalformed or unrecognizedinvoiceXMLinsteadreturn a tool error.Requires a plankey; everykey: completedreportreportsconsumesconsume one document,evenvalid=false.whenToolinvalid; tool errors do not. No invoice is changed, stored or sent.
⟨2 unchanged words⟩ :{"default":"fr-ctc","description":"fr-ctc(default): EN 16931 plus French CTC rules (BR-FR-*). base: EN 16931 only.A failed rule is a normal result with valid false and findings, not a tool error.","enum":["base","fr-ctc"], ⟨9 unchanged words⟩ null"}],"default":null,"description":"Base64Standard base64 of a Factur-X PDF,or of aCIIor UBLXMLfile. Give thisorxml. If both are set, nonblank xml is used. Invalid base64 is a tool error. OmitUBLbothXMLandfile;thenotooldata-URIerrors.prefix.","title":"Document Base64"},"xml" ⟨7 unchanged words⟩ ,"description":"CII or UBL XML asplainunencoded
Check seller and buyer before generating an invoice — Check both invoice parties together and return their readiness and separate evidence before generation. 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. M…
⟨7 unchanged words⟩ }],"default":null,"description":"Streetline.line;Checkedanyonlyaddress,whenpostal_codeyouorsendcityanactivatesaddress.address checking.","title":"Address"},"city":{ ⟨66 unchanged words⟩ null"}],"default":null,"description":"SellerParty IBAN. Checked only when you send it.", ⟨46 unchanged words⟩ ":{"default":"buyer","description":"sellerPartyorrolebuyer.recordedRequired.in the evidence; defaults to buyer.","enum":["seller","buyer"], ⟨70 unchanged words⟩
{"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true}
⟨9 unchanged words⟩ same parties and lines, amounts unchanged. Usewhenfortheacustomerfullwantscredit of anavoirexisting invoice, not foranextractinginvoiceayouPDFalreadyorgenerated.validatingNoaAPIdocument. invoicekeymustisberequiredthe original generate_invoice input object, not extract_invoice output. number and issue_date belong to thecallnewdoescreditnotnote;counttheasoriginal number/date are copied into preceding_invoices. Give number adocument.distinctpreceding_invoicesvalueisandsetusetoYYYY-MM-DD dates. due_date replaces the original deadline; omitting it removes that deadline rather than inheriting it. All originalnumberlines, quantities andissuedateamounts(BR-FR-06).areAmountsretained,staysopositive;thisdodoes notnegatecalculatelines.aApartialdocumentrefund. Keepthatamountsispositive:alreadytype 381 expresses the credit. Existing credit notes, a reused invoice numbercreditornotenegativeisline amounts produce a tool error.CallDefaultgenerate_invoicepaymentwithremittance references follow the new number; a custom reference is preserved. Returns invoice, type_code, preceding_invoice and next. Pass the returned invoice toemitgenerate_invoice with thefile.original profile to create the document.NothingNo key or document quota isstored.needed for drafting; nothing is stored, sent or refunded.
⟨13 unchanged words⟩ PDF/A-3. Use when your system already produced theandinvoice.youForonlyinvoiceneedJSON that needs rendering, use generate_invoice instead. pdf_base64 must encode thehybridPDF bytes, not a fileFrenchURLplatformsoraccept.data-URI;Doxml is unencoded CII text for that same invoice. The tool does notusecomparetothecreatevisibleanPDFinvoiceamounts withfromthedataXML:callensure they agree before embedding. It cannot embed UBL; use generate_invoice,whichforrendersUBL output. check validates thetoo.notBoth pdf_base64theandPDF'sxmlvisiblearecontent:required.chooseInvalidbasebase64for EN 16931 only,aorfilethethatdefault fr-ctcisfornotFrenchaadditions. language sets PDF,XMLmetadata;thatitisdoes notCII,translate orXMLredraw your PDF.thatInvalidfailsbase64,`check`non-PDFareinput, non-CII XML or failed rules produce a toolerrors,error and noisfailuresreturned.includeAidsfailedforcheckcorrection.listsUserulevalidate_invoiceids.ifNothingyouisneed a findings report.stored.Requires a plan key and consumes one document on success. Returns a JSON text summary (profile,plussize_bytes,thewarningPDF/A-3count)asplus a base64 PDF/A-3 embedded resource. Nothing is stored or sent.
⟨14 unchanged words⟩ value. Use after validate_invoice or a generate_invoice ruleerror.error;NothisAPIexplainskeyaisfindingrequired,butanddoes not validate or modify an invoice. Pass thecall doesfinding'snotrulecountid,asnotaitsdocument.proseKnownmessage;rulessurrounding spaces are removed and theFrenchidBR-FRischecksuppercased. Pass message andBR-CO-17json_pointer/fromBR-CO-26the same finding to retaindescribeditsinspecific context: nonempty values override thedocs.guide'sAngenericunknownmessage and suggested field. Returns rule,returnsknown, json_pointer, message, fix and example (plus problem for a knownfalse:rule). Thekeepshorttheguidefindingcoversmessageselected BR-FR rules and BR-CO-17/BR-CO-26. Unknown ids return known=falsejson_pointerand example=null,andpreservingdoyour message/pointer; this is notinventa validation pass or afix.toolNothingerror. Use the original finding rather than inventing a correction. No key or document quota isstored.needed; nothing is stored and no external register is called.
⟨13 unchanged words⟩ buyer, totals, VAT breakdown, lines. Usetoforgetbookkeeping,thematchingcontentor summaries of a received Factur-X PDF, CIIXMLor UBLXMLXML.forThisbookkeepingparses embedded/XML data; it does not OCR a scanned PDF,matchingvalidate rules, repair totals orsummaries.Doeschangenotthejudgeinput. Use validate_invoice for compliance:callandvalidate_invoicegenerate_invoice to create a document. Prefer xml forthat.textGivealreadyexactlyavailable; use document_base64 for file bytes without a data-URI prefix. Send oneofinput: nonblank xml takes precedence if both are supplied. Leave include_xml=false fordocument_base64business fields only; set it true when you also need the source XML for validation orxml.archiving. TheSendingextractedneitherfieldsisare not atoolgenerate_invoiceerror;inputsendingbody;bothmapusesthemxml.intoInvalidthatbase64tool's invoice schema. Returns flavor,aprofile, guideline, xml_filename, fields and PDFwithnometadataembedded(nulle-invoicefor XML input),XMLplus xmlthatwhenisrequested. Missing business values remain null and numeric values are strings, not recalculatedwell-formednumbers. Missing input,orinvalid base64, malformed/unrecognized XMLthatorisanotPDFanwithout embedded e-invoice XML is a toolerror.Those cases doerror, notreturnaansuccessful emptyfields object.extraction.Read-only,Requiresnothingastored.planReturnskey;{profile,successfulfields{...}}extractionsandconsume one document,witherrorsinclude_xmldotrue,not.theNothingXMListext.stored or sent to recipients.
⟨24 unchanged words⟩ this or xml. If both are set, nonblank xml is used. Invalid base64 is a tool ⟨84 unchanged words⟩ If both are set, this value isused.used when nonblank. XML that is not well-formed or not an ⟨16 unchanged words⟩
⟨53 unchanged words⟩ call validate_invoice; to read one, call extract_invoice.profile is the ENStart16931invoicelevelfromwrittenget_invoice_example,inreplacingthesampleXML:partiesen16931and(default),dates.extended,Leaveextended-ctc-fr,totalsorandbasicwl.lineoutput isnet_amountfacturx-pdfomitted(default,toPDF/A-3computewiththemCIIfrominside)quantities,cii-xmlprices,or ubl-xml.allowancescheckandischarges.fr-ctcFor(defaultubl-xml,EN 16931profileplusmustFrenchbeBR-FR-*)en16931 orbase (EN 16931 only); the fileextended-ctc-fr;isextendedreturnedandonlybasicwlifarethoseCII/PDF-only.rulesprofilepass.selectsparty_checktheasksXMLEUmodelVerifywhilefirst.checknot_readyselectsisvalidationarules:tooluseerrorcheck=basenamingforthenon-Frenchfield,invoices; changingandchecknodoesfilenotisdisablereturned. languageparty_check.islanguagefrandorfooter_textenaffectforonly the visual PDF. Omittedfooter_textparty_checkisenablesoptionalregistryfooteronlytext. Forforextended-ctc-fr,extended-ctc-fr;EUtrue/falseVerifyexplicitly overrideschecksthatthedefault.sellerEnabledandchecksbuyersendfirst.partyAidentifiers/addressreadyandfilesellerincludesIBANatodatedEUevidenceVerify.id.Aregisternot_readyoutageverdictdoesblocksnotoutputblock.withThefieldinvoicepointers.isSuccessfulvalidatedchecks(XSDadd+evidenceschematronids; registryforoutages`check`)dobeforenotit isblockreturned;generationaandrulearefailurereportedlistsasidswarnings,suchnotasproofBR-CO-10oforreadiness. XSD/business-ruleBR-FR-01failuressoreturnyouacantool error with rule ids; fix the input and retry.NothingRequiresisastored,planandkey;theeachinvoicesuccessfulisresultnotusessent.one document, including repeated calls. Returns a JSON text summaryplus(totals,thewarnings,documentevidence) and an embedded resource: base64 PDFforfacturx-pdf,or XMLtexttext.otherwise.No invoice is stored or sent to a recipient.
{"idempotentHint":true,"openWorldHint":falsetrue,"readOnlyHint":true}
⟨12 unchanged words⟩ and report the fields to fix. Use onany documentreceivedyoudocumentsdidornotafterproduceawithcorrection;generate_invoice,useorextract_invoice tore-checkreadafterbusinessadatafix.instead. PreferDoxmlnotfor XML already available as text; useto readdocument_base64theforinvoicePDFcontent:orcallXMLextract_invoice.fileGivebytes, withoutexactlya data-URI prefix. Send oneofinput:document_base64nonblankorxmlxml.takesSending neitherprecedenceisifabothtoolareerror;supplied. Thesendingprofilebothisusesdetectedxml.fromInvalidthebase64document,XMLnotthatselectedisbynotcheck.well-formed,Chooseorcheck=baseXMLforthat isENnot16931 only;anthee-invoicedefaultisfr-ctcaaddstoolFrencherror.rulesRunsandXSD,canthenreporttheFrench-fieldENomissions16931onschematron,foreignplusinvoices. RunsFrenchXSDBR-FR-*beforerules whenschematron;checkschemaisfailuresfr-ctc.skipRead-only,thenothinglaterstored.rules. Returns{valid, profile,findings[]}. Each finding hasflavor,the rulechecks_run/checks_skippedidand(forfindingsexamplewithBR-CO-10)severity,therule, message,and json_pointer when available. Inspect checks_skipped before treating theinvoicereportfieldascancomplete;bewarningsnamed, soaloneyoudocannotpatchmakethatvalidfieldfalse. Fixandtheretry.fieldsAidentifiednon-compliantindocumentfindings,includingor use explain_finding for guidance. No invoice is changed or stored. Rule failures and a PDFwith nowithout embedded XML return valid=false normally. Missing input, invalid base64,ismalformed XML or unrecognized invoice XML instead return anormaltoolresulterror.withRequiresvalidafalseplan key; every completed report consumes one document,notevenanvalid=false.error.Tool errors do not.
⟨65 unchanged words⟩ this or xml. If both are set, nonblank xml is used. Invalid base64 is a tool ⟨32 unchanged words⟩ If both are set, this value isused.used when nonblank. Well-formed XML that is not an e-invoice is ⟨9 unchanged words⟩
View a free sample invoice and validation report — Preview the service with downloadable sample Factur-X PDF, CII and UBL invoices and a published validation report. Call with {}: there are no parameters, so do not supply invoice data, file URLs or credentials. No signup, key or document quota is needed. Returns sample file URLs, the report's original check date and setup/pricing links; it does not generate files or rerun validation. For an editable input body use get_invoice_example. To process your own documents, use generate_invoice, validate_invoice or extract_invoice with a paid key.
⟨18 unchanged words⟩ must pass before embedding: fr-ctc (default,FranceEN 16931 plus French BR-FR-*) or base (EN 16931 only). A failed check is a tool error listing the rule ids, not a validation report, and no PDF is returned.","enum":["base","fr-ctc"], ⟨6 unchanged words⟩ #/$defs/Language","default":"fr","description":"Document languageLanguage written in the PDF metadata: fr (default) orenen."},"pdf_base64":{"description":"YourRequired.existingStandard base64 of the visual invoice(anyAfterPDF,decodingwillit must beconvertedatoPDFPDF/A-3(bytes start with %PDF-),. Invalid base64encodedor a non-PDF is a tool error and no file is returned. The PDF is converted to PDF/A-3.","title":"Pdf Base64","type":"string"},"xml":{"description":"Factur-X /Required. CII XMLtextfor the sameinvoice;invoice (Factur-X / EN 16931). UBL and any other flavor cannot be embedded: that is a tool error and no PDF is returned. The XML must passthe`check`rulesor the toolfailserrors with the rule ids and returns no PDF.","title":"Xml","type":"string ⟨7 unchanged words⟩
⟨18 unchanged words⟩ Use to get the content of a receivedinvoice (Factur-X PDF, CII XML or UBL XML)for bookkeeping, matchingoror summaries. Does not judge compliance: call validate_invoice for that. Give exactly one of document_base64 or xml. Sending neither is a tool error; sending both uses xml. Invalid base64, a PDF with no embedded e-invoice XML, XML that is not well-formed, or XML that is not an e-invoice is a tool error. Those cases do not return an empty fields object. Read-only, nothing stored.ReturnsReturns {profile, fields{...}} and, with include_xml true, the XML text.
⟨6 unchanged words⟩ null"}],"default":null,"description":"Base64 of a Factur-X PDF,(theorembeddedof a CII or UBL XMLisfile.read)Give this or xml. If both are set, xml is used. Invalid base64 is aCII/UBLtool error. A PDF with no embedded e-invoice XMLfileis a tool error,base64notencodedan empty result. Omit both and the tool errors.","title":"Document Base64"},"include_xml":{"default":false,"description":"AlsoWhenreturntrue, the result also includes the raw XML text,(large);whichdefaultcan be large. Default false returns only the parsed fields (number, dates, parties, totals, VAT, lines).","title":"Include Xml","type": ⟨9 unchanged words⟩ description":"CII or UBL XML as plaintext;text.alternativeAlternative to document_base64,: give exactlyoneone. If both are set, this value is used. XML that is not well-formed or not an e-invoice is a tool error, not an empty fields object.","title":"Xml"}},"title": ⟨3 unchanged words⟩
GenerateFactur-Xan EN 16931 invoice
Createaannew,ENcompliant16931 e-invoice(from structured data: Factur-X PDF/A-3, CII XML, or UBLXML) from structured invoice2.1data.XML. Use when you have theinvoice content (parties, lines,and dates)and need the document. Do not use when youalready have avisual PDF anda Factur-XCII XMLto combine: call embed_xml. To check a document you did notcreate here, call validate_invoice;to read one, call extract_invoice.Theprofileresultis the EN 16931 level written in the XML: en16931 (default), extended, extended-ctc-fr, or basicwl. output isvalidatedfacturx-pdf (XSDdefault,+PDF/A-3schematronwithforCII`check`inside),beforecii-xml,itor ubl-xml. check isreturned;fr-ctcon(default, ENfailure16931 plus French BR-FR-*) or base (EN 16931 only); thetoolfilereturnsis returned only if those rules pass.anparty_check asks EU Verify first. not_ready is a tool errorlistingnaming thefailingfield, and no file is returned. language is fr or en for the visual PDF. footer_text is optional PDF footer text. For extended-ctc-fr, EU Verify checks the seller and buyer first. A ready file includes a dated evidence id. A register outage does not block. The invoice is validated (XSD + schematron for `check`) before it is returned; a rule failure lists ids(e.g.such as BR-CO-10,or BR-FR-01)so you can fix the input and retry. Nothing isstored.stored, and the invoice is not sent. Returns a text summary(number, totals, warnings)plus the documentas an embedded resource: base64 PDF forfacturx-pdf, XML textfor cii-xml / ubl-xml.otherwise.
⟨3100 unchanged words⟩ }],"default":null,"description":"Optionalfootertextonprinted in the PDF footer. Omit it for no footer. Ignored for XML-only output.","title":"Footer Text"},"invoice" ⟨41 unchanged words⟩ ":"Language of the visual PDF: fr (default) orenen. Ignored when output is cii-xml or ubl-xml."},"output":{"$ref":"#/$defs/OutputFormat", ⟨4 unchanged words⟩ default): PDF/A-3 with the visual invoice andtheCII XMLembeddedinside, theformathybrid file French platforms accept. cii-xml:theUN/CEFACT CII XML alone. ubl-xml: UBL 2.1 XMLalone (Peppol-style).alone."},"party_check":{"anyOf":[{"type ⟨2 unchanged words⟩ null"}],"default":null,"description":"Check parties withAsk EU Verify whether the seller and buyer are invoice-ready
Checkwhether an existing e-invoicea(Factur-X PDF, CII XML or UBL XML)isagainstcompliantEN 16931, and reportwhythenot.fields to fix. 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 toread the invoice content: call extract_invoice. Give exactly one of document_base64 or xml. Sending neither is a tool error; sending both uses xml. Invalid base64, XML that is not well-formed, or XML that is not an e-invoice is a tool error. Runs XSD, then the EN 16931 schematron,(plus French BR-FR-* rules whenforcheckfr-ctc).is fr-ctc. Read-only, nothing stored.Returns {valid, profile, findings[]}where.eachEach finding hasthe rule id (e.g.for example BR-CO-10),severitythe message, and json_pointer when the invoice field can be named,message;soayou can patch that field and retry. A non-compliant document, including a PDF with no embedded XML, is a normal result with valid false, not an error.
⟨4 unchanged words⟩ "description":"fr-ctc (default): EN 16931+plus French CTC rules (BR-FR-*). base: EN 16931 only. A failed rule is a normal result with valid false and findings, not a tool error.","enum":["base","fr-ctc"], ⟨9 unchanged words⟩ null"}],"default":null,"description":"Base64 of a Factur-X PDF,(theorembeddedof a CII or UBL XMLisfile.read)Give this oraxml.CII/UBLIfXMLbothfileare set, xml is used. Invalid base64encoded
Check whether a party is invoice-ready — Ask EU Verify whether one seller or buyer can appear on an invoice. Use before generate_invoice, so you can fix a SIREN or VAT number without spending a document. Requires a plan key. Pro and Scale keys are accepted by EU Verify. Other keys, including the trial key, get status plan_excluded and no register is called through. invoice_ready includes an evidence pack. not_ready lists closed reason codes and a pointer (/siren, /vat, /iban, /address, /eori). upstream_unavailable means a register did not answer. Nothing is stored. This call does not count against the docume…
Draft a credit note from an invoice — Return the credit-note body for an invoice: type 381, same parties and lines, amounts unchanged. Use when the customer wants an avoir for an invoice you already generated. No API key is required, and the call does not count as a document. preceding_invoices is set to the original number and issue date (BR-FR-06). Amounts stay positive; do not negate lines. A document that is already a credit note is a tool error. Call generate_invoice with the returned invoice to emit the file. Nothing is stored.
Explain a validation finding — 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. No API key is required, and the call does not count as a document. Known rules are the French BR-FR checks and BR-CO-17 / BR-CO-26 described in the docs. An unknown rule returns known false: keep the finding message and json_pointer, and do not invent a fix. Nothing is stored.
Get a valid invoice body — Return a complete invoice body you can 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. 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.
after
{"$defs":{"AdditionalDocument":{"additionalProperties":false,"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-123","title":"Description"},"id":{"description":"BT-122","title":"Id","type":"string"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-124","title":"Url"}},"required":["id"],"title":"AdditionalDocument","type":"object"},"Address":{"additionalProperties":false,"properties":{"city":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-37 / BT-52","title":"City"},"country":{"description":"ISO 3166-1 alpha-2, BT-40 / BT-55","maxLength":2,"minLength":2,"title":"Country","type":"string"},"country_subdivision":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-39 / BT-54","title":"Country Subdivision"},"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"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-38 / BT-53","title":"Postal Code"}},"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":{"department":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-41-0 / BT-56-0 (used when name is empty)","title":"Department"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-43 / BT-58","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-41 / BT-56","title":"Name"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-42 / BT-57","title":"Phone"}},"title":"Contact","type":"object"},"CreditLine":{"additionalProperties":false,"properties":{"line_index":{"description":"1-based position in the original invoice.lines array, not its id.","minimum":1,"title":"Line Index","type":"integer"},"quantity":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"pattern":"^(?!^[-+.]*$)[+-]?0*(?:\\d{0,13}|(?=[\\d.]{1,20}0*$)\\d{0,13}\\.\\d{0,6}0*$)","type":"string"}],"description":"Positive quantity to credit, at most the original line quantity; decimal string.","title":"Quantity"}},"required":["line_index","quantity"],"title":"CreditLine","type":"object"},"Delivery":{"additionalProperties":false,"properties":{"actual_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-72","title":"Actual Date"},"address":{"anyOf":[{"$ref":"#/$defs/Address"},{"type":"null"}],"default":null},"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"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Deliver-to party name, BT-70","title":"Name"},"period_end":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-74","title":"Period End"},"period_start":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-73","title":"Period Start"}},"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":{"early_payment_discount":{"default":"Pas d'escompte pour paiement anticipé.","description":"Note code AAB","title":"Early Payment Discount","type":"string"},"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"}},"title":"FrenchMentions","type":"object"},"Invoice":{"additionalProperties":false,"properties":{"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"},"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"},"buyer":{"$ref":"#/$defs/Party","description":"BG-7"},"buyer_accounting_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-19","title":"Buyer Accounting Reference"},"buyer_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-10","title":"Buyer Reference"},"charges":{"description":"BG-21","items":{"$ref":"#/$defs/AllowanceCharge"},"title":"Charges","type":"array"},"contract_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-12","title":"Contract Reference"},"currency":{"default":"EUR","description":"BT-5","maxLength":3,"minLength":3,"title":"Currency","type":"string"},"delivery":{"anyOf":[{"$ref":"#/$defs/Delivery"},{"type":"null"}],"default":null,"description":"BG-13"},"despatch_advice_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-16","title":"Despatch Advice Reference"},"due_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-9","title":"Due Date"},"french_mentions":{"$ref":"#/$defs/FrenchMentions","description":"Mandatory French legal mentions (BR-FR-05)"},"issue_date":{"description":"BT-2","format":"date","title":"Issue Date","type":"string"},"lines":{"description":"BG-25","items":{"$ref":"#/$defs/Line"},"minItems":1,"title":"Lines","type":"array"},"notes":{"description":"BG-1","items":{"$ref":"#/$defs/Note"},"title":"Notes","type":"array"},"number":{"description":"BT-1 (BR-FR-01/02: max 35 chars, letters, digits, . _ / -)","maxLength":35,"pattern":"^[A-Za-z0-9._/\\-]+$","title":"Number","type":"string"},"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"},"payment":{"anyOf":[{"$ref":"#/$defs/Payment"},{"type":"null"}],"default":null,"description":"BG-16"},"payment_terms":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-20","title":"Payment Terms"},"preceding_invoices":{"description":"BG-3","items":{"$ref":"#/$defs/PrecedingInvoice"},"title":"Preceding Invoices","type":"array"},"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"},"project_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-11","title":"Project Reference"},"purchase_order_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-13","title":"Purchase Order Reference"},"receiving_advice_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-15","title":"Receiving Advice Reference"},"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"},"sales_order_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-14","title":"Sales Order Reference"},"seller":{"$ref":"#/$defs/Party","description":"BG-4"},"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"},"tax_point_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-7","title":"Tax Point Date"},"tender_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-17","title":"Tender Reference"},"totals":{"anyOf":[{"$ref":"#/$defs/Totals"},{"type":"null"}],"default":null,"description":"BG-22, computed when omitted"},"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"},"vat_accounting_currency":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-6","title":"Vat Accounting Currency"}},"required":["number","issue_date","seller","buyer","lines"],"title":"Invoice","type":"object"},"Line":{"additionalProperties":false,"properties":{"allowances":{"description":"BG-27","items":{"$ref":"#/$defs/LineAllowanceCharge"},"title":"Allowances","type":"array"},"attributes":{"additionalProperties":{"type":"string"},"description":"BG-32 item attributes","title":"Attributes","type":"object"},"buyer_accounting_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-133","title":"Buyer Accounting Reference"},"buyer_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-156","title":"Buyer Item Id"},"charges":{"description":"BG-28","items":{"$ref":"#/$defs/LineAllowanceCharge"},"title":"Charges","type":"array"},"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"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-126, auto-numbered when omitted","title":"Id"},"item_description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-154","title":"Item Description"},"item_name":{"description":"BT-153","title":"Item Name","type":"string"},"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"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-127","title":"Note"},"order_line_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-132","title":"Order Line Reference"},"origin_country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-159","title":"Origin Country"},"period_end":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-135","title":"Period End"},"period_start":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-134","title":"Period Start"},"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"},"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"},"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"},"seller_item_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-155","title":"Seller 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"},"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"},"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"}},"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":{"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"},"text":{"description":"BT-22","title":"Text","type":"string"}},"required":["text"],"title":"Note","type":"object"},"Party":{"additionalProperties":false,"properties":{"address":{"$ref":"#/$defs/Address"},"contact":{"anyOf":[{"$ref":"#/$defs/Contact"},{"type":"null"}],"default":null},"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"},"global_ids":{"additionalProperties":{"type":"string"},"description":"BT-29 / BT-46: {schemeID: identifier}, e.g. {'0009': SIRET}","title":"Global Ids","type":"object"},"legal_info":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Seller only, BT-33: legal form, share capital, RCS city...","title":"Legal Info"},"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"},"name":{"description":"Legal name, BT-27 / BT-44","title":"Name","type":"string"},"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"},"siret":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"French SIRET (14 digits). Shortcut for electronic_address with scheme 0225.","title":"Siret"},"tax_registration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Seller only, BT-32","title":"Tax Registration Id"},"trading_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-28 / BT-45","title":"Trading Name"},"vat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-31 / BT-48, e.g. FR12345678901","title":"Vat Id"}},"required":["name","address"],"title":"Party","type":"object"},"Payment":{"additionalProperties":false,"properties":{"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"},"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"},"iban":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Payee account, BT-84","title":"Iban"},"mandate_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Direct debit, BT-89","title":"Mandate Reference"},"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"},"terms":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"BT-20","title":"Terms"}},"title":"Payment","type":"object"},"PrecedingInvoice":{"additionalProperties":false,"properties":{"issue_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"BT-26","title":"Issue Date"},"number":{"description":"BT-25","title":"Number","type":"string"}},"required":["number"],"title":"PrecedingInvoice","type":"object"},"Totals":{"additionalProperties":false,"description":"Document totals (BG-22). All computed by the engine when omitted.","properties":{"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"},"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"},"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"},"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"},"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"},"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_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"},"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"},"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"},"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"},"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"},"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"},"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"}},"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"}},"properties":{"credit_lines":{"anyOf":[{"items":{"$ref":"#/$defs/CreditLine"},"minItems":1,"type":"array"},{"type":"null"}],"default":null,"description":"Selected original line positions and quantities. Omit for a full credit; an empty list is invalid.","title":"Credit Lines"},"due_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"Optional due date. Omit it to drop the original invoice due date.","title":"Due Date"},"invoice":{"$ref":"#/$defs/Invoice","description":"The original invoice object you passed to generate_invoice. Not an extract_invoice result."},"issue_date":{"description":"Credit note issue date, ISO 8601 (YYYY-MM-DD).","format":"date","title":"Issue Date","type":"string"},"number":{"description":"Credit note number, different from the invoice number. Max 35 characters: letters, digits, and . _ / -.","title":"Number","type":"string"}},"required":["invoice","number","issue_date"],"title":"draft_credit_noteArguments","type":"object"}