Wiki section: Reference
Tier: 3 — Reference
Publish when: InvoicePlane v1.8.0 is released
Always validate a newly generated invoice before sending it to a client or submitting it to a platform. One validation round against the official validator for your format will catch the vast majority of issues.
Validator directory
Recommended validation workflow
For a new format or config
- Generate a test invoice for a known client
- Upload the XML (or XML+PDF for embedded formats) to the relevant validator
- Fix any reported errors — see Common validation errors for a mapped list
- Re-generate and re-validate until clean
- Save a passing test invoice as a reference fixture
For ongoing production use
- Validate the first invoice of each calendar month
- Validate whenever the InvoicePlane version or this module is updated
- Validate after any change to a config file in
XMLconfigs/
Testing embedded formats (Factur-X / ZUGFeRD)
For embedXML: true formats, the validator needs the PDF file, not just the XML. Upload the PDF — the validator extracts and validates the embedded XML attachment automatically.
To inspect the embedded XML manually:
# Extract XML from PDF using pdfdetach (poppler-utils)
pdfdetach -saveall invoice.pdf
# or
unzip invoice.pdf -d extracted/
The embedded file will be named factur-x.xml or zugferd-invoice.xml.
Validating against XSD schemas locally
For CI pipelines or automated testing, download the official XSD schemas:
xmllint --schema urn-un-unece-uncefact-data-standard-CrossIndustryInvoice-100.xsd \
--noout invoice.xml
Common first-run failures
| Error |
Likely cause |
Fix |
Empty EndpointID |
client_vat_id or client_tax_code not filled |
Fill client record |
Missing BuyerReference |
invoice_routing_code_1 not set |
Add via invoice E-Invoicing section |
| BR-FR-02 |
Invoice number contains . or # |
Change numbering scheme |
| ubl-BE-15 |
Tax rate not in TaxName mapping |
Use 21, 12, 6, or 0 % only |
| BR-50 / BR-61 |
No IBAN set |
Fill user_iban in Settings → User |
Full error reference: Common validation errors and fixes
Migrated from InvoicePlane/InvoicePlane-e-invoices#49.
Always validate a newly generated invoice before sending it to a client or submitting it to a platform. One validation round against the official validator for your format will catch the vast majority of issues.
Validator directory
Recommended validation workflow
For a new format or config
For ongoing production use
XMLconfigs/Testing embedded formats (Factur-X / ZUGFeRD)
For
embedXML: trueformats, the validator needs the PDF file, not just the XML. Upload the PDF — the validator extracts and validates the embedded XML attachment automatically.To inspect the embedded XML manually:
The embedded file will be named
factur-x.xmlorzugferd-invoice.xml.Validating against XSD schemas locally
For CI pipelines or automated testing, download the official XSD schemas:
xmllint --schema urn-un-unece-uncefact-data-standard-CrossIndustryInvoice-100.xsd \ --noout invoice.xmlCommon first-run failures
EndpointIDclient_vat_idorclient_tax_codenot filledBuyerReferenceinvoice_routing_code_1not set.or#TaxNamemappinguser_ibanin Settings → UserFull error reference: Common validation errors and fixes
Migrated from InvoicePlane/InvoicePlane-e-invoices#49.