Peppol · E-Rechnung · Help

PEPPOL-EN16931-R041: the allowance or charge base amount is missing

Locate the affected allowance or charge in the XML.

Source date: 4 November 2026Editorial team: KAN KAI WORKSEditorially updated:

Quick answer

PEPPOL-EN16931-R041 requires the corresponding base amount when an allowance or charge has a percentage in the same XML section. The calculated adjustment amount does not replace that basis. First identify the affected document or line level and whether the invoice uses UBL or CII. Correct the basis from the business source data, then validate the full export; clearing R041 alone is insufficient.

Source basis: Q2 · Q3 · Q4

Applies to
Covers the technical R041 rule for allowances and charges in UBL or CII. The Mustang example concerns 2.26.0; the actual validation bundle remains decisive.
How to verify the result
The corrected export contains the intended calculation basis, passes R041 in the appropriate complete validation run, and is checked for other findings and technical recipient acceptance.
Your first check

Which allowance or charge has a percentage but no base amount?

Inspect the specific XML section and distinguish UBL from CII. An allowance or charge with a percentage needs its corresponding base amount.

Is your e-invoice being rejected even though the discount looks correct in your invoicing software? Error PEPPOL-EN16931-R041 means that the affected XML section contains an allowance or charge percentage but is missing its corresponding base amount. Start by locating that exact section. Another invoice amount elsewhere in the document does not replace the missing value. Q2 Q3

This guide helps you locate the reported issue, check the underlying calculation and verify a corrected export.

When does this error occur?

A documented Mustang report describes a percentage allowance at document level: an export produced with version 2.26.0 contains the percentage and allowance amount, but no base amount. The reporter states that the validator therefore rejects the invoice. This is one specific example of R041; it does not establish that Mustang causes every occurrence of the error. Q1

The official UBL rule applies at both document and line level, for both Invoice and CreditNote. The message may therefore concern an individual line or a credit note. Check the path in the validation report rather than looking only for an overall invoice discount. Q2

Understand the three different values

Suppose the agreed allowance is 10 per cent of a net amount of EUR 100. The calculation base is EUR 100, the percentage is 10, and the allowance amount is EUR 10. These values serve different purposes. R041 initially identifies the missing base field; the values themselves also need to be correct.

Meaning UBL within AllowanceCharge CII within SpecifiedTradeAllowanceCharge
Percentage MultiplierFactorNumeric CalculationPercent
Base amount BaseAmount BasisAmount
Allowance or charge amount Amount ActualAmount

This mapping follows the published syntax and rule sources. In UBL, for example, a rate of ten per cent is written as 10. The CII rule checks the corresponding combination of CalculationPercent and BasisAmount. Q2 Q3

First checks: six steps towards a verifiable new export

1. Preserve the rejected file and the complete validation report. Record the invoicing software, export version, format, profile and validator configuration. Work on a copy. Establish whether the report relates to the file actually sent or to an earlier export. Correcting the wrong file version makes subsequent verification difficult.

2. Open the machine-readable content. Use the exported XML file or the XML content that was actually validated. The visual invoice is useful for comparison with the agreement, but it does not replace locating the element identified in the report. If your tool only displays a summary, obtain the exact XML path or the relevant section.

3. Identify one specific allowance or charge flagged by the report. Does it apply to the whole document or to a single line? Are there several similar sections? Match each error to its location. Record the percentage, the existing amount and the missing base. Check the document type too. The error can be triggered at several matching locations within one document. Q2

4. Determine the correct calculation base. Obtain it from the original pricing and discount calculation. Establish which items the agreement covers. Do not simply use the gross total or another convenient sum. Where items are treated differently, record how the allowance or charge applies before adding a value.

5. Correct the generation process and export again. First check whether the invoicing software offers a suitable input field, export option or documented correction. If you maintain a custom integration, also check the data passed to the export library. Prefer a traceable correction at the source so that the same error does not recur on the next invoice. Editing the XML manually does not, by itself, repair the underlying process.

6. Validate the complete new invoice. Compare the new export with the preserved original and run the validation appropriate to the recipient. In addition to R041, check the reverse pairing rule R042 and the calculation relationship in R040. These rules test different conditions; removing one error code does not establish that the whole document is correct. Q2 Q3

