Dokumentation: Odoo App FinanzOnline Export & UID Prüfung
Modul: dp_fon_connector · Version: 19.0.1.0.1 · Lizenz: OPL-1 · Zielgruppe: versierte Odoo-Anwender / Consultants · Zielmarkt: Österreich
Überblick
Das Modul FinanzOnline Connector erzeugt aus den österreichischen Steuerberichten XML-Datenträger für FinanzOnline und übermittelt sie über das BMF-File-Upload-Webservice. Unterstützt werden:
| Typ | Bezeichnung | Quelle in Odoo | Zeitraum |
| U30 | Umsatzsteuervoranmeldung | Steuerbericht (periodische USt) | genau ein Kalendermonat |
| U1 | Umsatzsteuer-Jahreserklärung | Steuerbericht (periodische USt) | vollständiges Wirtschaftsjahr |
| U13 | Zusammenfassende Meldung | EG-Verkaufsliste | genau ein Kalendermonat |
Die Erstellung der XML-Datei und die Übermittlung an FinanzOnline sind zwei getrennte Schritte. Zuerst entsteht ein FON-Datenträger im Status Entwurf mit angehängter XML-Datei. Die Übertragung erfolgt erst über den Button An FinanzOnline übertragen.
Kennzahlen. Die Beträge kommen aus den Zeilencodes des österreichischen Steuerberichts (AT_000, AT_022_base usw.). Eine korrekte Zuordnung der Steuern zu den Berichtskennzahlen (l10n_at) ist Voraussetzung für eine gültige Erklärung.
Installation
Die Installation erfolgt über den Menüpunkt Apps in Odoo. Nach FinanzOnline Connector bzw. dp_fon_connector suchen und die App installieren.
| Abhängigkeit | Zweck |
| account_reports | Steuerbericht und EG-Verkaufsliste als Datenquelle |
| Python-Paket zeep | SOAP-Client für Session- und File-Upload-Webservice |
Optional kann das Zusatzmodul UID-Prüfung (dp_fon_vat_check) installiert werden. Es nutzt dieselben FON-Zugangsdaten. Die Konfiguration ist im Abschnitt Optionales Modul: UID-Prüfung beschrieben.
Testmodus ist Standard. Nach der Installation ist der Testmodus aktiv. FinanzOnline prüft die Datei dann nur technisch, reicht sie aber nicht ein. Staging-Datenbanken setzen den Testmodus beim Neutralisieren erneut auf aktiv.
Voraussetzung: FinanzOnline-Webservice-Benutzer
Das Modul verwendet zur Übermittlung die Webservices von FinanzOnline ( Session und File Upload ). Daher muss zuvor ein neuer Teilnehmer in FinanzOnline konfiguriert werden.
Vorgehen in FinanzOnline (Admin):
- Unter Admin → Benutzer Liste einen neuen Teilnehmer anlegen.
- Der Benutzer muss nicht personifiziert sein. Ein technischer Service-User genügt.
- Die einzige notwendige Einstellung ist Benutzer für Webservice unter Verwaltung der Benutzerdaten. Weitere Fachberechtigungen sind nicht erforderlich.
- Die vergebenen Werte Ben-ID (Suchname), TID (Teilnehmer-Identifikation) und PIN (Start-PIN) notieren – sie werden in Odoo hinterlegt.
Weiters muss im entsprechenden Unternehmen/Mandanten in Odoo dieselbe UID hinterlegt sein wie in FinanzOnline (Einstellungen → Unternehmen → UID). Ohne UID bricht der Login zum Webservice ab. Leerzeichen in der UID werden vor dem Aufruf entfernt.
Technische Spezifikation: BMF Webservice-Dokumentation.
Berechtigungen
| Gruppe | Rechte |
|
Buchhaltung / Rechnungsstellung account.group_account_invoice |
FON-Datenträger lesen |
|
Buchhaltung / Buchhaltungsmanager account.group_account_manager |
FON-Datenträger anlegen, XML erzeugen, übermitteln, löschen. U30-/U1-/U13- und VST-Einstellungen pflegen |
|
Einstellungen / Administrator base.group_system |
FON-Zugangsdaten (Ben-ID, TID, PIN) lesen und schreiben. Die Felder sind serverseitig auf diese Gruppe beschränkt |
In einer Mehrfirmen-Umgebung trennt eine Record Rule die Datenträger nach Unternehmen. Zugangsdaten und Steuernummer sind unternehmensbezogen.
Einstellungen konfigurieren
Navigation: Einstellungen → FinanzOnline (App-Karte FinanzOnline in den allgemeinen Einstellungen).
Erweiterungen
| Feld | Typ | Beschreibung |
| UID-Prüfung aktivieren | Modulinstallation | Installiert das optionale Modul dp_fon_vat_check. Danach erscheinen die Felder Umgehung der UID-Prüfung erlauben und Gültigkeit der Prüfung (Tage). Details im Abschnitt Optionales Modul: UID-Prüfung. |
FinanzOnline-Zugangsdaten
| Feld | Pflicht | Beschreibung |
| Ben-ID | Ja (für Upload) | Benutzer-ID / Suchname des Webservice-Teilnehmers. Unternehmensabhängig. |
| TID | Ja (für Upload) | Teilnehmer-Identifikation. |
| PIN | Ja (für Upload) | Start-PIN. Wird im Formular als Passwortfeld dargestellt. |
| Steuernummer | Ja (für XML) | Finanzamtsnummer und Steuernummer als eine Zahl, Format 989999999 (maximal 9 Stellen). Wird als FASTNR in jede XML geschrieben. Fehlt der Wert, bricht die XML-Erstellung mit einer Fehlermeldung ab. |
| Testmodus | — | Standard: aktiv. Übermittlungskennzeichen T (Test) statt P (Produktiv). Im Test prüft FinanzOnline nur technisch, die Erklärung gilt nicht als eingereicht. |
Produktivschaltung. Testmodus erst deaktivieren, wenn Zugangsdaten, Steuernummer und ein Probe-Datenträger im Testmodus fehlerfrei durchgelaufen sind. Die Chatter-Rückmeldung am Datenträger unterscheidet Test- und Produktivmodus.
Steuerfreie Umsätze mit Vorsteuerabzug (VST-Code)
Der VST-Code gilt gemeinsam für U30 und U1. Er gibt an, auf welche Steuerbefreiungstatbestände sich Kennzahl KZ020 bezieht (§ 6 Abs. 1 UStG).
| Ziffer | Tatbestand |
| 1 | Z1 Ausfuhrlieferungen |
| 2 | Z2 Lohnveredelung |
| 3 | Z3 innergemeinschaftliche Lieferungen |
| 4 | Z4 Beförderungsleistungen |
| 5 | Z5 Güterbeförderung Drittland |
| 6 | Z6 sonstige Leistungen |
Buchstaben a–z stehen für Unterabsätze. Beispiel: 1ab3 = Z1 lit. a, lit. b und Z3.
BMF-Regel. Ist KZ020 ungleich 0, muss ein VST-Code gesetzt sein. Ist ein VST-Code gesetzt, muss KZ020 ungleich 0 sein. Verstöße erscheinen als Prüfhinweis am Datenträger, blockieren die XML-Erstellung aber nicht.
Steuererklärungen
Das Modul unterstützt drei Erklärungstypen für FinanzOnline. Die XML-Erstellung erfolgt jeweils aus dem passenden Odoo-Bericht; die Übermittlung ist ein separater Schritt über den FON-Datenträger.
U30 Umsatzsteuervoranmeldung
Die U30-Einstellungen sind nur für Buchhaltungsmanager sichtbar.
| Feld | XML | Beschreibung |
| Verwendung des Überschusses zur Abdeckung von Abgaben (ARE) | ARE = J | Antrag, einen Vorsteuerüberschuss zur Abdeckung anderer Abgaben zu verwenden. |
| Übermittlung der Rechnungen in Kopien (REPO) | REPO = J | Zu setzen, wenn zu dieser UVA vorab oder zeitgleich Rechnungen in Kopie auf dem Postweg an das zuständige Finanzamt gehen. |
U30 erstellen:
- Navigation: Buchhaltung → Berichtswesen → Steuerbericht (österreichischer periodischer USt-Bericht).
- Zeitraum auf genau einen Kalendermonat stellen (Beginn am 1., Ende am letzten Tag desselben Monats).
- Sicherstellen, dass keine Tax Unit / Organschaft gewählt ist (nur company_only).
- Button U30-Einreichung (immer sichtbar).
- Im Wizard XML erstellen bestätigen.
Existiert bereits ein U30-Datenträger für denselben Zeitraum und dasselbe Unternehmen, erscheint eine Warnung. Die Erstellung bleibt möglich (erneute Datei, z. B. nach Korrektur).
Der Datenträger erhält die Bezeichnung U30-YYYY-MM-Zeitstempel und den Zeitraum im Format MM/YYYY. Die XML-Art bei der Übermittlung ist U30.
U1 Jahreserklärung
| Feld | XML | Beschreibung |
| Kammerumlage | KUP = J | Kammerumlage wird in der Jahreserklärung angesetzt. |
| Kammerumlage Betrag | KUE | Nur sichtbar, wenn Kammerumlage aktiv ist. Betrag der Umlage. |
| Organgesellschaften | ORG = J | Kennzeichnung, dass Organgesellschaften einzubeziehen sind. |
| Anzahl Organgesellschaften | AORG | Nur sichtbar, wenn Organgesellschaften aktiv ist. Ganzzahl ≥ 1. |
Bei abweichendem Wirtschaftsjahr (Unternehmensfeld letzter Monat des Wirtschaftsjahres ungleich Dezember) schreibt das Modul AWJ_VON1 und AWJ_BIS1 in die XML. Ein abweichendes Wirtschaftsjahr darf laut BMF nicht im Dezember enden.
U1 erstellen:
- Navigation: Buchhaltung → Berichtswesen → Steuerbericht.
- Zeitraum auf das vollständige Wirtschaftsjahr stellen: Beginn am Tag nach dem vorherigen WJ-Ende, Ende am in den Unternehmenseinstellungen hinterlegten WJ-Ende (fiscalyear_last_month / fiscalyear_last_day).
- Keine Tax Unit / Organschaft wählen.
- Button U1-Einreichung (unter den weiteren Aktionen des Berichts).
- Im Wizard XML erstellen bestätigen.
Der Zeitraum am Datenträger ist das Startjahr (YYYY). Bei der Übermittlung wird intern die BMF-Art JAHR_ERKL verwendet.
Kleinunternehmer. Sind KZ016 (Kleinunternehmerbefreiung) und KZ060 (Vorsteuern) gleichzeitig ungleich 0, erscheint ein Prüfhinweis. Vorsteuern sind in diesem Fall nicht zulässig.
U13 Zusammenfassende Meldung
Die folgenden Schalter gelten global für alle Meldezeilen der ZM. Sie können nicht je Partner gesetzt werden.
| Feld | XML | Beschreibung |
| Dreiecksgeschäfte (DREIECK) | DREIECK = J | Alle Einträge als Dreiecksgeschäfte kennzeichnen. |
| Sonstige Leistungen (SOLEI) | SOLEI = J | Alle Einträge als sonstige Leistungen kennzeichnen. |
Gegenseitiger Ausschluss. DREIECK und SOLEI dürfen nicht gleichzeitig aktiv sein. Das Modul erzeugt in diesem Fall einen Prüfhinweis.
U13 erstellen:
- Navigation: Buchhaltung → Berichtswesen → EG-Verkaufsliste.
- Zeitraum auf genau einen Kalendermonat stellen.
- Button U13-Einreichung.
- Im Wizard XML erstellen bestätigen.
Das Modul liest die Partnerzeilen der EG-Verkaufsliste (Land, UID, Saldo). Die Bemessungsgrundlage wird negiert und auf ganze Euro gerundet (SUM_BGL). Die UID wird als Land + Nummer zusammengesetzt (UID_MS, z. B. DE123456789).
Prüfungen je Meldezeile:
- mindestens eine Meldezeile
- UID mindestens 4 Zeichen
- keine österreichische UID (AT…)
- Bemessungsgrundlage ungleich 0
- keine doppelte Kombination aus UID + DREIECK/SOLEI
FON-Datenträger und Übermittlung
Navigation: Buchhaltung → Berichtswesen → FON Datenträger
| Feld | Beschreibung |
| Bezeichnung | Wird bei der XML-Erstellung auf die Kundeninfo gesetzt (z. B. U30-2026-03-…). |
| Zeitpunkt | Erstellungszeitpunkt, fließt in Datum/Uhrzeit der XML. |
| Typ | U30, U1 oder U13. |
| Zeitraum | MM/YYYY (U30/U13) bzw. YYYY (U1). |
| Status | Entwurf oder Übertragen. Die Statusleiste ist klickbar, der fachliche Wechsel erfolgt über die Übermittlung. |
| Prüfhinweise | BMF-Plausibilitäten. Werden als gelbes Banner angezeigt, wenn vorhanden. |
Die XML-Datei liegt als Hauptanhang im Chatter. Filter in der Liste: Entwurf / Übertragen, Gruppierung nach Typ und Status.
An FinanzOnline übertragen:
- Datenträger im Status Entwurf öffnen.
- XML-Anhang prüfen (genau eine Datei muss vorhanden sein).
- Prüfhinweise lesen. Sie blockieren den Upload nicht, FinanzOnline kann die Datei trotzdem ablehnen.
- Button An FinanzOnline übertragen.
Ablauf intern:
- Login am Session-Webservice mit TID, Ben-ID, PIN und Unternehmens-UID.
- Upload der XML (UTF-8) mit Art U30 / JAHR_ERKL / U13 und Kennzeichen Test (T) oder Produktiv (P).
- Bei Rückgabecode 0: Chatter-Nachricht und Status Übertragen.
- Logout der Session (auch bei Fehlern, um Session-Leaks zu vermeiden).
Anhänge. Fehlt die XML oder liegen mehrere Anhänge am Datenträger, wird die Übertragung abgelehnt. Keine weiteren Dateien an den Datenträger hängen.
Prüfhinweise und häufige Meldungen
Die BMF-Prüfungen orientieren sich an den Dokumenten Prüfungen UVA ab 01/2022 und Prüfungen Jahreserklärungen 2025. Sie sind Warnungen, keine harten XML-Stopps (Ausnahme: fehlende Steuernummer, ungültiger Zeitraum, fehlende Zugangsdaten).
| Meldung | Ursache | Abhilfe |
| Bitte hinterlegen Sie die Steuernummer in der FinanzOnline-Konfiguration. | Feld Steuernummer leer | Einstellungen → FinanzOnline → Steuernummer setzen |
| Bitte hinterlegen Sie die FON-Zugangsdaten in den Einstellungen. | Ben-ID, TID oder PIN fehlt | Zugangsdaten des Webservice-Users eintragen (Administrator) |
| Die UID-Nummer muss im Unternehmen hinterlegt sein … | Unternehmens-UID leer | Einstellungen → Unternehmen → UID (identisch zu FinanzOnline) |
| Fehler bei der Verbindung zu FinanzOnline … | SOAP-Fault beim Login | Ben-ID, TID, PIN und UID prüfen; Webservice-User in FON aktiv? |
| Es muss genau ein Monat ausgewählt werden. | U30/U13-Zeitraum ist kein voller Kalendermonat | Bericht auf 01.–Monatsultimo stellen |
| Der Zeitraum muss am Wirtschaftsjahresende enden … | U1-Zeitraum passt nicht zum WJ des Unternehmens | WJ-Ende im Unternehmen und Berichtszeitraum angleichen |
| Die U30-/U1-Erstellung wird für Organschaften (Tax Units) nicht unterstützt. | Tax Unit im Steuerbericht gewählt | Bericht auf das einzelne Unternehmen stellen |
| Übertragung nicht möglich. Die XML-Datei wurde noch nicht erstellt. / Es gibt mehr als eine Datei … | Anhang fehlt oder ist nicht eindeutig | XML neu erzeugen bzw. überzählige Anhänge entfernen |
| Wenn KZ020 != 0 ist, muss der VST-Code angegeben werden. | steuerfreie Umsätze mit VSt-Abzug ohne Code | VST-Code in den Einstellungen setzen |
| Es muss ein steuerbarer Umsatz (KZ 000) eingegeben werden. | Kennzahl AT_000 fehlt im Bericht | Steuerbericht / l10n_at-Zuordnung prüfen |
| AT-UID nicht zulässig … | ZM enthält österreichische UID | Partner-UIDs in der EG-Verkaufsliste korrigieren |
Nicht unterstützte Fälle
- Organschaft / Tax Units bei U30 und U1 – nur einzelnes Unternehmen.
- U13 Konsignationslager (KLAG 1–3) – nicht abgebildet.
- U13 ursprünglicher Erwerber (UID_UE) – nicht abgebildet.
- U13 Gesamtrückziehung – nicht abgebildet.
- U13 je Partner unterschiedlich DREIECK/SOLEI – nur globale Schalter.
- Kennzahlen, die im österreichischen Steuerbericht keinen code tragen, fließen nicht in die XML.
Optionales Modul: UID-Prüfung (dp_fon_vat_check)
Das Modul dp UID-Prüfung (FON Connector) (technischer Name dp_fon_vat_check) ist optional und setzt dp_fon_connector voraus. Es prüft UID-Nummern von Partnern über das FinanzOnline-Webservice uidAbfrage (Stufe 2, inkl. Adressdaten) und kann das Bestätigen von Ausgangsrechnungen blockieren, solange die Prüfung nicht gültig ist.
Installation: über Einstellungen → FinanzOnline den Schalter UID-Prüfung aktivieren setzen – oder das Modul in Apps suchen und installieren. Es verwendet dieselben Zugangsdaten (Ben-ID, TID, PIN) und dieselbe Unternehmens-UID wie der Connector.
Einstellungen der UID-Prüfung
Nach der Installation erscheinen in Einstellungen → FinanzOnline im Block Erweiterungen zwei weitere Felder (unternehmensabhängig):
| Feld | Standard | Beschreibung |
| Umgehung der UID-Prüfung erlauben | aus | Wenn aktiv, erscheint auf der Rechnung die Checkbox UID-Prüfung umgehen. Nur dann darf eine Ausgangsrechnung trotz ungültiger Prüfung bestätigt werden. |
| Gültigkeit der Prüfung (Tage) | 90 | Nach dieser Zeitspanne gilt eine zuvor gültige Prüfung als abgelaufen und muss erneut ausgeführt werden. |
UID-Prüfung am Partner
Sofern der Partner ein Unternehmen ist, erscheint neben der UID-Nummer der Link ⇒ Jetzt überprüfen. Es werden Gültigkeit der UID sowie Firmenname, Adresse, PLZ und Ort gegen FinanzOnline abgeglichen.
Die Adresslogik ist länderspezifisch implementiert für: AT, DE, IT, HR, SI, HU, CZ, FR, PL. Für andere Länder erscheint der Hinweis, dass die Prüfung für dieses Land noch nicht implementiert ist; die Gültigkeit kann dann manuell gesetzt werden.
Die Prüfung wird automatisch als gültig markiert, wenn alle Punkte zutreffen:
- UID-Nummer ist gültig und aktiv (Webservice-Rückgabecode 0)
- Firmenname ist gleichlautend wie in Odoo
- Adresse, PLZ und Ort sind gleichlautend wie in Odoo (Groß/Klein und Schreibweisen wie „Straße“ / „Str.“ werden angeglichen)
| Feld | Beschreibung |
| UID gültig | Wird automatisch gesetzt oder manuell übersteuert. Beim manuellen Setzen wird das Prüfdatum auf jetzt gesetzt. |
| Datum UID-Prüfung | Zeitpunkt der letzten erfolgreichen Prüfung. Sichtbar, wenn die UID gültig ist. |
| UID-Fehler | Wird gesetzt, wenn ein Fehlertext vorliegt. Verweist auf den Reiter Buchhaltung. |
| UID-Fehlertext / Antwort Webservice | Im Reiter Buchhaltung, Gruppe UID-Prüfung. Enthält Abweichungen (Name, Adresse, PLZ, Ort) bzw. die letzte FON-Antwort. |
Wird Name, Straße, PLZ oder Ort am Partner geändert, setzt das Modul UID gültig zurück. Wird die UID geleert, werden Gültigkeit und Prüfdatum ebenfalls geleert. In der Partnersuche steht der Filter UID-Prüfung fehlgeschlagen zur Verfügung.
Ist die UID bereits als gültig gekennzeichnet und liefert FinanzOnline dasselbe Ergebnis wie beim letzten Aufruf, bleibt die Prüfung gültig und das Datum wird auf den heutigen Tag gesetzt – auch wenn zuvor ein funktionaler Fehler vorlag. Bei einem technischen Fehler (z. B. Mitgliedsstaat nicht erreichbar) bleiben die gespeicherten Daten unverändert.
Alle Abfragen werden in FinanzOnline gespeichert und dort in den Nachrichten abgelegt. Darüber lässt sich später nachweisen, welche UID an welchem Datum mit welchem Ergebnis geprüft wurde.
UID-Prüfung auf der Rechnung
Geprüft werden nur Ausgangsrechnungen und Ausgangsgutschriften. Eingangsrechnungen werden nicht blockiert. Die Prüfung greift nur, wenn der Partner (Unternehmen) eine UID hinterlegt hat.
Im Entwurf erscheint ein rotes Banner, wenn eine der Bedingungen nicht erfüllt ist:
- UID gültig ist am Partner nicht gesetzt
- die Prüfung ist älter als die hinterlegte Gültigkeit in Tagen
Über den Button => UID prüfen im Banner wird die Prüfung direkt am Partner angestoßen. Beim Bestätigen werden dieselben Kriterien erneut geprüft.
Ist in den Einstellungen Umgehung der UID-Prüfung erlauben aktiv, kann auf der Rechnung UID-Prüfung umgehen gesetzt und die Rechnung trotzdem bestätigt werden. Hat der Partner keine UID, wird die Prüfung übersprungen.
Checkliste Ersteinrichtung
- Python-Paket zeep auf dem Server vorhanden
- Modul dp_fon_connector installiert (Voraussetzung: Buchhaltungsberichte)
- Österreichischer Steuerbericht (l10n_at) aktiv, Kennzahlen AT_* korrekt belegt
- FinanzOnline-Webservice-Benutzer angelegt (Benutzer für Webservice)
- Ben-ID, TID und PIN in Einstellungen → FinanzOnline hinterlegt
- Steuernummer im Format 9 Stellen hinterlegt
- UID des Odoo-Unternehmens identisch zur FON-UID
- Testmodus aktiv lassen
- VST-Code setzen, falls KZ020 vorkommt
- U30: ARE/REPO nur setzen, wenn fachlich zutreffend
- U1: Kammerumlage / Organgesellschaften bei Bedarf; WJ-Ende im Unternehmen prüfen
- U13: DREIECK oder SOLEI nur wenn alle Zeilen denselben Charakter haben – sonst beide aus
- Probe-U30 für einen abgeschlossenen Monat erzeugen, Prüfhinweise lesen, im Testmodus übertragen
- Rückmeldung im Chatter prüfen, danach Testmodus für den Produktivbetrieb deaktivieren
- Optional: UID-Prüfung aktivieren (dp_fon_vat_check)
- Optional: Gültigkeit der Prüfung (Tage) prüfen (Standard 90)
- Optional: entscheiden, ob Umgehung der UID-Prüfung erlauben aktiv sein soll
- Optional: UID an einem Testpartner mit ⇒ Jetzt überprüfen prüfen
Weiterführende Quellen
- BMF Softwarehersteller, Jahreserklärungen: bmf.gv.at – Jahreserklärungen
- BMF Softwarehersteller, Erklärungen und Anträge (UVA / ZM): bmf.gv.at – Erklärungen und Anträge
- Beiliegende BMF-Unterlagen im Ordner dp_fon_connector/doc/: Session-Webservice, File-Upload-Webservice, UVA ab 01/2022, Jahreserklärung 2025, Zusammenfassende Meldung.
Dokumentation erstellt: August 2026 · dp_fon_connector v19.0.1.0.1 · datenpol gmbh