errorformatUBL 2.1

UBL-CR-678:A UBL invoice should not include the TaxCategory/ID schemeID

Fix: Invoice Navigator automatically removes the disallowed `@schemeID` element from your Invoice (UBL-CR-678). Upload your invoice to fix this automatically.

UBL 2.1 Invoice schema does not include `cac:TaxCategory/cbc:ID/@schemeID`. This element must be removed for EN 16931 compliance.

Severity
Fatal
Rule set
UBL 2.1
Country
All EU
Fix type
AUTO-FIX
Confidence
90%
Category
structural

Engine Classification

Remove disallowed UBL attribute per EN16931 specification

Confidence: 90% · Applied automatically in pipeline

What is UBL-CR-678?

UBL-CR-678 is a fatal validation rule defined in the UBL 2.1 specification. It validates the @schemeID element under ID in the UBL invoice XML.

When this rule fires, the invoice is rejected by Peppol access points and never reaches the buyer.

Target path: //cac:TaxCategory/cbc:ID/@schemeID

Why This Error Matters

Invoice will be rejected by EN16931 validators. These conformance rules prohibit UBL attributes and elements not in the EN16931 e-invoicing profile. Remove the disallowed attribute or restructure the element.

UBL-CR-678 is a hard failure — the invoice must be corrected and re-sent before it can reach the recipient.

Invoice Navigator can automatically correct this error in your pipeline. The fix is applied with full audit evidence, so your compliance trail remains intact.

Validator Behavior

  • ·Causes invoice rejection
  • ·Fails UBL schema validation
  • ·Error returned: UBL-CR-678
  • ·Specification: UBL 2.1

How to Fix It

1.

Find the disallowed attribute

Check @schemeID at //cac:TaxCategory/cbc:ID/@schemeID. This attribute is not permitted in the target profile.

2.

Remove the attribute

Invoice Navigator automatically removes the disallowed `@schemeID` element from your Invoice (UBL-CR-678).

3.

Re-validate your invoice

Upload the corrected invoice to confirm UBL-CR-678 is resolved.

Before / After

Failing XML
<cbc:ID>
  <@schemeID>value</@schemeID>
</cbc:ID>
Corrected XML
<cbc:ID>
  <!-- @schemeID removed for EN 16931 compliance -->
</cbc:ID>

Technical Reference

XPath//cac:TaxCategory/cbc:ID/@schemeID
SpecUBL 2.1
Operationremove_attribute
StrategyRemove disallowed UBL attribute per EN16931 specification

Common Causes

  • ·TaxCategory ID contains schemeID attribute
  • ·cbc:ID/@schemeID in tax category not permitted
  • ·Scheme identifier on VAT category not in EN16931
  • ·Only plain text tax category code allowed
  • ·ERP exports scheme attribute on tax category ID

Seeing this in production? The API handles UBL-CR-678 automatically. See the fix response →

Frequently Asked Questions

UBL 2.1 Invoice schema does not include `cac:TaxCategory/cbc:ID/@schemeID`. This element must be removed for EN 16931 compliance.

Invoice Navigator automatically removes the disallowed `@schemeID` element from your Invoice (UBL-CR-678). You can also use Invoice Navigator's compliance engine to correct this automatically in your pipeline.

Yes, UBL-CR-678 is a critical error that will cause invoice rejection. It must be fixed before submission.

Many instances of UBL-CR-678 can be automatically corrected using Invoice Navigator's compliance engine. The fix is applied in your pipeline with full audit evidence.

Last updated: 14 April 2026

Share this guide:

Validate your invoice

Drop your XML here to check for UBL-CR-678

Auto-fix UBL-CR-678 in seconds

Upload your invoice and we fix this error automatically. Financial fields are never touched.