> ## 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.

# Verbindungen

> Gibt alle Verbindungen der Organisation für **DATEV Unternehmen Online** zurück.

**Kosten:** 0 Credits



## OpenAPI

````yaml GET /v2/datev-duo/connections
openapi: 3.1.0
info:
  title: Business OS API
  description: >-
    API für Business OS – Zugang zu DATEV und Banking Enterprise-Schnittstellen.
    Alle Endpoints erfordern einen API Key im `x-api-key` Header. Credits werden
    pro API-Call abgezogen.
  version: 2.0.0
  contact:
    name: Business OS Support
    email: impressum@business-os.de
    url: https://business-os.de/kontakt
servers:
  - url: https://api.business-os.de
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: DATEV Allgemein
    description: >-
      Modulübergreifende DATEV-Endpunkte (z. B. Abo-/Service-Diagnose für
      Mandanten)
  - name: DATEV DUO
    description: DATEV Unternehmen Online — Kassenbuch, Belegbilder und Buchungsvorschläge
  - name: DATEV ReWe - Write
    description: 'DATEV Rechnungswesen — Write: Buchungen, Kontakte, Belegtypen, Steuersätze'
  - name: DATEV ReWe - Read
    description: >-
      DATEV Rechnungswesen — Read (Export): Geschäftsjahre und weitere
      Lesemodule
  - name: Banking AIS
    description: >-
      Account Information Services — Verbindungen, Kontostände und Transaktionen
      verwalten
  - name: Banking PIS
    description: Payment Initiation Services — Zahlungen ausführen und Status abrufen
  - name: Banking Webhooks
    description: Webhook-Konfiguration für Echtzeit-Benachrichtigungen
paths:
  /v2/datev-duo/connections:
    get:
      tags:
        - DATEV DUO
      summary: Verbindungen
      description: >-
        Gibt alle Verbindungen der Organisation für **DATEV Unternehmen Online**
        zurück.


        **Kosten:** 0 Credits
      parameters: []
      responses:
        '200':
          description: Liste der Verbindungen
          content:
            application/json:
              schema:
                type: object
                properties:
                  connections:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: UUID der Verbindung
                          example: abbc18fd-ba5e-4dfd-afc4-9dec0c0ad145
                        organization_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            Organisations-ID des Mandanten. **Nur bei
                            Agency-Scope** gesetzt (Aufruf mit
                            `x-agency-id`-Header oder Agency-API-Key) — dann
                            sehen Agency-Mitglieder, zu welcher Mandanten-Org
                            die Connection gehört. Bei normalen Org-API-Calls
                            weggelassen.
                          example: 01941b8a-c428-7e9a-9c1c-2a8c5a8c9e10
                        bezeichnung:
                          type: string
                          nullable: true
                          description: Optionale Bezeichnung der Verbindung
                          example: Mandant Müller GmbH
                        status:
                          type: string
                          enum:
                            - connected
                            - pending
                          description: >-
                            `connected` wenn Verbindung aktiv, `pending` wenn
                            OAuth noch nicht abgeschlossen
                        verbunden_seit:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Zeitstempel der letzten erfolgreichen Verbindung
                            (ISO 8601). `null` bei `pending`.
                          example: '2026-04-05T21:47:29Z'
                        erstellt_am:
                          type: string
                          format: date-time
                          nullable: true
                          description: Zeitstempel der Erstellung (ISO 8601)
                          example: '2026-03-27T09:31:04Z'
              example:
                connections:
                  - id: abbc18fd-ba5e-4dfd-afc4-9dec0c0ad145
                    bezeichnung: Mandant Müller GmbH
                    status: connected
                    verbunden_seit: '2026-04-05T21:47:29Z'
                    erstellt_am: '2026-03-27T09:31:04Z'
                  - id: 8e563966-79d1-4dbf-9d7f-f23e43351bdd
                    bezeichnung: null
                    status: pending
                    verbunden_seit: null
                    erstellt_am: '2026-04-01T10:00:00Z'
        '401':
          $ref: '#/components/responses/DatevUnauthorized'
        '500':
          $ref: '#/components/responses/DatevInternal500'
components:
  responses:
    DatevUnauthorized:
      description: >-
        API-Key fehlt, ist ungültig, widerrufen oder abgelaufen. Fehlt der
        Header `x-api-key`, enthält die Antwort zusätzlich `message`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DatevError'
          examples:
            ungueltigerKey:
              summary: Ungültiger oder unbekannter Key
              value:
                error: Ungültiger API-Key
            fehlenderHeader:
              summary: Fehlender x-api-key Header
              value:
                error: Fehlende Header
                message: x-api-key Header ist erforderlich.
    DatevInternal500:
      description: >-
        Unerwarteter Serverfehler oder fehlende Serverkonfiguration für den
        DATEV-Dienst.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DatevError'
          example:
            error: API-Dienst nicht konfiguriert.
  schemas:
    DatevError:
      type: object
      description: >-
        JSON-Fehlerantwort. Bei Fehlern der DATEV-Schnittstelle kann zusätzlich
        `details` gesetzt sein. Bei bekannten Fehlerkategorien ist ein stabiler
        `code` gesetzt, anhand dessen Automatisierungen reagieren können.
      required:
        - error
      properties:
        error:
          type: string
          description: Fehlermeldung
        message:
          type: string
          description: >-
            Zusätzliche Erläuterung; wenn der Header `x-api-key` fehlt: Hinweis
            zur erforderlichen Header-Zeile.
        code:
          type: string
          description: >-
            Stabiler, maschinenlesbarer Fehlercode für bekannte
            Fehlerkategorien. Wird nur gesetzt, wenn die Ursache eindeutig
            erkannt wurde.


            - `datev_connection_invalid`: Account-Key ist abgelaufen oder
            widerrufen — Reconnect über das Dashboard nötig. Begleitet von
            `reconnectUrl`.

            - `datev_export_service_missing`: Mandant hat keine relevante
            DATEV-Subscription gebucht (z. B. Belegbilderservice,
            Rechnungsdatenservice, Datenservice Export Rechnungswesen-Familie).
            Begleitet von `activeSubscriptions` mit der Liste der tatsächlich
            aktiven Services.

            - `datev_endpoint_not_authorized`: Subscription am Mandanten ist
            vorhanden und der Token gilt, aber das DATEV-RVO-Schreib-/Leserecht
            für den konkreten Endpoint fehlt für den authentifizierten Nutzer.
            Reconnect hilft hier nicht — der Steuerberater/Mandant-Inhaber muss
            in DATEV RVO das entsprechende Teilrecht freischalten.
          enum:
            - datev_connection_invalid
            - datev_export_service_missing
            - datev_endpoint_not_authorized
        reconnectUrl:
          type: string
          format: uri
          description: >-
            URL zum Business OS Dashboard, über die der Nutzer die
            DATEV-Verbindung erneuern kann. Gesetzt bei `code =
            datev_connection_invalid`.
        activeSubscriptions:
          type: array
          items:
            type: string
          description: >-
            Liste der aktuell aktiven DATEV-Service-Subscriptions des Mandanten
            (z. B. Belegbilderservice, Rechnungsdatenservice 1.0). Gesetzt bei
            `code = datev_export_service_missing`, damit Automationen erkennen,
            welche Services bereits gebucht sind.
        details:
          type: object
          description: >-
            Strukturierte Zusatzinformationen bei Antworten der
            DATEV-Schnittstelle.
          additionalProperties: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Dein Business OS API Key. Erstelle einen unter
        [app.business-os.de](https://app.business-os.de/) → API Keys.

````