How to investigate a rejected Peppol invoice
Short answer: capture the exact rejection code, locate its UBL field, compare that value with the source accounting record, correct the source data, regenerate the XML and validate it again before resubmission.
1. Preserve the original rejection message
Keep the rule identifier, severity, message and XML location supplied by the accounting platform or Access Point. A label such as BR-CO-16 is more useful than a generic message such as “invalid invoice.”
2. Separate syntax, business-rule and routing problems
Malformed XML must be repaired before business rules can be evaluated. Business-rule findings usually identify missing or inconsistent invoice data. Routing findings commonly involve the buyer or seller electronic address and its identifier scheme.
3. Find the corresponding UBL element
Use the rule's XML path to locate the field. For example, invoice identity values appear near the document root, party data appears under the supplier or customer party, and monetary reconciliation appears under cac:LegalMonetaryTotal.
4. Correct the source system
Identifiers, legal names, dates, VAT data, payment terms and monetary values should come from the accounting or invoicing system. Avoid inserting a guessed value directly into XML merely to satisfy a rule.
5. Regenerate and validate again
Generate a fresh invoice file, rerun the relevant checks and confirm that totals still reconcile. If the file passes local checks but is rejected again, compare the new Access Point message with the previous one; it may expose a later validation layer.
6. Keep an audit trail
Retain the original file, rejection report, corrected source value and regenerated file according to your organization's record-handling policy.