DATEV <> Benutzerhandbuch [GER]
Die folgende Dokumentation liefert Ihnen die Informationen, die Sie für die Nutzung der much. DATEV <> Odoo Integration benötigen. Ziel ist es, Sie mit der Integration vertraut zu machen, indem wir relevante Informationen zu den wichtigsten Geschäftsprozessen bereitstellen, die sie abdeckt, sowie dazu, wie Sie die Integration am besten an Ihre Bedürfnisse anpassen können.
Benötigen Sie Unterstützung bei unserem Modul? Ticket öffnen
Voraussetzungen
Erforderliche Abonnements (nur für die API)
Erforderliche DATEV-Abonnements
Bitten Sie Ihren Steuerberater, die folgenden Dienste für Ihre Mandantennummer in DATEV Arbeitsplatz → MyDATEV Mandantenregistrierung starten zu bestellen:
| Dienst | Bereich in DATEV | Was er ermöglicht |
|---|---|---|
| Buchungsdatenservice | Rechnungswesen | Senden von Buchungssätzen und Partner-Stammdaten als EXTF-CSV-Dateien an DATEV |
| Belege | DATEV Unternehmen online | Hochladen von PDF-Rechnungen und -Belegen, die an Buchungssätze angehängt sind |
Beide sind zwingend erforderlich. Ohne Buchungsdatenservice können keine Buchungs- oder Stammdaten gesendet werden. Ohne Belege können keine PDF-Dokumente an Buchungen angehängt werden.
💡 Die Bestellung dieser Dienste kann in DATEV Arbeitsplatz unter → MyDATEV Mandantenregistrierung starten vorgenommen werden.
2. Benutzerrechte
Sobald die Dienste bestellt sind, müssen dem Benutzer, der sich über Odoo authentifiziert, die entsprechenden Rechte in der DATEV Rechteverwaltung online zugewiesen werden
Die folgenden Rechte sind erforderlich:
| Recht | Bereich in der Rechteverwaltung | Gewährter OAuth-Scope | Zweck |
|---|---|---|---|
| Buchungsdatenservice | Rechnungswesen | datev:accounting:extf-files-import | Senden von Buchungssätzen und Partner-Stammdaten (EXTF-CSV) |
| Belege | DATEV Unternehmen online | accounting:documents | Hochladen von PDF-Rechnungen/-Belegen, die an Buchungssätze angehängt sind |
| Stammdaten | DATEV Unternehmen online | datev:accounting:clients | Validierung der Mandantenverbindung während der Einrichtung der Integration |
| DATEV-DFÜ über Internet | RZ-Kommunikation | (Transportschicht) | Ermöglicht REST-API-Aufrufe an das DATEV-Rechenzentrum über das Internet |
💡 Rechte werden pro Mandant (Mandantennummer) vergeben. Stellen Sie sicher, dass die Rechte für genau die Berater-/Mandantennummer-Kombination konfiguriert sind, die in den Odoo-Integrationseinstellungen verwendet wird.
Die Authentifizierung muss über DATEV SmartCard / DATEV mIDentity oder DATEV SmartLogin erfolgen.
Erforderliches much.-Abonnement
Wenn Sie das DATEV-API-Modul von much. erwerben, erhalten Sie einen API-Schlüssel per E-Mail (einen pro verwendeter Odoo-Instanz). Bewahren Sie diesen Schlüssel sicher auf, da er bei der Einrichtung der Integration benötigt wird.
Odoo-Abhängigkeiten
Um die much. Odoo-zu-DATEV-Integration zu nutzen, stellen Sie bitte sicher, dass in Ihrer Datenbank die folgenden Odoo-Standardmodule vorhanden sind:
- Buchhaltung – account_accountant
- Germany Buchhaltung – l10n_de
Module installieren
Die Integrationsmodule installieren
Installieren Sie in den Apps die folgenden Module:
- much_account_datev_base
- much_account_datev_csv_export
- much_account_datev_csv_import
- much_account_datev_xml_export
- much-integration-hub (*)
- much-notify (*)
- much-datev-integration (*)
(*)Nur wenn Sie den API-Export erworben haben.
Die Integration aktivieren (nur für die API)
Gehen Sie zu Integration Hub > Einstellungen und stellen Sie sicher, dass die folgenden Einstellungen aktiviert sind:
iHub Logs
- Info
- Debug
- Warning
- iHub Jobs
- iHub Queue

- Gehen Sie zu DATEV Export, scrollen Sie zum Ende der Seite und fügen Sie den Subscription-Key hinzu, den Sie per E-Mail für die betreffende Odoo-Instanz erhalten haben.

- Wechseln Sie zum Reiter „Integrationen" und klicken Sie auf Neu.
- Fügen Sie einen Integrationsnamen hinzu.
- Wählen Sie im Feld Integrationstyp die Option DATEV.
- Wählen Sie im Feld Unternehmen das Odoo-Unternehmen, auf das diese Integration angewendet werden soll.

