BR-DE-01 Buyer Electronic Address Scheme Identifier
What this rule checks
BR-DE-01 verifies that the field BT-49-1 (Buyer electronic address identification scheme) is present and populated with a valid value. Specifically, it checks whether the schemeID attribute exists on the cbc:EndpointID element within cac:AccountingCustomerParty/cac:Party/cbc:EndpointID.
Without this scheme identifier, the routing infrastructure cannot determine what type of address is being used — whether it is a Leitweg-ID, a GLN, an email address, or another identifier type.
Why this rule exists
In the German e-invoicing ecosystem, invoices are delivered to recipients through networks such as Peppol or the central invoice receipt platforms of the German federal government (ZRE/OZG-RE). For the infrastructure to route the invoice correctly, it must know how to interpret the buyer’s electronic address.
The Leitweg-ID is the primary addressing scheme for public sector buyers in Germany. It follows the pattern 04011000-1234512345-06 and is identified by scheme code 0204. Without this identifier, the system cannot distinguish a Leitweg-ID from an arbitrary string.
This rule is a German-specific extension of the European standard EN 16931 and goes beyond the base standard requirements. It applies to all XRechnung-compliant invoices.
What triggers a failure
The rule fails when:
- The
cbc:EndpointIDelement within thecac:AccountingCustomerParty/cac:Partyblock has noschemeIDattribute - The
schemeIDattribute is present but empty - An unregistered scheme identifier is used (e.g., a made-up code)
- The
cbc:EndpointIDelement is missing entirely (in combination with other rules)
Failing XML example
The following example shows an invoice where the buyer’s electronic address lacks a scheme identifier:
<cac:AccountingCustomerParty>
<cac:Party>
<!-- ERROR: EndpointID without schemeID attribute -->
<cbc:EndpointID>04011000-1234512345-06</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID>K-12345</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Federal Ministry of Examples</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Beispielstraße 42</cbc:StreetName>
<cbc:CityName>Berlin</cbc:CityName>
<cbc:PostalZone>10115</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Federal Ministry of Examples</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
The fix
Add the schemeID attribute to the cbc:EndpointID element with the appropriate value for the address type being used:
<cac:AccountingCustomerParty>
<cac:Party>
<!-- CORRECT: Leitweg-ID with schemeID="0204" -->
<cbc:EndpointID schemeID="0204">04011000-1234512345-06</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID>K-12345</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Federal Ministry of Examples</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Beispielstraße 42</cbc:StreetName>
<cbc:CityName>Berlin</cbc:CityName>
<cbc:PostalZone>10115</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Federal Ministry of Examples</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
The most common scheme identifiers in the German context:
| Scheme | Code | Example value |
|---|---|---|
| Leitweg-ID | 0204 | 04011000-1234512345-06 |
| GLN (Global Location Number) | 0088 | 4000001000005 |
| Email (Peppol) | EM | rechnung@behoerde.de |
| ICD / Company | 0199 | DE123456789 |
Edge cases and common mistakes
EndpointID vs. PartyIdentification: A frequent mistake is confusing cbc:EndpointID with cac:PartyIdentification/cbc:ID. Both elements can contain identifiers, but only cbc:EndpointID is used for electronic routing. PartyIdentification is a business identifier (e.g., customer number) and has no routing function.
Leitweg-ID format: The Leitweg-ID consists of three parts: coarse addressing (federal state/authority), fine addressing (organizational unit), and a check digit. Example: 04011000-1234512345-06. The format must be correct as it is validated by the platform — however, BR-DE-01 only checks for the presence of the schemeID attribute, not the format of the value itself.
Multiple buyer identifiers: An invoice can contain both cbc:EndpointID and cac:PartyIdentification. This is not only permitted but often recommended to ensure both routing and business-level assignment.
Peppol context: When sending invoices through the Peppol network, the scheme identifier must correspond to a scheme registered in the Peppol directory. The code EM for email addresses is commonly used in the Peppol context for smaller recipients without a Leitweg-ID or GLN.