What does BR-FX-EN-4 mean?
If the invoice contains the delivery information group (ram:ApplicableHeaderTradeDelivery), that group must hold something - Factur-X forbids empty elements. Either the actual delivery date (BT-72) or the deliver to country code (BT-80) is enough. In ZUGFeRD 2.5, PEPPOL-EN16931-R008 replaces this check and raises a warning instead of an error.
Common causes of BR-FX-EN-4
- A generating system always writes the delivery group but never fills it.
- The deliver to address (ram:ShipToTradeParty) sits in the XML as an empty element.
- The delivery date was removed without removing the surrounding group.
How to fix BR-FX-EN-4
- Find the faulty spot in the XML. Open the XML of the invoice and go to field BT-72 along this XPath:
//ram:ApplicableHeaderTradeDelivery - Apply the fix. In the delivery information, state at least the actual delivery date (BT-72) or the deliver to country code (BT-80). Alternatively, drop the group 'ram:ApplicableHeaderTradeDelivery' entirely instead of sending it empty. In ZUGFeRD 2.5, PEPPOL-EN16931-R008 takes over this check as a warning.
- Validate again. Save the file and validate it again to check that BR-FX-EN-4 is no longer reported.
In the delivery information, state at least the actual delivery date (BT-72) or the deliver to country code (BT-80). Alternatively, drop the group 'ram:ApplicableHeaderTradeDelivery' entirely instead of sending it empty. In ZUGFeRD 2.5, PEPPOL-EN16931-R008 takes over this check as a warning.
//ram:ApplicableHeaderTradeDeliveryBefore / after: the XML example
This is the spot in question before and after the fix (Cross Industry Invoice, ZUGFeRD/Factur-X).
<ram:ApplicableHeaderTradeDelivery>
<ram:ShipToTradeParty/>
</ram:ApplicableHeaderTradeDelivery>
<ram:ApplicableHeaderTradeDelivery>
<ram:ActualDeliverySupplyChainEvent>
<ram:OccurrenceDateTime>
<udt:DateTimeString format="102">20260401</udt:DateTimeString>
</ram:OccurrenceDateTime>
</ram:ActualDeliverySupplyChainEvent>
</ram:ApplicableHeaderTradeDelivery>
Frequent questions about BR-FX-EN-4
Is a single field enough?
What if there is no delivery at all?
Does the rule still apply in ZUGFeRD 2.5?
Related error codes
Check BR-FX-EN-4 automatically
Instead of digging through the XML by hand you can validate your ZUGFeRD or XRechnung file online – upload the PDF or the XML and you get every error with rule ID, affected field, fix and XPath, as a readable report or as JSON through the API.