- Klicken Sie auf Speichern.
Konfiguration
Die much. Odoo-zu-DATEV-Integration ermöglicht Ihnen den Export von Stammdaten, Bewegungsdaten und PDF-Dokumenten. Der Export kann so konfiguriert werden, dass er Ihren buchhalterischen Anforderungen entspricht.
Berater - & Mandantennummer
Um die Integration zu nutzen sowie DATEV-konforme Dateien zu exportieren, müssen Sie Ihre DATEV-Berater- und Mandantennummer eintragen. Gehen Sie dazu wie folgt vor:
- Gehen Sie zu Einstellungen > Benutzer & Unternehmen > Unternehmen.
- Füllen Sie im Unternehmensformular die Felder L10N De Datev Consultant Number (Beraternummer) und L10N De Datev Client Number (Mandantennummer) aus.

- Klicken Sie auf Speichern.
DATEV-Einstellungen
Um die Struktur der Datei zu konfigurieren, die per API an DATEV gesendet oder manuell exportiert wird, navigieren Sie zu Einstellungen > DATEV Export.
Sachkonten
- Length General Accounts (Länge der Sachkonten): Konfigurieren Sie die Länge der Kontonummern. Die Länge muss mit der übereinstimmen, die Ihr Steuerberater in DATEV verwendet. Wenn die Kontonummernlänge mehr Stellen hat als in Odoo, wird die Kontonummer am Ende mit Nullen aufgefüllt.

Einstellungen für die Kontolänge in Odoo

Einstellungen für die Kontolänge in DATEV

Beispiel für einen Export mit Länge 4

Beispiel für einen Export mit Länge 5
Personenkonten
- Direct bookings (Direktbuchungen): Exportiert Buchungen, die direkt auf Forderungs-/Verbindlichkeitskonten gebucht wurden, anstatt auf das Personenkonto.
- Receivable format (Debitorenformat): Bereich, ab dem die Generierung der Debitorennummern beginnen soll.
- Payable format (Kreditorenformat): Bereich, ab dem die Generierung der Kreditorennummern beginnen soll.

