> ## Documentation Index
> Fetch the complete documentation index at: https://docs.business-os.de/llms.txt
> Use this file to discover all available pages before exploring further.

# DATEV Make App

> DATEV Unternehmen Online und Rechnungswesen direkt in Make.com — Belege, Buchungen und Auswertungen ohne Code

# DATEV Make App

Die **Business OS DATEV** Custom App für [Make.com](https://www.make.com) bringt DATEV Unternehmen Online und DATEV Rechnungswesen als drag-and-drop Module in deine Szenarien — für Beleg-Übertragung, Buchungsvorschläge, Kassenbuch-Einträge, Buchungen, Stammdaten und Auswertungen.

## Installation

1. Öffne dein Make.com-Team und gehe zu **Apps** → **Add app**
2. Suche nach **Business OS DATEV** oder nutze den direkten Link: [DATEV App im Make Marketplace](https://www.make.com/en/hq/apps) {/* TODO: konkrete Marketplace-URL einsetzen */}
3. Klicke **Install** — die App ist sofort in deinem Szenario-Builder verfügbar

## Connection einrichten

Beim ersten Modul-Drop wirst du nach einer Connection gefragt:

| Feld                | Wert                                                                                                 |
| ------------------- | ---------------------------------------------------------------------------------------------------- |
| **Connection Name** | Frei wählbar (z.B. "Business OS — Steuerkanzlei XY")                                                 |
| **API Key**         | Dein Org- oder Agency-API-Key aus dem [Dashboard](https://app.business-os.de) (Format `bo_xxxxx...`) |

<Note>
  Anders als bei der Banking-App gibt es bei DATEV **keinen API-Typ-Selector** — DATEV hat nur eine API, alle Module nutzen sie.
</Note>

## Tool-Auswahl: 3 DATEV-Welten

DATEV Online unterstützt drei verschiedene Anwendungen, jede mit eigenem OAuth-Flow und eigenem Berechtigungsmodell. Du wählst pro Connection im **Dashboard**, welche DATEV-App du verbinden möchtest:

| DATEV-Tool                         | Wofür                                                                                      | Module-Familie          |
| ---------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------- |
| **DATEV Unternehmen Online (DUO)** | Beleg-Upload, Buchungsvorschläge, Kassenbücher — für Mandanten/Buchhalter im Unternehmen   | DATEV DUO Module        |
| **DATEV Rechnungswesen — Write**   | Buchungen erstellen, Kontakte/Personenkonten anlegen, Belege schreiben — für Steuerberater | DATEV ReWe Write Module |
| **DATEV Rechnungswesen — Read**    | Stammdaten lesen, Summen-und-Salden ziehen, Buchungsdaten auswerten — für Reporting/BI     | DATEV ReWe Read Module  |

Vor dem ersten Make-Aufruf musst du die jeweilige Connection im [Business OS Dashboard](https://app.business-os.de) per OAuth einrichten — DATEV leitet dich durch den Berater-Login.

## Module — DATEV Unternehmen Online (DUO)

| Modul                     | Beschreibung                                                       | Endpoint                                 |
| ------------------------- | ------------------------------------------------------------------ | ---------------------------------------- |
| **Verbindungen**          | Listet alle DUO-Connections                                        | `GET /v2/datev-duo/connections`          |
| **Belegtypen**            | Liste der verfügbaren Belegtypen (Eingangs-/Ausgangsrechnung, ...) | `GET /v2/datev-duo/belegtypen`           |
| **Kassenbücher**          | Liste der Kassenbücher                                             | `GET /v2/datev-duo/kassenbuecher`        |
| **Rechnungsordner**       | Liste der Rechnungsordner (gefiltert nach Typ)                     | `GET /v2/datev-duo/rechnungsordner`      |
| **Beleg bereitstellen**   | Lädt einen Beleg (PDF, JPG) in einen Rechnungsordner               | `POST /v2/datev-duo/beleg-bereitstellen` |
| **Buchungsvorschlag**     | Erstellt einen Buchungsvorschlag mit Beleg-Bezug                   | `POST /v2/datev-duo/buchungsvorschlag`   |
| **Kassenbuch (einfach)**  | Erstellt einen Kassenbucheintrag (vereinfacht)                     | `POST /v2/datev-duo/kassenbuch-einfach`  |
| **Kassenbuch (advanced)** | Erstellt einen Kassenbucheintrag mit allen Feldern                 | `POST /v2/datev-duo/kassenbuch-advanced` |

## Module — DATEV Rechnungswesen — Write

| Modul                   | Beschreibung                                  | Endpoint                                  |
| ----------------------- | --------------------------------------------- | ----------------------------------------- |
| **Verbindungen**        | Listet alle ReWe-Write-Connections            | `GET /v2/datev-rewe/connections`          |
| **Belegtypen**          | Liste der ReWe-Belegtypen                     | `GET /v2/datev-rewe/belegtypen`           |
| **Steuersätze**         | Liste der verfügbaren Steuersätze pro Mandant | `GET /v2/datev-rewe/steuersaetze`         |
| **Beleg bereitstellen** | Lädt einen Beleg in DATEV ReWe                | `POST /v2/datev-rewe/beleg-bereitstellen` |
| **Personenkonto**       | Legt Debitor/Kreditor-Personenkonto an        | `POST /v2/datev-rewe/personenkonto`       |
| **Buchung**             | Erstellt eine Buchung im Rechnungswesen       | `POST /v2/datev-rewe/buchung`             |

## Module — DATEV Rechnungswesen — Read

| Modul                      | Beschreibung                                    | Endpoint                                       |
| -------------------------- | ----------------------------------------------- | ---------------------------------------------- |
| **Verbindungen**           | Listet alle ReWe-Read-Connections               | `GET /v2/datev-rewe-read/connections`          |
| **Geschäftsjahre**         | Listet alle Geschäftsjahre des Mandanten        | `GET /v2/datev-rewe-read/geschaeftsjahre`      |
| **Geschäftsjahr (Detail)** | Details zu einem einzelnen Geschäftsjahr        | `GET /v2/datev-rewe-read/geschaeftsjahre/{id}` |
| **Kontenplan**             | Sach- und Personenkonten für ein Geschäftsjahr  | `GET /v2/datev-rewe-read/kontenplan`           |
| **Summen und Salden**      | SuSa-Auswertung                                 | `GET /v2/datev-rewe-read/susa`                 |
| **Buchungsdaten**          | Buchungen abrufen (asynchroner Polling-Pattern) | `GET /v2/datev-rewe-read/buchungsdaten`        |
| **Zahlungsbedingungen**    | Zahlungsbedingungen des Mandanten               | `GET /v2/datev-rewe-read/zahlungsbedingungen`  |

## Multi-Mandanten-Berater (Steuerkanzleien)

Wenn eine Connection mehrere Mandanten umfasst (typischer Steuerberater-Account), kannst du auf den ReWe-Read-Modulen den optionalen Parameter **Mandant (companyId)** setzen — Format `<Beraternummer>-<Mandantennummer>`, z.B. `386587-29183`.

<Note>
  **Wichtig:** Ohne Mandant-Angabe nutzt DATEV den beim OAuth gewählten Default-Mandanten. Wenn dieser keine Export-Subscription hat, kommt **403** zurück. Setze in dem Fall den `companyId`-Parameter explizit auf einen abonnierten Mandanten.
</Note>

## Agency-Keys

Agency-API-Keys arbeiten über mehrere Organisationen. In den DATEV-Modulen findest du den optionalen Parameter **Organisation (Agency-Key only)** — UUID der Ziel-Organisation:

* **Bei Org-Keys:** Parameter leer lassen — Org steckt im Key
* **Bei Agency-Keys MIT `connection_id`:** Parameter optional — Backend resolved die Org aus der Connection
* **Bei Agency-Keys OHNE `connection_id`** (z.B. List-Endpunkte): Parameter optional, aber empfohlen zum Filtern
* **Bei Agency-Keys auf credit-pflichtige Endpunkte ohne `connection_id`:** Parameter **erforderlich** — sonst `400`

## Beispiel-Szenario: Eingangsrechnung → DATEV DUO

**Trigger:** Webhook aus deinem ERP, wenn eine Eingangsrechnung den Status "geprüft" erreicht

```
[ERP-Webhook] → [Belegtypen]
                  Filter: typ = "Eingangsrechnung"
                ↓
                [Rechnungsordner]
                  Filter: typ = "Eingangsrechnung"
                ↓
                [Beleg bereitstellen]
                  belegtyp:        {{1.id}}
                  rechnungsordner: {{2.id}}
                  datei:           {{webhook.pdf}}
                ↓
                [Buchungsvorschlag]
                  belegBereitstellungsId: {{3.id}}
                  buchungstext:            {{webhook.subject}}
                  ...
```

## Beispiel-Szenario: Monatliche BWA-Auswertung

**Trigger:** Make-Scheduler am 5. jeden Monats

```
[Scheduler] → [Verbindungen ReWe-Read]
              ↓ Iterator
              [Geschäftsjahre]
                Filter: aktuelles Jahr
              ↓
              [Summen und Salden]
                geschaeftsjahrStartDatum: {{2.startDatum}}
              ↓
              [Aggregator / Google Sheet / E-Mail an Geschäftsführer]
```

## Credit-Verbrauch

Pro Modul-Aufruf werden Credits abgebucht:

| Aktion                                                 | Credits |
| ------------------------------------------------------ | ------- |
| Listings (Verbindungen, Belegtypen, Kassenbücher, ...) | 0       |
| Get-Operationen                                        | 0       |
| Beleg bereitstellen (DUO + ReWe)                       | 1       |
| Buchungsvorschlag (DUO)                                | 1       |
| Kassenbuch-Eintrag (DUO)                               | 1       |
| Personenkonto (ReWe)                                   | 1       |
| Buchung (ReWe)                                         | 1       |
| ReWe-Read Operationen                                  | 1       |

Der `business-os.neuesGuthaben` im Response zeigt das verbleibende Guthaben.

## Troubleshooting

**"RVO-Recht fehlt: Stammdaten" / "Auswertungen Export" (403)** — Der Steuerberater muss in DATEV RVO für deinen User auf dem Mandanten die entsprechenden Rechte-Bündel freischalten.

**"datev\_export\_service\_missing" (402)** — Der Mandant hat keine DATEV-Rechnungswesen-Export-Subscription. Bei Multi-Mandanten-Connections per `companyId`-Parameter auf einen abonnierten Mandanten umschalten.

**"datev\_token\_expired" (401)** — OAuth-Token ist abgelaufen. Im [Dashboard](https://app.business-os.de) auf die DATEV-Card → **Erneut verbinden** klicken.

**Buchungsdaten bleibt "PENDING" (504)** — Asynchroner Job läuft noch. Make wiederholt den Call automatisch nach 30 Sekunden — pro Iterator-Run werden bis zu 3 Polls gemacht.

## Feedback & Wünsche

Issues und Module-Wünsche zur DATEV-Make-App: [impressum@business-os.de](mailto:impressum@business-os.de) — wir leiten sie weiter.
