Vier Arten, den Käufer zu identifizieren
| Element FA(3) | Beschreibung im Schema | Wann es verwendet wird |
|---|---|---|
NIP | «Identyfikator podatkowy NIP» (Steuerkennung NIP) | Käufer mit polnischer NIP. |
KodUE + NrVatUE | «Numer Identyfikacyjny VAT kontrahenta UE» (USt-IdNr. des Vertragspartners in der EU) | Käufer mit USt-IdNr. eines anderen EU-Landes, in den Fällen, die das Umsatzsteuergesetz vorsieht. |
KodKraju + NrID | «Identyfikator podatkowy inny» (sonstige Steuerkennung) | Andere Steuerkennung, zum Beispiel von außerhalb der EU. |
BrakID | «Podmiot nie posiada identyfikatora podatkowego lub identyfikator nie występuje na fakturze: 1- tak» (keine Steuerkennung oder nicht auf der Rechnung angegeben) | Verbraucher oder Käufer ohne Kennung. |
Das Schema prüft nur das Format der NIP: 10 Ziffern nach dem Muster TNrNIP. Die Prüfsumme prüft es nicht. KSeF prüft sie, aber nur im Produktivbetrieb, für Podmiot1, Podmiot2, Podmiot3 und PodmiotUpowazniony. In der Testumgebung aktiviert der Header X-KSeF-Feature: subject-identifier-validation diese Prüfung. Die Dokumentation nennt nicht, mit welchem Code KSeF eine falsche Prüfsumme ablehnt.

Die Kennzeichen JST und GV
Beide sind in Podmiot2 verpflichtend und nehmen den Wert 1 oder 2 an:
- JST, «Znacznik jednostki podrzędnej JST.» (Kennzeichen für eine nachgeordnete Einheit einer Gebietskörperschaft): 1, wenn die Rechnung eine nachgeordnete Einheit einer Gemeinde oder einer anderen Gebietskörperschaft betrifft; dann muss
Podmiot3mit der Rolle 8 sowie der NIP oder der internen Kennung der Einheit ausgefüllt werden; - GV, «Znacznik członka grupy VAT.» (Kennzeichen für ein Mitglied einer USt-Gruppe): 1, wenn die Rechnung ein Mitglied einer USt-Gruppe betrifft; dann
Podmiot3mit der Rolle 10; - Bei beiden bedeutet 2, dass die Rechnung sie nicht betrifft.
Was Odoo 18, 19 und 20 schreiben
Odoo wählt die Kennung anhand der USt-IdNr. des Kunden. Eine polnische NIP geht nach NIP. Odoo schreibt KodUE und NrVatUE nur bei Sonderfällen, also bei Geschäftsvorfällen mit den Steuer-Tags OSS_Base, OSS_Tax, Triangular Sale, K_21 oder K_12; jede andere ausländische Nummer geht nach KodKraju und NrID. Ein Kunde ohne USt-IdNr. erhält BrakID 1.
JST und GV schreibt Odoo immer als 2. Eine Rechnung an eine nachgeordnete Einheit einer Gebietskörperschaft oder an ein Mitglied einer USt-Gruppe lässt sich daher in Odoo nicht so kennzeichnen, wie das Schema es verlangt, und sie erreicht diese Einheit über Podmiot3 nicht.

Was vor dem Versand zu prüfen ist
- Die USt-IdNr. des Kunden: eine polnische NIP mit oder ohne Präfix PL (ohne Präfix übernimmt Odoo das Land aus dem Kundenstamm) und mit korrekter Prüfsumme.
- Bei einem Kunden aus der EU: ob die Rechnung tatsächlich
KodUEundNrVatUEtragen muss, also ob die Positionen die richtige Steuer haben. - Bei Kunden aus dem öffentlichen Sektor: ob die Rechnung eine nachgeordnete Einheit erreichen muss; das schreibt Odoo nicht.
Prüft unser Modul die NIP des Käufers?
Teilweise. Wenn Sie «Mark ready for KSeF upload» verwenden, berechnet Poland KSeF 2.0 Validator die polnische Prüfsumme der NIP des Kunden und meldet bei Abweichung «Partner NIP invalid», während die Rechnung in «Manual action required» bleibt: Sie wechselt nicht zu «Ready to upload to KSeF». Die Prüfsumme wendet er auf jede USt-IdNr. an, auch auf ausländische, und eine ausländische Nummer besteht sie fast nie. Bei einem Kunden mit USt-IdNr. aus einem anderen Land bleibt die Rechnung daher dort, selbst wenn die Nummer korrekt ist. Die Validierung von FlexigoTech Cloud prüft die Datei gegen das Schema, also das Format, ohne die Prüfsumme.
Weiterlesen
Geprüft im Quellcode des Moduls (Version 20.0) und in den verlinkten Quellen
Quellen
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/schemy/FA
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/faktury/weryfikac
- github.com/CIRFMF/ksef-api/blob/ce3670ea042de380039de4c5849fd6455811b292/api-changelog.md#
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/l10n_pl_edi/data
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/l10n_pl_edi/data
- Quellcode des Moduls: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/account_move.py
- Quellcode des Moduls: FlexigoTech Cloud, validacion_efactura (motor_xsd.py y reglas.json)
- Quellcode des Moduls: flexigo_poland_ksef_2_0_e_invoice_connector_and_migrati 20.0 (ba7c60f1): models/ksef_cloud.py