Beispiel für DATEV-Partnerkennungen für die Bereiche 10.000 und 70.000
- DATEV partner number generation (DATEV-Partnernummerngenerierung): Wählen Sie, ob die Nummer automatisch bei der Buchung des ersten Eintrags (Standard) oder während des ersten Exports generiert werden soll.
Die Generierung setzt die Nummer automatisch auf die niedrigste verfügbare Nummer innerhalb des Bereichs.
Spaltenkonfiguration (Column Configuration)
Das Modul ermöglicht es Ihnen, die Spalten zu bearbeiten, die in den Dateien für Buchungssätze und Stammdaten exportiert werden.
- Liste der Spalten im DATEV-Export für Buchungssätze.
Standardmäßig sind alle von DATEV unterstützten Felder als Kopfzeilen vorhanden. Die Integration weist derzeit den folgenden Feldern Werte zu:
| Spalte | Kopfzeile (DE) | Wertname (UI-Anzeige) | Technischer Wertname | Odoo-Feld & Export-Logik |
|---|---|---|---|---|
| A | Umsatz (ohne Soll/Haben-Kz) | Bruttowert | gross_value | Der Bruttobetrag der Zeile (Gesamtbetrag inkl. Steuer), formatiert als deutsche Dezimalzahl (z. B. "119,00“). |
| B | Soll/Haben-Kennzeichen | Soll/Haben Kennzeichen | soll_haben | Ein Buchstabe, der Soll/Haben angibt: "S“ (Soll) oder "H“ (Haben). |
| C | WKZ Umsatz | Währung | currency | Der dreistellige Währungscode (z. B. "EUR“) aus der Buchungszeile. |
| D | Kurs | Kurs | rate | Der Wechselkurs, formatiert als deutsche Dezimalzahl. Wird nur ausgefüllt, wenn die Währung der Zeile von der Unternehmenswährung abweicht. |
| E | Basis-Umsatz | Basisumsatz | amount_currency | Der in die Basiswährung des Unternehmens umgerechnete Betrag der Zeile. Wird nur bei Fremdwährungszeilen ausgefüllt. |
| F | WKZ Basis-Umsatz | Fremdwährung | foreign_currency | Der Währungscode des Unternehmens (z. B. "EUR“). Wird nur ausgefüllt, wenn die Währung der Zeile nicht die Unternehmenswährung ist. |
| G | Konto | Konto | account | Die Kontonummer der Buchungszeile (z. B. "=4400“). |
| H | Gegenkonto (ohne BU-Schlüssel) | Gegenkonto | counteraccount | Die Gegenkontonummer, d. h. das Hauptausgleichskonto der Buchung (z. B. das Forderungs-/Verbindlichkeitskonto des Partners). |
| I | BU-Schlüssel | Buchungsschlüssel | bookingkey | Der DATEV-Steuerschlüssel (BU-Schlüssel). Dieser wird automatisch anhand der Steuerkonfiguration der Zeile berechnet. |
| J | Belegdatum | Datum (TTMM) | date_ddmm | Das Belegdatum aus der Buchung, formatiert als TTMM (z. B. "2810“). |
| K | Belegfeld 1 | Rechnungsnummer für Auszifferung | reconciled_entry_number | Die Referenz für den Ausgleich/die Abstimmung. Bei Bankbuchungen die abgestimmte Rechnungsnummer. Bei Eingangsrechnungen die Lieferantenreferenz (ref). |
| L | Belegfeld 2 | Datum | date | Das Fälligkeitsdatum (date_maturity) der Zeile. Wird nur ausgefüllt, wenn Konto und Gegenkonto identisch sind. |
| M | Skonto | Skonto | discount_amount_currency | Der Skontobetrag der Zeile (discount_amount_currency), formatiert als deutsche Dezimalzahl. |
| N | Buchungstext | Rechnungszeilenname | account_move_line_name | Die Bezeichnung (Label) der Buchungszeile. Wenn mehrere Zeilen gruppiert sind (z. B. gleiches Produkt und gleiche Steuer), werden ihre Bezeichnungen zusammengefügt. |
| O–S | ... | (leer) | Standardmäßig nicht gesetzt. | |
| T | Beleglink | GUID | datev_guid | Der Beleglink. Dies ist die eindeutige GUID aus dem Feld datev_guid der Rechnung, formatiert als BEDI "...“. |
| U–AJ | ... | (leer) | Standardmäßig nicht gesetzt. | |
| AK | KOST1 - Kostenstelle | KOST1 | datev_analytic_plan_acc_1 | Die Kostenstellennummer, die in den DATEV-Einstellungen auf KOST1 abgebildet ist. |
| AL | KOST2 - Kostenstelle | KOST2 | datev_analytic_plan_acc_2 | Die Kostenstellennummer, die in den DATEV-Einstellungen auf KOST2 abgebildet ist. |
| AM | Kost-Menge | (leer) | Standardmäßig nicht gesetzt. | |
| AN | EU-Mitgliedstaat u. UStID | EU-Mitgliedstaat u. UStID | partner_vat | Die USt-IdNr. des Partners. Wird nur ausgefüllt, wenn sich der Partner in einem EU-Land außerhalb Deutschlands befindet. |
| AO | EU-Steuersatz | EU-Steuersatz | aml_tax_ids | Der Steuersatz (z. B. "19,00“). Wird nur ausgefüllt, wenn sich der Partner in einem EU-Land außerhalb Deutschlands befindet. |
| AP–CR | ... | (leer) | Standardmäßig nicht gesetzt. | |
| DK | Leistungsdatum | Leistungsdatum | service_date | Optional: Standardmäßig nicht implementiert (liefert eine leere Zeichenfolge). |
| DL | Datum Zuord. Steuerperiode | Datum Zuord. Steuerperiode | tax_report_date | Optional: Standardmäßig nicht implementiert (liefert eine leere Zeichenfolge). |
| DM | Fälligkeit | (leer) | Standardmäßig nicht gesetzt. | |
| DN | Generalumkehr | Generalumkehr | general_reversal | Kennzeichen Generalumkehr. "1“, wenn es sich um eine Stornobuchung mit übereinstimmender Summe handelt, andernfalls "0“. |
| DO–DR | ... | (leer) | Standardmäßig nicht gesetzt. | |
| DS | EU-Mitgliedstaat u. UStID | EU-Mitgliedstaat u. UStID (Unternehmen) | company_vat | Die USt-IdNr. des Unternehmens. Wird nur ausgefüllt, wenn sich der Partner in einem EU-Land außerhalb Deutschlands befindet. |
| DT | U-Steuersatz (Ursprung) | U-Steuersatz (Ursprung) | fiscal_tax | Der ursprüngliche Steuersatz (als deutsche Dezimalzahl), bevor eine Steuerpositions-Zuordnung angewendet wurde. |
| DU | Abw. Skontokonto | (leer) | Standardmäßig nicht gesetzt. |
Zusätzliche Felder für Buchungssätze
Dies sind die im Modul verfügbaren Felder, die nicht in der Standard-Export-Einrichtung enthalten sind. Sie können sie zu Ihrer Export-Konfiguration hinzufügen.
| Wertname (UI-Anzeige) | Technischer Wertname | Odoo-Feld & Export-Logik |
|---|---|---|
| Auftragsnummer | order_number | Der Verkaufsauftragsname (invoice_origin), der mit der Zeile verknüpft ist. |
| Buchungssatzreferenz | bookingreference | Der Wert von Belegfeld 1. Bei Eingangsrechnungen ist dies die ref (Lieferantenreferenz). Bei allen anderen der Odoo-Rechnungs-/Buchungsname. |
| Zahlungsreferenz | paymentreference | Das Feld Zahlungsreferenz (payment_reference) aus der Rechnung. |
| Journal ID | journal_id | Die Datenbank-ID des Odoo-Journals (z. B. 7). |
| Journalname | journal_name | Der benutzerseitige Name des Odoo-Journals (z. B. "Customer Invoices“). |
| Kontoname | account_name | Der benutzerseitige Name des Kontos der Zeile (z. B. "Product Sales“). |
| Lieferadresse (Land) | shipping_address_country | Der zweistellige Ländercode der Lieferadresse des Partners. |
| Partnername | partner_name | Der Name des Partners in der Buchungszeile. |
| Rechnungsadresse (Land) | invoice_address_country | Der zweistellige Ländercode der Rechnungsadresse des Partners. |
| Rechnungsname | account_move_name | Der Anzeigename (display_name) der Buchung (z. B. "INV/2024/00001“). |
| Rechnungsnummer | inv_number | Der Rechnungsname (name) der Buchung, ohne Leerzeichen. |
| Kostenstelle 1 (Code) | cost_centre_1 | Veraltet. Liefert eine leere Zeichenfolge. |
| Kostenstelle 2 (Code) | cost_centre_2 | Veraltet. Liefert eine leere Zeichenfolge. |
| Kostenstelle 1 (Name) | cost_centre_1_name | Veraltet. Liefert eine leere Zeichenfolge. |
| Kostenstelle 2 (Name) | cost_centre_2_name | Veraltet. Liefert eine leere Zeichenfolge. |
| Dateiname | filename | Der Dateiname des systemseitig erzeugten PDF-Anhangs der Rechnung (invoice_pdf_report_id). |
| Rechnungsdatum | invoice_date | Das Rechnungsdatum (invoice_date) der Buchung, formatiert als TTMM. |
| Buchungstyp | booking_type | Der Buchungstyp. "AA“ (Anzahlung), "SR“ (Kundenrechnung) oder "SO“ (Sonstiges). |
- Liste der Spalten im DATEV-Export für Stammdaten.
Standardmäßig sind alle von DATEV unterstützten Felder als Kopfzeilen vorhanden. Die Integration weist derzeit den folgenden Feldern Werte zu:
| Spalte | Kopfzeile (DE) | Wertname (UI-Anzeige) | Technischer Wertname | Odoo-Feld & Export-Logik |
|---|---|---|---|---|
| A | Konto | Konto | code | Die DATEV-Kennung des Partners (z. B. 10001 oder 70001) aus l10n_de_datev_identifier_customer oder l10n_de_datev_identifier. |
| B | Name (Adressatentyp Unternehmen) | Name (Firma) | company_name | Der Name des Partners, jedoch nur, wenn der Partner ein Unternehmen ist. |
| C | Unternehmensgegenstand | (leer) | (entfällt) | Standardmäßig nicht gesetzt. |
| D | Name (Adressatentyp natürl. Person) | Name (Person) | person_name | Der Name des Partners, jedoch nur, wenn der Partner eine Einzelperson ist. |
| E | Vorname (Adressatentyp natürl. Person) | Vorname | firstname_person | Der Vorname des Partners (setzt das Format "Vorname Nachname“ voraus). Nur für Einzelpersonen. |
| F | Name (Adressattyp keine Angabe) | (leer) | (entfällt) | Standardmäßig nicht gesetzt. |
| G | Adressatentyp | Adressatentyp | natural | Der Partnertyp: "1“ für Einzelperson (natürliche Person) oder "2“ für Unternehmen. |
| H | Kurzbezeichnung | (leer) | (entfällt) | Standardmäßig nicht gesetzt. |
| I | EU-Land | EU-Land | company_country_code | Der zweistellige Ländercode des Partners. Nur für Unternehmen. |
| J | EU-USt-IdNr. | EU-USt-IdNr. | company_vat | Die USt-IdNr. des Partners ohne Länderpräfix. Nur für Unternehmen. |
| K | Anrede | Anrede | partner_title | Die Anrede des Partners (z. B. "Herr“, „Frau“). |
| L–N | ... | (leer) | (entfällt) | Standardmäßig nicht gesetzt. |
| O | Adressart | Adressart (STR) | hardcoded_str | Ein fest hinterlegter Wert, der immer die Zeichenfolge "STR“ exportiert. |
| P | Straße | Straße | street | Die Straße aus der Adresse des Partners. |
| Q | Postfach | (leer) | (entfällt) | Standardmäßig nicht gesetzt. |
| R | Postleitzahl | PLZ | zip | Die Postleitzahl aus der Adresse des Partners. |
| S | Ort | Ort | city | Der Ort aus der Adresse des Partners. |
| T | Land | Land | country | Der zweistellige Ländercode aus der Adresse des Partners (z. B. "DE“). |
| U–Y | ... | (leer) | (entfällt) | Standardmäßig nicht gesetzt. |
| Z | Kennz. Korrespondenzadresse | Kennz. Korrespondenzadresse | hardcoded_1 | Ein fest hinterlegter Wert, der immer die Zahl "1“ exportiert. |
| AA–IT | ... | (leer) | (entfällt) | Alle weiteren Spalten bis "Letzte Frist“ sind standardmäßig nicht gesetzt. |
Zusätzliche Partner-Stammdatenfelder
Dies sind die im Modul verfügbaren Felder, die nicht in der Standard-Export-Einrichtung enthalten sind. Sie können sie zu Ihrer Export-Konfiguration hinzufügen.
| Wertname (UI-Anzeige) | Technischer Wertname | Odoo-Feld & Export-Logik |
|---|---|---|
| Die E-Mail des Partners (email). | ||
| Nachname | lastname_person | Der Nachname des Partners (setzt das Format "Vorname Nachname“ voraus). Nur für Einzelpersonen. |
| SteuerID | vat | Die USt-IdNr. des Partners (vat). |
| Telefon | phone | Die Telefonnummer des Partners (phone). |
| Website | website | Die Website des Partners (website). |
| IBAN 1...10 | iban_1...iban_10 | Die IBAN (acc_number) aus einem der gespeicherten Bankkonten des Partners (bis zu 10). |
| BIC 1...10 | bank_1...bank_10 | Der BIC/SWIFT-Code (bank_id.bic) aus einem der gespeicherten Bankkonten des Partners (bis zu 10). |
| Lastschrift IBAN 1...10 | dd_iban_1...dd_iban_10 | Die IBAN (partner_bank_id.acc_number) aus einem der aktiven SEPA-Lastschriftmandate des Partners (bis zu 10). |
| Lastschrift ID 1...10 | dd_identifier_1...dd_identifier_10 | Die Mandatsreferenz (name) aus einem aktiven SEPA-Mandat. |
| Lastschrift Startdatum 1...10 | dd_start_date_1...dd_start_date_10 | Das Startdatum (start_date) aus einem aktiven SEPA-Mandat. |
| Lastschrift Enddatum 1...10 | dd_end_date_1...dd_end_date_10 | Das Enddatum (end_date) aus einem aktiven SEPA-Mandat. |
Kostenstelle – Export
In der Exportdatei für Buchungssätze können Sie die Spalten AK (KOST1 – Kostenstelle) und AL (KOST2 – Kostenstelle) verwenden, um Ihren Buchungen Kostenstellen zuzuweisen.
Da DATEV nur die Konfiguration von 2 Kostenstellen erlaubt, ermöglichen wir die Konfiguration der entsprechenden Kostenstellen-Pläne (Analytic Plans) in Odoo.

Konfiguration der Kostenstellen in den DATEV-Export-Einstellungen

Kostenzuweisung auf einer Eingangsrechnung

Code der Kostenstelle im DATEV-Export
Export-Einstellungen
- G/L Export Batch Size (Stapelgröße für den Hauptbuch-Export): Diese Einstellung legt die Anzahl der Hauptbuchbuchungen fest, die während der DATEV-Exporte in einem einzigen Stapel verarbeitet werden, um die Leistung zu optimieren.
Export Encoding (Export-Kodierung): Mit dieser Einstellung können Administratoren die beim Erstellen der DATEV-CSV-Exportdateien verwendete Zeichenkodierung festlegen. Dadurch wird die Kompatibilität mit verschiedenen DATEV-Softwareversionen oder regionalen Anforderungen an die Zeichenverarbeitung sichergestellt. Optionen sind:
- Latin-1: weit verbreitet für den Import von Dateien in DATEV. Stellt die korrekte Formatierung deutscher Sonderzeichen sicher.
- UTF-8: Standard-Odoo-Kodierung für den CSV-Dateiexport.
Automatik deaktivieren (Disable Automation)
Wenn Sie die Steuern einer Buchung, die auf einem Automatik-Konto gebucht wurde, manuell entfernen, tragen wir standardmäßig den Wert 40 in Spalte I (BU-Schlüssel) ein. Dadurch wird verhindert, dass die Steuer aufgrund der Automatik des Kontos in DATEV erneut hinzugefügt wird.


Integrationseinstellungen (nur für die API)
Nachdem die DATEV-Struktur konfiguriert ist, können Sie die Integration konfigurieren, indem Sie zu Integration Hub > DATEV Integration > Integration Settings gehen.


Verbindungseinstellungen (Connection Settings)
- Stellen Sie sicher, dass Ihre Berater- und Mandantennummer korrekt sind. Falls nicht, können Sie auf Einstellungen im Unternehmensbereich klicken, um sie anzupassen.

Export-Einstellungen
- Export Frequency (Exporthäufigkeit): Wählen Sie, wie häufig die automatisierte Aktion ausgeführt wird, die Ihre Buchungssätze und Stammdaten sendet.
- Journals to Export (Zu exportierende Journale): Wählen Sie, welche Journale nach DATEV exportiert werden sollen.
Datenauswahl für den Export: In den Integrationseinstellungen (Integration Hub → Integrations → DATEV → Einstellungen Exportieren ) können Sie präzise auswählen, welche Datentypen in den API-Export einbezogen werden:
- Export Master Data (Partner/Stammdaten)
- Export Accounting Entries (Buchungssätze)
- Export PDF Documents (Rechnungs-/Beleg-PDFs)
Hinweis: Wenn kein Datentyp ausgewählt ist, wird die Integration automatisch deaktiviert.
Konfigurierbares Export-Startdatum:
- Unter Integration Hub → Integrations → DATEV → Einstellungen Exportieren wurde ein neues Feld Export Start Date hinzugefügt.
- Dieses Datum definiert den frühesten Zeitpunkt, ab dem automatisierte (geplante) Exporte Daten sammeln.
- Unter Integration Hub → Integrations → DATEV → Einstellungen Exportieren wurde ein neues Feld Export Start Date hinzugefügt.
- Die Option PDF-Export (optional/erforderlich) bestimmt, ob der gesamte Export-Job fehlschlägt, wenn ein erforderliches PDF fehlt.
- Ein PDF Size Limit (PDF-Größenlimit) kann gesetzt werden, um das Hochladen übermäßig großer Dateien zu verhindern.
- Wenn Export PDF Documents aktiviert ist, können Sie nun Category (Kategorie), Folder (Ordner) und Register konfigurieren, die beim Hochladen von PDFs zu DATEV Unternehmen online (Belegverwaltung) über die API verwendet werden. Diese Einstellungen finden Sie unter Integration Hub → Integrations → DATEV → Einstellungen Exportieren.

Bei DATEV authentifizieren (nur für die API)
Als letzten Schritt, um die Integration lauffähig zu machen, müssen Sie sich bei DATEV authentifizieren.
Access-Token abrufen
- Gehen Sie zu Integration Hub > DATEV > Integration Settings.
- Klicken Sie auf Get Access Token.

- Melden Sie sich mit Ihrer bevorzugten Anmeldemethode bei DATEV an.

- Nach erfolgreicher Anmeldung wird der Token-Status grün angezeigt.

- Sie können den Zugriff auf DATEV jederzeit widerrufen, indem Sie auf "Revoke Tokens“ klicken.
Die Integration aktivieren
- Sobald Sie mit DATEV verbunden sind, klicken Sie einfach auf Enable Integration. Der Integrationsstatus wechselt von Inactive zu Active.
- Sie können die Integration jederzeit ausschalten, entweder durch Klicken auf Disable Integration oder auf Revoke Tokens.
Nutzung
DATEV API Export
Geplante Exporte
Wie zuvor erwähnt, sendet die Integration Ihre Finanzdaten und zugehörigen PDFs automatisch mit der konfigurierten Häufigkeit und für die konfigurierten Journale.
Bei Bedarf können Sie den API-Export auch manuell auslösen:
- Gehen Sie zu Integration Hub > DATEV und klicken Sie auf Export via API (Sie müssen authentifiziert sein, um die Aktion zu sehen).

- Wählen Sie die Journale und den Zeitraum, die Sie nach DATEV exportieren möchten.

- Klicken Sie auf Export.

- Nach einigen Sekunden (oder Minuten bei großen Datenmengen) können Sie in den Logs den Status Ihres Exports einsehen:

Fehlerbehandlung
- E-Mail-Benachrichtigung bei kritischen Fehlern
Das DATEV-Integrationsmodul enthält eine robuste Fehlerbehandlung, um sicherzustellen, dass Sie umgehend über kritische Probleme informiert werden. Dies erfolgt in erster Linie über automatisierte E-Mail-Benachrichtigungen.
Konfiguration für den Erhalt von Benachrichtigungen
- Benutzerrechte
Um sicherzustellen, dass ein Benutzer diese Benachrichtigungen über kritische Fehler erhält:
Navigieren Sie zu Einstellungen > Benutzer & Unternehmen > Benutzer.
Wählen Sie den gewünschten Benutzer aus.
Stellen Sie im Reiter "Zugriffsrechte“ sicher, dass er Teil der Gruppe Administration / Einstellungen ist.
Vergewissern Sie sich, dass für den Benutzer eine gültige E-Mail-Adresse konfiguriert ist.
Geplante Aktion für den E-Mail-Versand
Der E-Mail-Versand wird durch eine geplante Aktion namens "DATEV: Send Grouped Critical Error Emails“ gesteuert. Um diese geplante Aktion zu finden und zu verwalten, navigieren Sie zu Ihrer DATEV-Integration > Scheduled Actions:


- Ausfallsicherung bei Token-Fehler
Die Verbindung zur DATEV-API basiert auf OAuth-2.0-Tokens, die ablaufen und regelmäßig erneuert werden müssen. Das System übernimmt dies automatisch. Sollte der Token-Erneuerungsprozess jedoch aus irgendeinem Grund fehlschlagen (z. B. durch geänderte Anmeldedaten, ein Problem auf DATEV-Seite oder einen widerrufenen Zugriff), werden automatisch die folgenden Aktionen ausgelöst:
- E-Mail-Benachrichtigung: Eine E-Mail wird an die Systemadministratoren gesendet, um sie über den Token-Fehler zu informieren.
- Token-Widerruf: Aus Sicherheitsgründen versucht das Modul, das ungültige Token beim DATEV-Dienst zu widerrufen.
- Deaktivierung der Integration: Die DATEV-Integration in Odoo wird automatisch in den Status "Inactive“ versetzt. Dies verhindert weitere fehlgeschlagene Versuche und macht deutlich, dass ein Eingreifen des Benutzers erforderlich ist.
- Deaktivierung der geplanten Exporte: Alle geplanten Exporte werden deaktiviert. Dies verhindert, dass weitere Exportversuche fehlschlagen, wenn derselbe Token-Fehler auftritt.
Um dies zu beheben, müssen Sie zu den Integrationseinstellungen zurückkehren (Integration Hub > Integrations > Ihre DATEV-Integration) und erneut auf Get Access Token klicken, um die Verbindung neu zu autorisieren und die Integration zu aktivieren. Anschließend müssen Sie auf "Re-activate Scheduled Exports“ klicken, um die automatisierten Exporte der Integration wieder zu aktivieren.
Fehlerbehebung
Die folgende Tabelle listet häufige Fehlermeldungen auf, die Ihnen in den Logs begegnen können, zusammen mit ihren Ursachen und Lösungen.
Wo findet man die Logs?
- Navigieren Sie zu Integration Hub > Logs.
- Filtern Sie nach Integration: DATEV.
- Suchen Sie nach Logs der Stufe "Error“. Der Reiter Details enthält oft die rote HTTP-Antwort von DATEV, die für die Fehlersuche entscheidend ist.
| Fehlermeldung | Wahrscheinliche Ursache | Empfohlene Maßnahme |
|---|---|---|
| 403 Forbidden | 1. Fehlende Berechtigungen: Der DATEV-Benutzer oder API-Client hat keine Rechte für die betreffende Mandantennummer (Mandant). 2. Dienst nicht bestellt: Der Datendienst (z. B. Buchungsdatenservice oder Rechnungsdatenservice 1.0) wurde für diesen Mandanten nicht bestellt. | 1. Rechte prüfen: Gehen Sie zur DATEV Rechteverwaltung online und stellen Sie sicher, dass der Benutzer/Mandant Rechte für Buchungsdatenservice oder Rechnungsdatenservice 1.0 für die betreffende Berater-/Mandantennummer hat. 2. Bestellung prüfen: Überprüfen Sie in MyDATEV Mandantenregistrierung, ob der Dienst aktiv ist. 3. Neu authentifizieren: Tokens widerrufen und erneut auf "Get Access Token“ klicken. |
| 401 Unauthorized | Das Access-Token oder Refresh-Token ist ungültig, abgelaufen oder wurde auf DATEV-Seite widerrufen. | Gehen Sie zu den DATEV Integration-Einstellungen in Odoo und klicken Sie auf Get Access Token, um sich erneut zu authentifizieren. |
| 404 Not Found | Die in Odoo konfigurierte Beraternummer oder Mandantennummer wurde in DATEV nicht gefunden. | Überprüfen Sie die Beraternummer und Mandantennummer in den Unternehmenseinstellungen von Odoo. Stellen Sie sicher, dass sie exakt mit den in DATEV hinterlegten übereinstimmen und über die korrekten Abonnements verfügen. |
| The refresh token has reached its expiration date | Die Verbindung wurde über 2 Jahre lang nicht genutzt oder erneuert, wodurch das Langzeit-Token abgelaufen ist. | Sie müssen sich manuell neu authentifizieren. Gehen Sie zu Integration Hub > Integrations, wählen Sie DATEV und klicken Sie auf Get Access Token. |
| Time limit reached; stopping the export process | Die zu exportierende Datenmenge ist zu groß, um innerhalb des Serverzeitlimits verarbeitet zu werden. | Verringern Sie die Batch Size in den DATEV-Integrationseinstellungen (Standard ist üblicherweise 150 oder 500). Dadurch wird der Job in kleinere, schnellere Teile aufgeteilt. |
| Error uploading file to DATEV | Ein allgemeiner API-Fehler ist während der Dateiübertragung aufgetreten (z. B. ein Validierungsfehler auf DATEV-Seite). | Überprüfen Sie die Logs der DATEV Export Jobs. Der Abschnitt "Details“ enthält oft eine JSON-Antwort von DATEV, die genau erklärt, warum die Datei abgelehnt wurde (z. B. "Invalid date format“). |
DATEV CSV-Export
Unser Modul ermöglicht Ihnen außerdem den manuellen Export von DATEV-Daten, entweder als:
- CSV
- CSV + PDFs:
Das System lädt ein .zip-Archiv herunter, das alles Notwendige für DATEV enthält:
EXTF_customer_accounts.csv: Die standardmäßige DATEV-Stammdatendatei.
EXTF_accounting_entries.csv: Die standardmäßige DATEV-Buchungsexportdatei. Diese Datei enthält in der Spalte "Beleglink“ eine eindeutige Kennung, die die Buchung mit ihrem Beleg verbindet.
documents.xml: Eine Strukturdatei, die von DATEV benötigt wird, um die Verknüpfungen zwischen Daten und Dateien zu interpretieren.
Documents: Die eigentlichen PDF-Dateien (z. B. INV-2023-001.pdf) sind direkt im Archiv enthalten.
XML.
Export einzelner Datensätze
Sie können die DATEV-Datei für einen bestimmten Eintrag exportieren. Gehen Sie dazu wie folgt vor:
- Gehen Sie zu Buchhaltung, öffnen Sie den Eintrag, den Sie exportieren möchten, und klicken Sie auf Actions.

- Klicken Sie auf die Schaltfläche DATEV-Datei herunterladen und wählen Sie im Pop-up das gewünschte Format.

- Klicken Sie auf Download.
Hauptbuch-Export (General Ledger Export)
Sie können auch alle Ihre Einträge für bestimmte Journale und Zeiträume exportieren. Gehen Sie dazu wie folgt vor:
- Gehen Sie zu Buchhaltung > Berichtswesen > Hauptbuch.
- Verwenden Sie die Filter, um Ihre gewünschten Journale und Zeiträume auszuwählen. Standardmäßig werden bereits exportierte Einträge ausgeschlossen. Wenn Sie diese einbeziehen möchten, klicken Sie einfach auf die Filteroption und wählen Sie Include Exported Entries.

- Sobald Sie mit dem Filtern fertig sind, klicken Sie auf den Abwärtspfeil bzw. das Zahnradsymbol oben links und wählen Sie Download DATEV File.

- Wählen Sie im Assistenten das gewünschte Format.
- Der Assistent zeigt die Gesamtzahl der Buchungen an und ermöglicht es Ihnen, den Bereich (z. B. 1 bis 1000) für den aktuellen Download-Stapel festzulegen.
- Im Assistenten steht eine Schaltfläche "Next Batch“ zur Verfügung, um nach dem Herunterladen des aktuellen Stapels bequem zum nächsten Stapelbereich zu wechseln.

Filtering Options (DATEV Export Fields)
Filteroptionen (DATEV-Exportfelder)
Exportfelder für Rechnungen & Buchungssätze:
Export Date (datev_export_date): Zeigt an, wann der Datensatz zuletzt im CSV-Format exportiert wurde.
- ✅ Verwenden Sie dies, um Datensätze zu filtern, die noch nicht exportiert wurden.
- 📅 Hilft, zu Prüfzwecken nachzuvollziehen, wann Exporte stattgefunden haben.
API Export Status (exported_to_datev_api): Zeigt eine erfolgreiche Übertragung über die DATEV-API an.
- ✅ Wird nach erfolgreichem API-Upload gesetzt.
- 🔄 Verhindert doppelte API-Übertragungen.
PDF Export Status (pdf_exported_to_datev): Verfolgt, ob Rechnungs-PDFs hochgeladen wurden.
- 📄 Nur für Dokumente mit Anhängen.
- ✅ Wird nach erfolgreichem PDF-Upload zu DATEV gesetzt.
Transfer Attempted (transfer_attempted): Zeigt an, ob ein Export versucht wurde (auch wenn er fehlgeschlagen ist).
- ⚠️ Nützlich für die Fehlersuche bei fehlgeschlagenen Exporten.
- 🔍 Hilft, Datensätze zu identifizieren, die Aufmerksamkeit erfordern.
XML Export Status (datev_xml_exported): Markiert abgeschlossene XML-Exporte.
XML Export Date (datev_xml_export_date): Zeitstempel der XML-Generierung.

Exportfelder für Kontakte (Partner):
- Export Status (exported_to_datev): Zeigt an, ob die Kontakt-Stammdaten exportiert wurden.
- Export Date (exported_to_datev_date): Zeigt an, wann der Kontakt exportiert wurde.
- API Export Status (exported_to_datev_api): Zeigt den Abschluss der API-Übertragung an.
DATEV-Import
Das Modul bietet Ihnen außerdem die Möglichkeit, Daten zu importieren, die zuvor aus DATEV exportiert wurden. Dies ist beispielsweise nützlich, wenn Sie Ihr Odoo erstmalig einrichten, um alle Ihre bestehenden Partner und deren jeweilige DATEV-Partner-ID zu registrieren.
Um eine DATEV-Datei in Odoo zu importieren:
- Gehen Sie zu Buchhaltung > Buchhaltung und klicken Sie auf DATEV CSV importieren.

- Füllen Sie im Pop-up die folgenden Informationen aus:

- Counter-Account: Gegenkonto.
- DATEV Import journal: Falls Sie noch keines erstellt haben, müssen Sie eines erstellen und die Option "Is DATEV Import Journal“ auswählen.


- Wählen Sie das Jahr des Imports.
- Laden Sie Ihre Datei hoch und klicken Sie auf Importieren von Dateien.





