| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1218 |
| Technical Name |
xrechnung_leitweg_satellite |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1218 |
| Technical Name |
xrechnung_leitweg_satellite |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
| Versions | 18.0 19.0 |
XRechnung Leitweg-ID & B2G Routing Satellite for Germany
Validate the Leitweg-ID check digits, place it in BT-10 BuyerReference, and check the B2G routing of every German public-sector XRechnung
What this module does
Every electronic invoice a supplier sends to a German public authority (B2G) must carry the authority's Leitweg-ID â the public-sector routing identifier â in EN 16931 business term BT-10 BuyerReference. A wrong Leitweg-ID, or a missing BuyerReference, means the receiving portal (ZRE / OZG-RE / a Land portal) rejects or misroutes the invoice. This satellite makes that impossible to get wrong: it validates the Leitweg-ID check digits with the official ISO/IEC 7064 MOD 97-10 algorithm (the same scheme used by the IBAN), classifies its administrative scope, runs the German B2G routing rules, and writes the Leitweg-ID into the BuyerReference element of your UBL or CII (ZUGFeRD) XRechnung â directly inside your own Odoo database.
It is a pure validation and format add-on: it does not replace your XRechnung generator and it is not a portal connector. It guarantees the routing identifier is correct and correctly placed, so your existing transmission path (or your own portal credentials) carries a clean, routable document.
Check-digit validation (MOD 97-10)
Verifies the two trailing check digits of any Leitweg-ID against the
KoSIT Leitweg-ID Format-Spezifikation v2.0.2: coarse addressing
(2–12 digits) plus optional fine addressing (up to 30 alphanumeric
characters) are mapped to numbers (A=10 … Z=35) and checked
with ISO/IEC 7064 MOD 97-10. Wrong digits are flagged with the correct
value, and a one-click action recomputes them.
BT-10 BuyerReference placement
Detects whether an attached invoice is a UBL Invoice/CreditNote or a
UN/CEFACT CII (ZUGFeRD) document and injects or replaces the Leitweg-ID
in the correct location — cbc:BuyerReference for UBL,
ram:BuyerReference inside the header trade agreement for CII —
in the schema-correct position, without touching anything else in the file.
B2G routing rules
Applies the German XRechnung CIUS routing rules: BR-DE-15 (BuyerReference mandatory), Leitweg-ID structure and check digit, scope vs. target portal (a federal 991 ID cannot go through a Land-only portal), and BR-DE-21 (the XRechnung specification identifier). Each invoice gets a pass / warning / fail verdict with a readable report.
Scope classification
Recognises the federal prefix 991 (Bund) and the sixteen
official Land prefixes, so each Leitweg-ID is labelled
federal / state / unclassified together with the corresponding
Bundesland — on the partner, the invoice and every routing check.
Feature overview
| Area | Capability |
|---|---|
| Check digit | ISO/IEC 7064 MOD 97-10 validation and recomputation of the two-digit Pruefziffer |
| Structure | Coarse (2–12 digits) + optional fine (0–30 [A-Z0-9]) + check digits, one or two hyphens |
| Scope | Federal (991 / Bund) and all 16 Land prefixes, with the Bundesland name |
| BT-10 placement | Inject / replace BuyerReference in UBL Invoice, UBL CreditNote, and CII (ZUGFeRD) |
| Routing rules | BR-DE-15, BR-DE-21, structure, check digit, portal scope match (ZRE / OZG-RE / Land) |
| Enforcement | Optional block on posting a B2G invoice whose Leitweg-ID is invalid |
| Audit trail | One routing-check record per validation, with errors, warnings and report |
| Tools | Interactive Leitweg-ID checker / builder wizard and a date-range batch validator |
How it fits your workflow
Flag a customer as a public authority and store its Leitweg-ID once; the check digits are validated immediately and the scope is shown. Every customer invoice to that authority inherits the Leitweg-ID into its BT-10 BuyerReference field, where it can be overridden per document. Validate the routing from the invoice (or in batch for a whole month), then place the BuyerReference into your generated XRechnung XML. Posting can be blocked when the routing identifier is invalid, so a non-routable B2G invoice never leaves Odoo.
Scope & boundary
This is a validation and format add-on. It builds and verifies the Leitweg-ID and places it in the BuyerReference of UBL and CII XRechnung documents. It does not transmit invoices to a portal and is not an official KoSIT product; transmission to ZRE / OZG-RE / a Land portal is performed with your own access. All rates, formats and the check-digit algorithm follow the published German specifications (KoSIT Leitweg-ID Format-Spezifikation 2.0.2, EN 16931 / XRechnung CIUS). Compatible with Odoo 18 and 19, Community and Enterprise.
Screenshots
Validate Batch
Leitweg Id Checker
Routing Checks
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module