
E-Invoicing All in One for XRechnung B2G
The routing identifier German public bodies need, validated, plus the XRechnung rules beyond the European baseline, checked before you send.
Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0, Odoo 20.0. Technical name bambooforge_xrechnung.
Transcript of the walkthrough (Odoo 20)
E-Invoicing All in One for XRechnung B2G. The routing identifier German public bodies need, validated, plus the XRechnung rules beyond the European baseline, checked before you send. Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time. In the next few minutes: what this is for, then setting it up, then what gets checked, then how we make sure it works, then questions people ask.
Then what this app deliberately does not do, so you can tell before you buy whether it fits. 1. Copy bambooforge_xrechnung into your addons path and update the app list, or install the ZIP from the Odoo Apps Store. 2.
Install XRechnung: German B2G E-Invoicing. What this is for. Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
Setting it up. On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time.
The flag matters: ordinary B2B invoices are not held to these rules, because nobody applies them there. What gets checked. The findings appear in the same pre-flight list as the European rules, on the invoice and in the company-wide view. BR-DE-15 — no buyer reference.
This is the most common reason a German B2G invoice bounces, and it bounces silently. BF-DE-LEITWEG — a reference that is present but not shaped like one. A warning, not a stop: it is worth a look, and occasionally a department really does publish something unusual. BR-DE-01 — no payment means.
The invoice has to say how it is to be paid. BR-DE-05, 06, 07 — a named seller contact with a telephone and an email. Most companies have never filled these in, and every German public buyer wants them. How we make sure it works.
Before every release, 11 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them: An ordinary company is not held to the german rules. A reference of the wrong shape is only a warning. A malformed leitweg id is refused on the partner.
A public invoice without a reference is blocked. No payment means is blocking. The complete list is in the source you receive. Questions people ask.
Which Odoo versions does it run on? Odoo 16.0, 17.0, 18.0, 19.0, 20.0, on the series you buy it for; each series is its own listing. Community or Enterprise? Both.
It needs no Enterprise app. Now the part most videos leave out: what this does not do. The check verifies the shape of a Leitweg-ID, not that it exists. Only the authority's own directory can tell you that.
XRechnung has more rules than these; the ones here are those that actually bounce invoices in practice. Sending is not part of this app — it produces an invoice that will be accepted, not the transport that delivers it. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.


Transcript of the walkthrough (Odoo 19)
XRechnung: German B2G E-Invoicing. The routing identifier German public bodies need, validated, plus the XRechnung rules beyond the European baseline, checked before you send. Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time. In the next few minutes: what this is for, then setting it up, then what gets checked.
Then what this app deliberately does not do, so you can tell before you buy whether it fits. What this is for. Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
Setting it up. On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time.
The flag matters: ordinary B2B invoices are not held to these rules, because nobody applies them there. What gets checked. The findings appear in the same pre-flight list as the European rules, on the invoice and in the company-wide view. BR-DE-15 — no buyer reference.
This is the most common reason a German B2G invoice bounces, and it bounces silently. BF-DE-LEITWEG — a reference that is present but not shaped like one. A warning, not a stop: it is worth a look, and occasionally a department really does publish something unusual. BR-DE-01 — no payment means.
The invoice has to say how it is to be paid. BR-DE-05, 06, 07 — a named seller contact with a telephone and an email. Most companies have never filled these in, and every German public buyer wants them. Now the part most videos leave out: what this does not do.
The check verifies the shape of a Leitweg-ID, not that it exists. Only the authority's own directory can tell you that. XRechnung has more rules than these; the ones here are those that actually bounce invoices in practice. Sending is not part of this app — it produces an invoice that will be accepted, not the transport that delivers it.
The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.


Transcript of the walkthrough (Odoo 18)
XRechnung: German B2G E-Invoicing. The routing identifier German public bodies need, validated, plus the XRechnung rules beyond the European baseline, checked before you send. Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time. In the next few minutes: what this is for, then setting it up, then what gets checked.
Then what this app deliberately does not do, so you can tell before you buy whether it fits. What this is for. Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
Setting it up. On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time.
The flag matters: ordinary B2B invoices are not held to these rules, because nobody applies them there. What gets checked. The findings appear in the same pre-flight list as the European rules, on the invoice and in the company-wide view. BR-DE-15 — no buyer reference.
This is the most common reason a German B2G invoice bounces, and it bounces silently. BF-DE-LEITWEG — a reference that is present but not shaped like one. A warning, not a stop: it is worth a look, and occasionally a department really does publish something unusual. BR-DE-01 — no payment means.
The invoice has to say how it is to be paid. BR-DE-05, 06, 07 — a named seller contact with a telephone and an email. Most companies have never filled these in, and every German public buyer wants them. Now the part most videos leave out: what this does not do.
The check verifies the shape of a Leitweg-ID, not that it exists. Only the authority's own directory can tell you that. XRechnung has more rules than these; the ones here are those that actually bounce invoices in practice. Sending is not part of this app — it produces an invoice that will be accepted, not the transport that delivers it.
The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.