A small UBL example for comparison

The following example, created for this guide, illustrates a document-level allowance: 10 per cent of EUR 100 gives an allowance of EUR 10, assigned to an assumed tax category with a rate of 19 per cent. The element structure follows the official UBL syntax. This is an example fragment, not a complete invoice or one validated as a whole. Use these figures only if they match your actual calculation. Q2

<cac:AllowanceCharge
    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
    xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
  <cbc:MultiplierFactorNumeric>10</cbc:MultiplierFactorNumeric>
  <cbc:Amount currencyID="EUR">10.00</cbc:Amount>
  <cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>

For the R041 situation shown here, the key point is that the percentage has its base amount in the same allowance section. Whether that base correctly represents the business transaction must be assessed against the agreement and the original data. A validator cannot make that decision entirely for you.

How do you verify a reliable correction?

Before making a change, establish what should remain the same: the agreed supply, the allocation of the allowance and the intended invoice amounts. Explicitly document any necessary change to an amount.

For technical acceptance, we recommend three pieces of evidence: the new export contains the intended data; the complete validation report for the appropriate profile no longer contains the reported R041 error and has also been reviewed for other findings; and it is clear whether the destination system technically accepts that exact file version.

A successful technical check is not a guarantee of payment approval, contractual acceptance or legal completeness.

Example: A base amount is missing at only one of two locations

Constructed diagnostic example: This table describes two imagined UBL sections. It is neither a complete invoice nor an actually validated document. All EUR amounts are illustrative calculation inputs.

Two separate AllowanceCharge sections
LocationPercentage and amountBase in the same section
Document allowance5%; allowance EUR 10.00BaseAmount EUR 200.00 present
Charge on one invoice line2.5%; charge EUR 1.00BaseAmount missing; intended base EUR 40.00

Decision: Locate the XML path named by the validation report. The document allowance's base amount does not meet the requirement for the separate line charge. The exporter must supply the agreed calculation base at that second location. The example illustrates 40 × 2.5 ÷ 100 = 1; its values must not be copied into an unrelated invoice.

Expected observation: For R041 alone, the first section has its required base field and the second does not. Adding BaseAmount elsewhere would not supply the missing value in the second section.

Success check: Revalidate the new export after correcting its generation. The specific R041 finding should disappear; also check calculations, other rules and the required invoice profile. Passing this single rule establishes neither complete invoice validity nor acceptance by its recipient.

Technical references: OpenPeppol: PEPPOL-EN16931-R041.

Frequently asked questions

The PDF says “10% discount”. Why is that not enough?

The error refers to a specific XML structure. A visible percentage does not populate a missing BaseAmount or BasisAmount field. Check the machine-readable content. Q2 Q3

Does R041 only apply to a discount on the whole invoice?

No. The UBL rule covers allowances and charges at document and line level for both Invoice and CreditNote. The Mustang case examined here specifically concerns document level. Q1 Q2

Can I just set the base to zero?

The presence of a field initially answers only whether it exists. It does not establish whether the amount is consistent with the calculation. Use the correct value and validate the invoice again. Q2 Q3

Can I remove the percentage instead?

An export may use a representation without the percentage/base-amount pair. Mustang’s change history describes a change to how that pair is emitted. This is not a general instruction to delete the percentage. First establish the representation required by your profile and the agreed invoice. Q5

Can the base be calculated backwards from the amount and percentage?

That can provide an arithmetic cross-check, but it cannot reliably reconstruct the original agreement. Rounding, multiple allowances or items treated differently need to be understood. A calculated value should therefore never be written into the invoice without review.

Will a Mustang update definitely fix the error?

That needs to be checked for your installation. The change history lists the case under 2.27.0; the GitHub release list rechecked on 5 November 2026 still showed 2.26.0 as the latest published release. A project note therefore replaces neither checking the available package nor repeating the export and validation test. Q5

Describe your issue

Useful details include the complete error code, format and profile, software version, validator version and a redacted XML excerpt of the affected allowance or charge. State whether it is at document or line level, and how the base should be calculated for the actual transaction.

Describe your issue

Support with this issue

We can trace the reported XML location back to the export and identify the correction required in the source system.

Sources

Sources checked: 4 November 2026. Mustang release information rechecked: 5 November 2026.