Find R041 locations in UBL XML
Open a UBL invoice or paste XML. The checker finds allowances and charges that contain a percentage but lack the BaseAmount element.
UBL Invoice and CreditNote · up to 1 MiB · processed only in your browser. CII and PDF are not supported. This checks a single rule, not the complete validity of an invoice.
Peppol rule R041 being checked · 05.11.2026
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.
| Location | Percentage and amount | Base in the same section |
|---|---|---|
| Document allowance | 5%; allowance EUR 10.00 | BaseAmount EUR 200.00 present |
| Charge on one invoice line | 2.5%; charge EUR 1.00 | BaseAmount 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
Prepare a findings note
Summarise your observations for your enquiry. The note is created in your browser and is not saved or sent here. You can then copy it into the contact form.
Unknown is fine. Do not enter passwords, customer data or complete confidential logs.
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
- [Q1] Mustang Issue 1316: percentage allowance without a base amount
- [Q2] OpenPeppol: R041, BIS and UBL syntax · Additional source 1 · Additional source 2
- [Q3] OpenPeppol: CII Schematron R040/R041/R042
- [Q4] KoSIT: Validator Configuration 2026-08-31
- [Q5] Mustang: change history and published releases · Additional source 1
- [Q6] Annehmbar: its R041 help page and validation service
Sources checked: 4 November 2026. Mustang release information rechecked: 5 November 2026.
