Implementation reference
Electronic invoice validation: check the format, profile, and business facts
On this page
Electronic invoice validation checks whether an invoice can be interpreted under a stated format and profile and whether its data satisfies the relevant rules. A complete operational workflow also reconciles that invoice with the source accounting record, delivery evidence, and recipient response. Opening a PDF successfully or parsing XML is only an early check.
Direct answer: Identify the invoice format and exact profile, preserve the original artifact, run the applicable schema and business-rule validation, review calculation and identifier errors, and reconcile the result with the source invoice. For hybrid invoices, inspect both the PDF container and embedded structured data. A passing validator result does not by itself prove recipient acceptance or payment approval.
Choose the right validation target
Start with what the recipient expects. A request for a UBL invoice, Peppol BIS Billing invoice, ZUGFeRD invoice, Factur-X invoice, or XRechnung invoice names different aspects of the format or implementation. Do not select a validator merely because it accepts files with the same extension. XML is a container for many unrelated document models, and a PDF can contain no structured invoice at all.
Record the syntax, profile identifier, release, recipient channel, and any relevant country or partner requirements. Keep the source of those requirements with the connection configuration. An invoice generated under yesterday's settings should remain traceable even after a rule update. A result without a declared rule version is difficult to reproduce when a customer disputes why a file passed or failed.
This guide explains technical validation and operating controls. It does not determine which invoicing obligations apply to an individual business. Configure those obligations from the appropriate current authority and the business's accounting requirements, then test the resulting technical contract. Avoid using a generic “EU compliant” badge as a substitute for an explicit supported profile and scope.
UBL is a syntax; a profile adds requirements
A UBL invoice uses a structured document model. A particular exchange profile can constrain that model and add business rules. Consequently, an XML document can satisfy a schema while still failing the intended invoice profile. Schema checks and profile checks should appear as separate stages in a report so the user can understand what has actually been established.
OpenPeppol's current Billing documentation provides separate invoice and credit-note syntax references, business rules, code lists, and validation artifacts. Its validation guidance describes multiple stages, including syntax and semantic checks. Use the artifacts appropriate to the selected release instead of assembling a rule set from unrelated tutorials. Peppol Billing documentation and validation principles.
In an implementation, preserve namespaces and exact paths when reporting errors. A friendly field label such as “buyer reference” should link back to the affected source location. If the same business concept can appear in different document types, the report should identify the actual invoice or credit-note context rather than displaying a path copied from another schema.
Pin Peppol validation to a release
As reviewed on 9 September 2026, the official Peppol BIS Billing 3.0 site presents the May 2026 release. The official post-award documentation lists publication and effective dates for its specifications. Record the release you actually run, not only the broad “3.0” family name. Official release index.
Treat a rule update as a controlled software change. Download or install the approved artifacts through the implementation's normal dependency process, record their hashes, run representative fixtures, and review differences before promotion. Keep historical versions available where replay is required. An automatic update that changes validation overnight without a record can make support and reconciliation unnecessarily difficult.
A route may need an effective-date policy during transitions. Store that policy explicitly and test boundary dates. Do not infer the applicable release solely from when a user clicks upload if the governing workflow uses another date or contract. Where the correct profile cannot be determined, ask for configuration or return an unsupported-profile finding rather than guessing.
ZUGFeRD and Factur-X require hybrid-document checks
FeRD describes ZUGFeRD and Factur-X as technically aligned hybrid invoice standards that combine a human-readable PDF with structured XML. Its ZUGFeRD 2.5.2 package is dated 4 August 2026 and effective from 1 September 2026; the page identifies the corresponding Factur-X 1.09.2 release and profile-specific validation artifacts. These details are version-sensitive. FeRD ZUGFeRD 2.5.2 release.
A useful hybrid-invoice workflow examines the container, locates the intended structured attachment, identifies its profile, and validates that structured data. It should also make the relationship between the visual invoice and machine-readable invoice reviewable. A valid XML attachment does not automatically establish that the surrounding PDF was constructed correctly or that both representations communicate the same business facts.
Reject ambiguous extraction rather than choosing an arbitrary attachment. If a PDF contains multiple candidate files, unsupported metadata, or an unreadable payload, report the condition explicitly. Preserve the original container and the extracted artifact hash. That gives the operator evidence of exactly what was validated and prevents a later regenerated PDF from being mistaken for the original submission.
XSD and Schematron answer different questions
Schema validation checks the document structure and data types defined by the chosen schema. Business-rule validation checks conditions that can span several fields, such as required relationships or arithmetic consistency. A workflow needs the appropriate stages for its profile. Do not present a schema-only result as full invoice validation when additional rule artifacts are required.
Keep the stage that produced each finding. A malformed document may fail before business rules can run; the report should say that later checks were not completed. Otherwise an empty business-error list can be misread as a clean business result. Distinguish “passed,” “failed,” “not run,” and “unsupported” in the API and user interface.
For developer diagnostics, expose a stable rule identifier and source location. For accounting users, add a concise explanation of the affected business fact and the source record to review. Avoid replacing the official finding with an untraceable paraphrase. The best report combines machine-readable evidence with a practical next action.
Reconcile invoice totals using decimal arithmetic
Invoice calculations need controlled decimal handling and the rounding rules applicable to the selected profile. Avoid binary floating-point arithmetic for authoritative monetary totals. Preserve the original quantity, unit price, allowances, charges, tax categories, and rounding inputs rather than storing only a final total. This makes discrepancies explainable and reproducible.
Consider a source invoice with several lines and a document-level allowance. A mapper that applies the allowance to every line and again at the document level can generate a consistent-looking but incorrect total. Compare the generated business values with the source accounting record as well as with the profile's calculation rules. Passing an internal arithmetic check does not prove the mapper copied the intended commercial agreement.
Build fixtures with small, independently verifiable calculations: a single line, multiple lines, an allowance, a charge, a credit note, and a rounding boundary. State the expected business outcome in each fixture. Where tax treatment requires a business decision, route the question to the authorized accounting process instead of selecting a category solely to satisfy a validator.
Validate identifiers and references at their proper scope
Seller identity, buyer identity, electronic address, order reference, invoice number, and payment information serve different purposes. A field can be syntactically well formed while referring to the wrong party or document. The mapping specification should explain which source owns each identifier and which scheme or qualifier makes its meaning explicit.
Preserve leading zeroes and punctuation where meaningful. Do not coerce invoice or account references to numbers simply because a source column contains digits. If the recipient uses a specific reference to route invoices internally, a plausible substitute may pass basic formatting checks while sending the invoice to an exception queue. Unknown routing data should remain a visible issue.
Reconcile invoice identity with the source system and duplicate policy. The same invoice arriving through two channels should not create two accounting records. A corrected invoice, credit note, and repeated transmission need distinct handling under the business process. Store the original document relationship and processing history rather than using the filename as the sole duplicate key.
Separate document validity from Peppol delivery
Validating an invoice is different from delivering it through a network. A delivery workflow needs the appropriate participant and endpoint configuration, supported document type, credentials or provider connection, and receipt handling. A local validator cannot establish those remote conditions from invoice content alone. Keep document validation and network exchange evidence separate.
When using an access-point provider, define the adapter contract around immutable artifacts, stable request identifiers, status queries, and recorded receipts. A timeout after submission is an uncertain outcome until reconciled. Query the provider using a stable reference before repeating a potentially successful operation. Do not label a queued local request “delivered” merely because the API accepted it for processing.
The recipient's business processing is another stage. A delivered invoice can still await matching, approval, or correction. Show that pending state clearly and retain any business response. This is the same operational distinction described in the EDI acknowledgment guide, even though the documents and network protocols may differ.
Diagnose common electronic invoice errors
Begin with file integrity, container extraction where relevant, XML well-formedness, and profile detection. These failures can prevent meaningful later checks. Next inspect schema findings, then business-rule findings, then reconciliation with source records. Fixing errors in this order reduces repeated work caused by interpreting secondary messages from an earlier structural defect.
For a calculation error, compare the reported operands with the source invoice before changing a total. For a missing reference, identify the correct upstream record instead of entering a dummy value. For a code-list error, verify both the code and its business meaning. A valid code for the wrong meaning can be more dangerous than an explicit validation failure.
Preserve the failed artifact and its result. Correct the source or mapping, regenerate the invoice, and compare the intended changes. Keep the new artifact linked to the prior attempt. Editing an exported XML file manually can be useful for a diagnostic experiment, but the production fix belongs in the authoritative source or reproducible transformation.
Convert PDF, CSV, or JSON to an electronic invoice
Conversion succeeds when the source contains enough trustworthy data for the target profile. A CSV can carry structured line data but omit essential party or tax context. A PDF may display information that requires extraction and human review. JSON is structured but can still lack the semantics expected by the invoice model. File format alone does not establish source completeness.
Create a mapping preview that shows source values, proposed target values, transformations, and unresolved fields. Require approval for ambiguous extraction and material business changes. Keep the approved mapping version with the output. The EDI conversion guide describes why deterministic transformations and source provenance matter across document families.
For PDF extraction, distinguish text embedded in the file from values inferred by OCR or a model. Low-confidence or conflicting values should become review tasks. Do not invent invoice numbers, dates, quantities, payment details, or tax treatment to complete a template. A polished machine-readable file built from uncertain facts is not a successful conversion.
Protect invoice data during online validation
Invoices can expose identities, addresses, bank details, prices, and trading relationships. Before using an online validator, understand whether processing happens in the browser or on a server, what is retained, and who can access the result. A statement that a page is “free” says nothing about its data-handling behavior. Use redacted fixtures while evaluating a tool.
For a server implementation, isolate tenants, bound file size and parsing work, disable unsafe external XML resolution, and avoid logging raw payloads or credentials. Treat PDF containers and attachments as untrusted input. Return downloads with safe content handling and ensure guessed document identifiers cannot expose another workspace's invoice.
Retention should distinguish original artifacts, extracted data, validation results, and delivery receipts. Define deletion behavior and preserve any records required by the customer's actual accounting policy. A validation tool should describe its retention accurately rather than making a blanket promise that every copy disappears instantly from every backup.
Build a repeatable e-invoice test pack
Include a valid invoice and credit note for every advertised profile and release. Add malformed syntax, unsupported profiles, missing required references, invalid codes, calculation errors, duplicate delivery, and source-to-output mismatch. For hybrid formats, include missing or ambiguous attachments and a visual-versus-structured discrepancy. Each test should identify which stage is expected to fail.
Test the entire operator journey as well as the validation engine. Can a user understand a failure, locate the source field, regenerate the artifact, and see the previous attempt? Does a network timeout remain pending rather than becoming success? Does a duplicate submission converge on one business operation? These are meaningful acceptance criteria for a full EDI solution.
Keep fixtures and expected results versioned with the rule artifacts and mappings. Record the exact tool version used for any external comparison. Two validators can disagree because they run different releases or scopes. Resolve that difference before declaring one wrong, and never use a competitor's green badge as the sole authority for a production invoice.
Questions about Peppol, UBL, and hybrid invoice validation
Before choosing an invoice validation API, compare its result contract with your support workflow. The response should identify the artifact, detected profile, rule release, completed stages, findings, and any unsupported scope. It should distinguish an invalid customer document from an infrastructure failure. Those outcomes need different retry and billing behavior: correcting a business error is different from rerunning a service that was temporarily unavailable.
Test the API with the same artifact twice, an oversized upload, a malformed container, and an unsupported profile. Confirm that the results remain traceable and that a transport timeout does not erase a completed validation. If the API can initiate delivery as well, require a separate explicit operation for that action so checking an invoice cannot accidentally submit it to a recipient.
Where can I get a Peppol invoice example?
The official Billing documentation links an example archive. Select a fixture for the appropriate document type and release, inspect its declared profile, and run it through the same pinned rules as your own output. Example identities are test data, not your company's invoice facts. When comparing a Peppol validator with a generic UBL validator, record which additional profile checks each one performs.
Is a PDF invoice an electronic invoice?
In everyday language it may be called electronic, but a recipient requiring structured e-invoicing can need a specific machine-readable format and profile. A plain PDF does not establish that requirement. Identify the recipient's contract and inspect whether the required structured data is present and valid.
Does valid UBL mean valid Peppol BIS Billing?
Not necessarily. The selected profile can impose additional constraints beyond the base syntax. Run the appropriate profile rules and record the release. Also distinguish document validity from network delivery and recipient business acceptance.
Can I validate ZUGFeRD or Factur-X with an XML validator?
XML validation can check the extracted structured component when the correct artifacts are used. A hybrid-document workflow also needs to inspect the container and relevant relationship between its visual and structured representations. Report which layers were actually checked.
Can an LLM fix an electronic invoice rejection?
It can help explain a redacted error and propose where to investigate. Verify the rule meaning against the exact profile and release, and review any business-value change through the authorized accounting process. Do not allow generated advice to invent missing invoice facts or trigger an unreviewed financial correction.
Does a passing invoice validator guarantee payment?
No. Validation establishes only the checked technical and business-rule scope. Delivery, recipient matching, approval, disputes, and payment remain separate processes. A useful platform connects those events without misrepresenting an early technical result as the final financial outcome.
What the Shipment Sentry implementation covers
Shipment Sentry now executes pinned UBL 2.1 schemas, EN16931 1.3.16 rules and Peppol BIS 3.0.21 rules for UBL invoices. Its invoice composer supports a defined standard-rate and zero-rate VAT profile, and its Storecove connector retains access-point submission and Peppol delivery evidence separately. Successful submission does not imply delivery, payment or buyer acceptance. This implemented UBL profile does not claim CII validation, ZUGFeRD PDF/A-3 container conformance or every national fiscal extension; those requirements must be checked against the chosen route before onboarding.
Primary sources
Apply the current standard, profile, and trading-partner requirements for your workflow. Each result establishes only the checks it explicitly reports.