Siedem reguł kręci się wokół tego samego bloku. BR-49, BR-61 i BR-50 pochodzą z europejskiej normy EN 16931 i dotyczą każdego formatu; reguły BR-DE dotyczą tylko XRechnung (KoSIT Schematron v2.6.0):
- BR-DE-1 (fatal): „Eine Rechnung (INVOICE) muss Angaben zu "PAYMENT INSTRUCTIONS" (BG-16) enthalten.” Bez bloku płatności XRechnung nie jest ważna.
- BR-49 (fatal): „A Payment instruction (BG-16) shall specify the Payment means type code (BT-81).”
- BR-61 (fatal): „If the Payment means type code (BT-81) means SEPA credit transfer, Local credit transfer or Non-SEPA international credit transfer, the Payment account identifier (BT-84) shall be present.”
- BR-50 (fatal): „A Payment account identifier (BT-84) shall be present if Credit transfer (BG-17) information is provided in the Invoice.”
- BR-DE-23-a (fatal): „Wenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), muss BG-17 "CREDIT TRANSFER" übermittelt werden.”
- BR-DE-23-b (fatal): „Wenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), dürfen BG-18 und BG-19 nicht übermittelt werden.” Przelew nie może jednocześnie zawierać danych karty (BG-18) ani polecenia zapłaty (BG-19).
- BR-DE-19 (warning): „"Payment account identifier" (BT-84) soll eine korrekte IBAN enthalten, wenn in "Payment means type code" (BT-81) mit dem Code 58 SEPA als Zahlungsmittel gefordert wird.” To ostrzeżenie: przy kodzie 58 konto powinno być poprawnym IBAN-em.

Środki płatności, które zobaczysz
- 30
- Przelew (credit transfer). Tak Odoo zapisuje fakturę z Recipient Bank.
- 58
- Przelew SEPA. Tak zapisuje nasz moduł XRechnung i ZUGFeRD.
- ZZZ
- Uzgodnione między stronami (mutually defined). Tak Odoo zapisuje fakturę bez banku.
- 57
- Zlecenie stałe (standing agreement). Tak Odoo zapisuje noty kredytowe.
Co robi Odoo z fakturą
W Odoo 17, 18, 19 i 20 decyzja jest ta sama i zależy od pola Recipient Bank faktury. Jeśli bank jest ustawiony, środkiem jest 30, a konto trafia do BT-84: BR-61, BR-50 i BR-DE-23-a są spełnione same z siebie. Jeśli banku nie ma, środkiem jest ZZZ. Blok BG-16 istnieje, więc BR-DE-1 nie zostaje zgłoszona, ale faktura nie mówi, na które konto płacić.
Dodatkowo, przed wygenerowaniem pliku, Odoo powtarza kontrolę BR-61: jeśli środkiem jest 30 lub 58, a faktura nie ma Recipient Bank, zatrzymuje się z komunikatem o wymaganym polu. Przy opisanej logice trudno do tego dojść, ale moduł zmieniający środek płatności może to wywołać.
Z naszym modułem XRechnung i ZUGFeRD
Moduł nie patrzy na Recipient Bank: instrukcje płatności pochodzą z IBAN-u XRechnung Twojej firmy, ze środkiem 58, IBAN-em w BT-84 i BIC-iem, jeśli jest. Jeśli ten IBAN jest pusty, moduł niczego nie generuje i zatrzymuje się wcześniej z komunikatem „Company IBAN (BT-84) is required for XRechnung generation.”. Tak więc z modułem faktura bez BG-16 nie wychodzi.

W Odoo 18, 19 i 20, z subskrypcją FlexigoTech Cloud, każda wygenerowana XRechnung przechodzi dodatkowo przez reguły KoSIT, a tylko ta, która je spełnia, dostaje status Ready to send. W Odoo 17 opublikowana wersja nie waliduje.
Jak to naprawić
- W Odoo wybierz konto, na które pobierasz płatność, w polu Recipient Bank faktury, zanim wygenerujesz XRechnung.
- Z naszym modułem uzupełnij IBAN XRechnung Twojej firmy (oraz BIC, jeśli klient go wymaga).
- Sprawdź, czy IBAN jest poprawny: przy środku 58 BR-DE-19 ostrzeże, jeśli nie jest.
- Wygeneruj XRechnung ponownie; ta, która już wysłałeś, pozostaje bez zmian.
Czytaj dalej
Sprawdzone w kodzie źródłowym modułu (wersja 17.0 i 20.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigo_germany_xrechnung 20.0 (446f2f68): models/account_move.py
- github.com/odoo/odoo/blob/6f00fdadb875342de2d14a179f25431f93cd63c9/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/6f00fdadb875342de2d14a179f25431f93cd63c9/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/account_edi_ubl_
- Kod modułu: flexigo_germany_xrechnung 20.0 (446f2f68): lib/generators/ubl_generator.py
- Kod modułu: flexigo_germany_xrechnung 20.0 (446f2f68): models/xrechnung_cloud.py
- Kod modułu: flexigo_germany_xrechnung 17.0 (ad05de8f): __manifest__.py
- github.com/ConnectingEurope/eInvoicing-EN16931/releases/tag/validation-1.3.17
- github.com/itplr-kosit/xrechnung-schematron/releases/tag/v2.6.0