Transcript of the walkthrough (Odoo 17)
XRechnung: German B2G E-Invoicing. The routing identifier German public bodies need, validated, plus the XRechnung rules beyond the European baseline, checked before you send. Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time. In the next few minutes: what this is for, then setting it up, then what gets checked.
Then what this app deliberately does not do, so you can tell before you buy whether it fits. What this is for. Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
Setting it up. On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time.
The flag matters: ordinary B2B invoices are not held to these rules, because nobody applies them there. What gets checked. The findings appear in the same pre-flight list as the European rules, on the invoice and in the company-wide view. BR-DE-15 — no buyer reference.
This is the most common reason a German B2G invoice bounces, and it bounces silently. BF-DE-LEITWEG — a reference that is present but not shaped like one. A warning, not a stop: it is worth a look, and occasionally a department really does publish something unusual. BR-DE-01 — no payment means.
The invoice has to say how it is to be paid. BR-DE-05, 06, 07 — a named seller contact with a telephone and an email. Most companies have never filled these in, and every German public buyer wants them. Now the part most videos leave out: what this does not do.
The check verifies the shape of a Leitweg-ID, not that it exists. Only the authority's own directory can tell you that. XRechnung has more rules than these; the ones here are those that actually bounce invoices in practice. Sending is not part of this app — it produces an invoice that will be accepted, not the transport that delivers it.
The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.


Transcript of the walkthrough (Odoo 16)
XRechnung: German B2G E-Invoicing. The routing identifier German public bodies need, validated, plus the XRechnung rules beyond the European baseline, checked before you send. Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time. In the next few minutes: what this is for, then setting it up, then what gets checked.
Then what this app deliberately does not do, so you can tell before you buy whether it fits. What this is for. Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
Setting it up. On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time.
The flag matters: ordinary B2B invoices are not held to these rules, because nobody applies them there. What gets checked. The findings appear in the same pre-flight list as the European rules, on the invoice and in the company-wide view. BR-DE-15 — no buyer reference.
This is the most common reason a German B2G invoice bounces, and it bounces silently. BF-DE-LEITWEG — a reference that is present but not shaped like one. A warning, not a stop: it is worth a look, and occasionally a department really does publish something unusual. BR-DE-01 — no payment means.
The invoice has to say how it is to be paid. BR-DE-05, 06, 07 — a named seller contact with a telephone and an email. Most companies have never filled these in, and every German public buyer wants them. Now the part most videos leave out: what this does not do.
The check verifies the shape of a Leitweg-ID, not that it exists. Only the authority's own directory can tell you that. XRechnung has more rules than these; the ones here are those that actually bounce invoices in practice. Sending is not part of this app — it produces an invoice that will be accepted, not the transport that delivers it.
The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.


Key facts
- What it is
- The routing identifier German public bodies need, validated, plus the XRechnung rules beyond the European baseline, checked before you send.
- For
- Accounting
- Odoo versions
- 16.0, 17.0, 18.0, 19.0, 20.0 - Community and Enterprise
- Runs on
- Odoo.sh or Odoo you host yourself - not Odoo Online, which accepts no third-party apps
- Price
- 318 EUR, one-time, on the Odoo Apps Store
- Technical name
- bambooforge_xrechnung
- Not for
- The check verifies the shape of a Leitweg-ID, not that it exists. Only the authority's own directory can tell you that.; XRechnung has more rules than these; the ones here are those that actually bounce invoices in practice.; Sending is not part of this app — it produces an invoice that will be accepted, not the transport that delivers it.
- Manual last updated
- 2026-10-15
E-Invoicing All in One for XRechnung B2G
What this is for
Invoicing a German public body is not the same as invoicing a company. The document has to carry a Leitweg-ID — the routing identifier the authority publishes — and XRechnung adds rules on top of EN 16931 that the European baseline does not enforce.
Setting it up
On the customer: tick Public Sector Buyer and enter the Leitweg-ID they gave you. The identifier is validated against its published structure — a state or federal code, an optional middle part, and a two-digit check part, for example 04011000-1234512345-06. A typo is invisible until the invoice disappears, which is why it is checked on entry rather than at send time.
The flag matters: ordinary B2B invoices are not held to these rules, because nobody applies them there.
What gets checked
BR-DE-15 — no buyer reference. This is the most common reason a German B2G invoice bounces, and it bounces silently.
BF-DE-LEITWEG — a reference that is present but not shaped like one. A warning, not a stop: it is worth a look, and occasionally a department really does publish something unusual.
BR-DE-01 — no payment means. The invoice has to say how it is to be paid.
BR-DE-05, 06, 07 — a named seller contact with a telephone and an email. Most companies have never filled these in, and every German public buyer wants them.
The findings appear in the same pre-flight list as the European rules, on the invoice and in the company-wide view.
Known limits
The check verifies the shape of a Leitweg-ID, not that it exists. Only the authority's own directory can tell you that.
XRechnung has more rules than these; the ones here are those that actually bounce invoices in practice.
Sending is not part of this app — it produces an invoice that will be accepted, not the transport that delivers it.
How we make sure it works
Before every release, 11 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them:
An ordinary company is not held to the german rules.
A reference of the wrong shape is only a warning.
A malformed leitweg id is refused on the partner.
A public invoice without a reference is blocked.
No payment means is blocking.
The complete list is in the source you receive.
Install
Copy bambooforge_xrechnung into your addons path and update the app list, or install the ZIP from the Odoo Apps Store.
Install XRechnung: German B2G E-Invoicing.
Questions people ask
- Which Odoo versions does it run on?
Odoo 16.0, 17.0, 18.0, 19.0, 20.0, on the series you buy it for; each series is its own listing.
- Community or Enterprise?
Both. It needs no Enterprise app.
- What does it need?
The standard Web; einvoice (BambooForge) must be installed first app. No extra Python package.
- Does anything leave my server?
No. It makes no call outside your Odoo server: no telemetry, no licence check, no third-party service.
- What happens if I uninstall it?
Odoo drops the app's own tables and fields; the standard records it worked on (contacts, orders, products) stay as they are.