errorsyntaxxsd

cvc-complex-type.4:Required attribute is missing from an invoice element

Fix: This error cannot be fixed automatically. Add the missing attribute in your invoicing software.

An XML element in your invoice is missing a required attribute. In Peppol and UBL invoices, this typically means a monetary amount is missing its currencyID attribute, or an identifier is missing its schemeID. The element itself is present, but it lacks required metadata that receiving systems need to process it correctly.

Severity
Fatal
Rule set
xsd
Country
All EU
Fix type
BLOCKED
Category
structural

Engine Classification

Financial or legal field · Modification blocked by policy

Reason: This XML Schema error means a required attribute is missing from an element. Check that all monetary amounts have currencyID and all identifiers have their required schemeID. This must be fixed in the invoicing software that generated the file.

What is cvc-complex-type.4?

cvc-complex-type.4 is a fatal validation rule defined in the xsd specification. It validates the XSD error cvc-complex-type.4: "Attribute 'X' must appear on element 'Y'." This fires when an element's complex type definition requires an attribute that is not present on the element. Most common in Peppol: missing currencyID on cbc:TaxAmount, cbc:LineExtensionAmount, cbc:TaxExclusiveAmount, or missing schemeID on cbc:EndpointID. element in the UBL invoice XML.

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

Target path: XSD error cvc-complex-type.4: "Attribute 'X' must appear on element 'Y'." This fires when an element's complex type definition requires an attribute that is not present on the element. Most common in Peppol: missing currencyID on cbc:TaxAmount, cbc:LineExtensionAmount, cbc:TaxExclusiveAmount, or missing schemeID on cbc:EndpointID.

This error requires manual correction — financial fields are protected by policy.

Why This Error Matters

cvc-complex-type.4 is a hard failure — the invoice must be corrected and re-sent before it can reach the recipient.

Missing required attributes will cause the invoice to be rejected by any schema-validating system. Without currencyID, monetary amounts are ambiguous. Without schemeID, identifiers cannot be resolved. The invoice cannot be processed.

Validator Behavior

  • ·Causes invoice rejection
  • ·Error returned: cvc-complex-type.4
  • ·Specification: xsd

How to Fix It

1.

Identify the missing attribute

The error message specifies which attribute is missing and on which element. For example: 'Attribute currencyID must appear on element cbc:TaxAmount' means you need to add the currency code.

2.

Check common fixes

For currencyID: add the 3-letter ISO 4217 currency code (EUR, GBP, USD). For schemeID: add the appropriate identifier scheme (e.g., 0088 for GLN, 0184 for PEPPOL).

3.

Update your invoicing software

If attributes are consistently missing, your software's e-invoice export needs to be configured to include them. Contact your vendor with the error details.

4.

Validate before sending

Use Invoice Navigator to catch missing attributes before sending invoices.

XML Example

Generic example based on the rule's target XPath. Your actual XML structure may differ.

Before
<!-- Triggers validation error -->
<XSD error cvc-complex-type.4: "Attribute 'X' must appear on element 'Y'." This fires when an element's complex type definition requires an attribute that is not present on the element. Most common in Peppol: missing currencyID on cbc:TaxAmount, cbc:LineExtensionAmount, cbc:TaxExclusiveAmount, or missing schemeID on cbc:EndpointID.></XSD error cvc-complex-type.4: "Attribute 'X' must appear on element 'Y'." This fires when an element's complex type definition requires an attribute that is not present on the element. Most common in Peppol: missing currencyID on cbc:TaxAmount, cbc:LineExtensionAmount, cbc:TaxExclusiveAmount, or missing schemeID on cbc:EndpointID.>
After
<!-- Corrected -->
<XSD error cvc-complex-type.4: "Attribute 'X' must appear on element 'Y'." This fires when an element's complex type definition requires an attribute that is not present on the element. Most common in Peppol: missing currencyID on cbc:TaxAmount, cbc:LineExtensionAmount, cbc:TaxExclusiveAmount, or missing schemeID on cbc:EndpointID.>VALID_VALUE</XSD error cvc-complex-type.4: "Attribute 'X' must appear on element 'Y'." This fires when an element's complex type definition requires an attribute that is not present on the element. Most common in Peppol: missing currencyID on cbc:TaxAmount, cbc:LineExtensionAmount, cbc:TaxExclusiveAmount, or missing schemeID on cbc:EndpointID.>

Technical Reference

XPathXSD error cvc-complex-type.4: "Attribute 'X' must appear on element 'Y'." This fires when an element's complex type definition requires an attribute that is not present on the element. Most common in Peppol: missing currencyID on cbc:TaxAmount, cbc:LineExtensionAmount, cbc:TaxExclusiveAmount, or missing schemeID on cbc:EndpointID.
Specxsd

Common Causes

  • ·Amount elements (TaxAmount, LineExtensionAmount) missing currencyID attribute
  • ·EndpointID or PartyIdentification missing schemeID attribute
  • ·UK invoicing software not generating all required XML attributes
  • ·ERP export template missing attribute mappings

Seeing this in production? The API handles cvc-complex-type.4 automatically. See the fix response →

Commonly Seen In

Invoicing software with incomplete XML attribute supportCustom-built invoice generatorsERP systems with outdated Peppol export

Frequently Asked Questions

An XML element in your invoice is missing a required attribute. In Peppol and UBL invoices, this typically means a monetary amount is missing its currencyID attribute, or an identifier is missing its schemeID. The element itself is present, but it lacks required metadata that receiving systems need to process it correctly.

This error cannot be fixed automatically. Add the missing attribute in your invoicing software. You can also use Invoice Navigator's compliance engine to correct this automatically in your pipeline.

Yes, cvc-complex-type.4 is a critical error that will cause invoice rejection. It must be fixed before submission.

Many instances of cvc-complex-type.4 can be automatically corrected using Invoice Navigator's compliance engine. The fix is applied in your pipeline with full audit evidence.

cvc-complex-type.4 is commonly seen in exports from Invoicing software with incomplete XML attribute support, Custom-built invoice generators, ERP systems with outdated Peppol export. These packages sometimes generate invoices that need adjustment.

Related Errors

Related Content

Last updated: 12 March 2026

Share this guide:

Validate your invoice

Drop your XML here to check for cvc-complex-type.4

Detect cvc-complex-type.4 before submission

This error involves a financial field that can't be auto-modified. We'll flag it with a clear diagnosis so you can fix it at the source.