Datenbrücke API — Referenz

Version 1.0.0 · lesend · dieselben Werkzeuge wie der KI-Konnektor · Basis https://mcp.datenbruecke.com/api/v1

Schnellstart

  1. In der Datenbrücke unter „KI-Konnektor & API“ einen persönlichen API-Schlüssel erstellen (dbk_…). Er gehört dir und sieht genau die Mandanten, die dir freigegeben sind.
  2. Mandanten holen: GET /api/v1/mandanten mit Authorization: Bearer dbk_….
  3. Damit z. B. die BWA: GET /api/v1/bwa?mandant_id=…&jahr=2024&format=objects.

OAuth-fähige Werkzeuge (claude.ai, ChatGPT) brauchen keinen Schlüssel: Sie melden sich per OAuth 2.1 (Authorization Code + PKCE, Authorization Server https://clerk.datenbruecke.com) an; Scopes openid email profile offline_access user:org:read.

Grundlagen

Antwort: { ok, columns, rows, meta }. Standard format=arrays: rows sind Arrays in der Reihenfolge von columns. format=objects: rows sind Objekte { spalte: wert } — für Power Query, Skripte, Codegen; columns kommt in beiden Formen mit. GET mit Query-Parametern oder POST mit JSON-Body, gleiche Felder.

Paging: top = Seitengröße, offset = Zeilen überspringen (bei allen Listen-Endpunkten). meta.truncated = true heißt: es gibt mehr — nächste Seite mit offset = offset + top. Höchstens 500 Zeilen je Aufruf, je Endpunkt teils weniger (Maximum von top). Beim Durchblättern langer Listen zählt das Rate-Limit: 60 Aufrufe je Person und Minute, 300 je Organisation — bei 429 die Sekunden aus Retry-After warten.

Filter: Feste, benannte Parameter statt Operatoren: <feld>_von/<feld>_bis = Bereich, beide Grenzen inklusive (Datum als YYYY-MM-DD, Kontonummern als Zahl); <feld>_min = Schwelle (≥, Beträge als Absolutwert in EUR); exakte Werte unter dem Feldnamen selbst (kundennummer, lieferantennummer, konto). Kontonummern werden auf 8 Stellen normalisiert: Einzelwert und Untergrenze rechts mit Nullen (1460 → 14600000, 4000 → 40000000), Obergrenze rechts mit Neunen (4999 → 49999999). Unbekannte Parameter ergeben 400.

Daten: Nächtlicher Abzug der DATEV-Buchhaltung; meta.datenstand nennt Jahr und letzten Monat der Quelle. BWA-Zeilen sind kundenindividuell (Nummer und Name vergibt jeder Kunde selbst); mandantenübergreifend vergleichbar ist die Bilanz über ihre Kennzahl-Labels (/bilanz mit monat oder label). Kostenstellen: nur die Struktur, keine Werte — Werte sind geplant.

Zeit: tage_ueberfaellig und ueberfaellig rechnen gegen das Datum zum Abfragezeitpunkt (Serverzeit UTC), nicht gegen den Datenstand — seit dem Nachtlauf bezahlte Posten erscheinen bis zum nächsten Abzug als offen.

Rechte: Jede Antwort ist auf die Mandanten der angemeldeten Person beschränkt (Daten-Sicht der Datenbrücke); Kostenstellen-Einschränkungen sperren die API ganz. Kunden-/Lieferantennamen sind enthalten, sofern die Organisation sie freigibt; Buchungs- und Belegtexte nie. Nichts wird geschrieben.

Dieselbe Antwort in beiden Formaten (GET /api/v1/mandanten, Musterdaten) — links Standard format=arrays, rechts format=objects:

{
  "ok": true,
  "columns": [
    "mandant_id",
    "mandant_name",
    "mandant_nummer",
    "kontenrahmen",
    "kontenlaenge"
  ],
  "rows": [
    [
      "bed9e862-2525-44a2-a12c-b40fbecb63b9",
      "Musterküchen GmbH",
      "55039",
      "4",
      "4"
    ]
  ],
  "meta": {
    "tool": "list_mandanten",
    "rowCount": 1,
    "truncated": false,
    "postfilterEntfernt": 0,
    "demo": true
  }
}
{
  "ok": true,
  "columns": [
    "mandant_id",
    "mandant_name",
    "mandant_nummer",
    "kontenrahmen",
    "kontenlaenge"
  ],
  "rows": [
    {
      "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
      "mandant_name": "Musterküchen GmbH",
      "mandant_nummer": "55039",
      "kontenrahmen": "4",
      "kontenlaenge": "4"
    }
  ],
  "meta": {
    "tool": "list_mandanten",
    "rowCount": 1,
    "truncated": false,
    "postfilterEntfernt": 0,
    "demo": true
  }
}

Beispiel Power Query (Excel / Power BI): statische Basis-URL mit RelativePath und Query als Optionen — so bleibt die Quelle für die geplante Aktualisierung im Power BI Service statisch; dort muss die Anmeldung für https://mcp.datenbruecke.com auf „Anonym“ stehen (der Schlüssel reist im Header). columns als zweites Argument macht die Tabelle robust, wenn Spalten fehlen (z. B. Namen abgeschaltet, andere Variante).

let
  Antwort = Json.Document(Web.Contents("https://mcp.datenbruecke.com",
    [RelativePath = "api/v1/bwa",
     Query = [mandant_id = "<mandant_id>", jahr = "2024", nur_gv = "true", format = "objects"],
     Headers = [Authorization = "Bearer dbk_…"]])),
  Zeilen = Table.FromRecords(Antwort[rows], Antwort[columns], MissingField.UseNull)
in Zeilen

Fehler

Immer JSON { "error": { "code", "message" } }, message auf Deutsch im Klartext. Beispiel (400, /konten ohne Zeilenangabe):

{
  "error": {
    "code": "eingabe",
    "message": "Genau eine Zeilenangabe ist Pflicht: bwa_zeilennummer ODER bwa_zeile (beide aus get_bwa)."
  }
}
codeHTTPBedeutung
auth401Kein oder ungültiges Token bzw. Schlüssel. Header WWW-Authenticate nennt die OAuth-Metadaten.
eingabe400Pflichtfeld fehlt, Typ oder Bereich falsch, Fachregel verletzt (z. B. /konten ohne Zeilenangabe). message sagt, was.
unbekanntes_tool404Endpunkt gibt es nicht.
mandant403Der Mandant ist nicht in deiner Daten-Sicht freigegeben.
kost403Deine Daten-Sicht ist auf Kostenstellen eingeschränkt — die API arbeitet mandantenweit und ist dann gesperrt.
ki_deaktiviert403Die Organisation hat KI-Analytik und Konnektor abgeschaltet — oder noch nicht freigeschaltet (Admin: Einstellungen → KI). Die Meldung nennt den Fall.
namen403Stammlisten (/kunden, /lieferanten) bei abgeschalteten Namen.
org403Keine Organisation im Token (mehrere ohne Auswahl).
rate42960 Aufrufe je Person und Minute, 300 je Organisation. Retry-After in Sekunden.
abfrage / kontext502 / 503Datenquelle oder Authorization Server nicht erreichbar — später erneut versuchen.

Endpunkte

GET /api/v1/mandanten

Mandanten auflisten

Alle Mandanten (Firmen), die der Aufrufer sehen darf — als Einstieg für jeden anderen Endpunkt. Eingeschränkte Nutzer sehen nur ihre freigegebenen Mandanten; ohne Freigabe kommt eine leere Liste.

Parameter (Query bei GET, JSON-Body bei POST)

Keine Parameter.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
mandant_nameTextFirmenname.
mandant_nummerTextDATEV-Mandantennummer.
kontenrahmenTextKontenrahmen als Text: „3“ = SKR 3, „4“ = SKR 4.
kontenlaengeTextLänge der Kontonummern (4–8) als Text.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/mandanten?format=objects"

Als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/mandanten"

GET /api/v1/datenumfang

Datenstand je Mandant

Welche Jahre und Monate je Datenquelle vorliegen. Vier Zeilen je Mandant (bwa, konten, belege, bilanz). letzter_monat < 12 heißt: das jüngste Jahr ist unvollständig; bei bilanz ist letzter_monat leer.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
quelleTextbwa · konten · belege · bilanz.
jahr_vonGanzzahlErstes Jahr mit Daten.
jahr_bisGanzzahlLetztes Jahr mit Daten.
letzter_monatGanzzahl, kann leer seinLetzter gebuchter Monat des jüngsten Jahres.
datenpunkteGanzzahlAnzahl Datensätze der Quelle.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/datenumfang?mandant_id=<mandant_id>&format=objects"

Als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/datenumfang"

GET /api/v1/bwa

BWA (G&V) abrufen

BWA-Zeilen eines Mandanten für ein Jahr, optional für einen Monat. Zeilennummern und -namen sind kundenindividuell (BWA-Editor) — mandantenübergreifend vergleichbar ist nur die Bilanz über ihre Labels. vorjahr=true hängt die Zeilen des Vorjahres an (Spalte jahr unterscheidet). nur_gv=true filtert auf die Erfolgsrechnung. Leeres Ergebnis: Jahr ohne Daten (siehe /datenumfang).

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
jahr PflichtGanzzahl 2000–21002024Geschäftsjahr, z. B. 2025.
monatGanzzahl 1–123Monat 1–12. Ohne Angabe: Jahreswert.
vorjahrtrue / falsetrueAuch das Vorjahr liefern (gleiche Zeilen, jahr - 1).
nur_gvtrue / falsetrueNur Erfolgsrechnung (bereich = Erfolgsrechnung oder Zeile < 2000).

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
jahrGanzzahlGeschäftsjahr.
monatGanzzahlMonat 1–12. Nur wenn: monat gesetzt.
bwa_zeilennummerGanzzahlKundenindividuelle Zeilennummer.
bwa_zeileTextZeilenname.
bereichTextErfolgsrechnung · Bewegungsbilanz · Liquidität.
betragZahlEUR; Erträge positiv, Aufwendungen negativ. Summenzeilen enthalten.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/bwa?mandant_id=<mandant_id>&jahr=2024&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/bwa?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&jahr=2024&monat=3&vorjahr=true&nur_gv=true&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "jahr": 2024,
  "monat": 3,
  "vorjahr": true,
  "nur_gv": true,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/bwa"

GET /api/v1/bilanz

Bilanz-Bestände abrufen

Bilanzpositionen mit Bestand in EUR. Ohne monat und label: Jahresbestand je Zeile. Mit monat oder label: kumulierter Stand zum Monatsende aus der Monatsbilanz, inklusive label (kundenunabhängiges Kennzahl-Label wie LIQUIDE_MITTEL, FORDERUNGEN, EIGENKAPITAL). label ohne monat nimmt den letzten gebuchten Monat.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
jahr PflichtGanzzahl 2000–21002024Geschäftsjahr, z. B. 2025.
monatGanzzahl 1–123Monat 1–12. Ohne Angabe: Jahreswert.
labelLabel GROSS_MIT_UNTERSTRICHLIQUIDE_MITTELNur Zeilen mit diesem Kennzahl-Label, z. B. LIQUIDE_MITTEL.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

Zwei Antwort-Varianten: Jahr (ohne monat und label: Jahresbestand) · Monat (monat oder label gesetzt: Monatsende-Stand mit Kennzahl-Label). Spalten „alle“ kommen in beiden.

VarianteSpalteTypBedeutung
allemandant_idTextMandanten-ID (UUID).
allejahrGanzzahlGeschäftsjahr.
MonatmonatGanzzahlMonatsende-Stand.
MonatlabelText, kann leer seinKennzahl-Label (GROSS_MIT_UNTERSTRICH).
allebwa_zeilennummerGanzzahlZeilennummer.
allebwa_zeileTextZeilenname.
allebereichTextBilanzbereich.
allebestandZahlEUR; Aktiva positiv, Passiva negativ.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/bilanz?mandant_id=<mandant_id>&jahr=2024&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/bilanz?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&jahr=2024&monat=3&label=LIQUIDE_MITTEL&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "jahr": 2024,
  "monat": 3,
  "label": "LIQUIDE_MITTEL",
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/bilanz"

GET /api/v1/konten

Sachkonten unter einer BWA-Zeile

Drill-down unter eine BWA-Zeile: die Sachkonten mit Betrag und Buchungsanzahl, größte zuerst. Auswahl über genau eine Zeilenangabe (bwa_zeilennummer oder bwa_zeile, beide aus /bwa) oder über einen Kontenbereich (konto, konto_von/konto_bis — Kontonummern werden auf 8 Stellen normalisiert, 4000–4999 heißt 40000000–49999999); beides zusammen schneidet. Ohne jede Auswahl 400. Summe der Beträge je Zeile = Betrag der Zeile in /bwa. Achtung bei Kontenbereichen ohne Zeile: Ein Konto steht unter jeder BWA-Zeile, der es zugeordnet ist (auch Summenzeilen wie „Umsatzerlöse“ UND „Gesamtleistung“) — Kontensummen deshalb je konto_intern nur einmal zählen oder eine Zeile mitgeben. Paging über top und offset; meta.truncated sagt, ob es mehr gibt.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
jahr PflichtGanzzahl 2000–21002024Geschäftsjahr, z. B. 2025.
monatGanzzahl 1–123Monat 1–12. Ohne Angabe: Jahreswert.
bwa_zeilennummerGanzzahl 0–999991060BWA-Zeilennummer aus get_bwa.
bwa_zeileText (max. 60 Zeichen)PersonalkostenAlternativ: Name der BWA-Zeile aus get_bwa (exakt).
kontoGanzzahl 1–999999991460Einzelne Kontonummer (4–8 Stellen; kürzere werden rechts mit Nullen auf 8 Stellen aufgefüllt: 1460 → 14600000).
konto_vonGanzzahl 1–999999994000Kontonummernbereich ab (inklusive; rechts mit Nullen aufgefüllt: 4000 → 40000000). Ohne Zeilenangabe erscheint jedes Konto unter JEDER zugeordneten BWA-Zeile (auch Summenzeilen) — für Kontensummen bwa_zeilennummer mitgeben oder je konto_intern nur eine Zeile zählen.
konto_bisGanzzahl 1–999999994999Kontonummernbereich bis (inklusive; rechts mit Neunen aufgefüllt: 4999 → 49999999).
topGanzzahl 1–20050Maximale Zeilenzahl (Standard 100, höchstens 200).
offsetGanzzahl 0–100000050Zeilen überspringen (Paging): offset=0 erste Seite, offset=top zweite Seite usw. Sortierung ist stabil.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
jahrGanzzahlGeschäftsjahr.
monatGanzzahlMonat. Nur wenn: monat gesetzt.
kontoGanzzahlDATEV-Kontonummer, wie im Kontenrahmen des Mandanten (4–8 Stellen, z. B. 4110).
konto_internGanzzahlDieselbe Kontonummer 8-stellig normalisiert (41100000) — Schlüssel für Filter und für /geldkonten.
kontobezeichnungTextKontobezeichnung.
bwa_zeilennummerGanzzahlZeilennummer.
bwa_zeileTextZeilenname.
betragZahlEUR, Vorzeichen wie BWA.
buchungen_anzahlGanzzahlAnzahl Buchungen.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/konten?mandant_id=<mandant_id>&jahr=2024&bwa_zeilennummer=<aus /bwa>&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/konten?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&jahr=2024&monat=3&bwa_zeilennummer=1060&konto_von=4000&konto_bis=4999&top=50&offset=50&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "jahr": 2024,
  "monat": 3,
  "bwa_zeilennummer": 1060,
  "konto_von": 4000,
  "konto_bis": 4999,
  "top": 50,
  "offset": 50,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/konten"

bwa_zeile und konto fehlen hier absichtlich: entweder bwa_zeilennummer oder bwa_zeile, nie beide; konto (Einzelkonto) und konto_von/konto_bis (Bereich) sind Alternativen.

GET /api/v1/forderungen

Offene Forderungen (Debitoren)

Offene Posten der Kunden. Standard: Einzelposten, kleinster Betrag (größte Forderung) zuerst; nur_ueberfaellig=true filtert. aging=true liefert stattdessen die Altersstruktur je Kunde und Fälligkeitsband (andere Spalten, siehe Schema). Filter: kundennummer und betrag_min in beiden Varianten; faelligkeit_von/bis, belegdatum_von/bis, tage_ueberfaellig_min nur bei Einzelposten (bei aging=true 400). Vorzeichen debitorisch: offene Forderung negativ, Summe je Kunde = Saldo. Paging über top und offset; meta.truncated sagt, ob es mehr gibt.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
nur_ueberfaelligtrue / falsetrueNur überfällige Posten (Einzelposten-Variante). Bei aging=true ohne Wirkung — die Altersstruktur enthält immer alle Bänder.
agingtrue / falsetrueAltersstruktur (Fälligkeitsbänder) statt Einzelposten.
kundennummerNummer (nur Ziffern)100020000Nur dieser Kunde (Debitorennummer aus get_kunden) — in beiden Varianten.
faelligkeit_vonDatum YYYY-MM-DD2024-10-01Fälligkeit ab (inklusive, YYYY-MM-DD) — nur Einzelposten.
faelligkeit_bisDatum YYYY-MM-DD2024-12-31Fälligkeit bis (inklusive) — nur Einzelposten.
belegdatum_vonDatum YYYY-MM-DD2024-01-01Belegdatum ab (inklusive) — nur Einzelposten.
belegdatum_bisDatum YYYY-MM-DD2024-12-31Belegdatum bis (inklusive) — nur Einzelposten.
tage_ueberfaellig_minGanzzahl 0–365060Nur Posten mit mindestens so vielen Verzugstagen — nur Einzelposten.
betrag_minGanzzahl 0–10000000001000Nur Zeilen mit Absolutbetrag ≥ diesem Wert (EUR, ganzzahlig).
topGanzzahl 1–50050Maximale Zeilenzahl (Standard 100, höchstens 500).
offsetGanzzahl 0–100000050Zeilen überspringen (Paging): offset=0 erste Seite, offset=top zweite Seite usw. Sortierung ist stabil.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

Zwei Antwort-Varianten: Posten (aging nicht gesetzt (Standard): Einzelposten) · Aging (aging=true: Altersstruktur je Kunde und Fälligkeitsband). Spalten „alle“ kommen in beiden.

VarianteSpalteTypBedeutung
allemandant_idTextMandanten-ID (UUID).
allekundennummerTextDebitorennummer.
allekundeTextKundenname. Nur wenn: Namen von der Organisation freigegeben (Standard).
allebetragZahlEUR, offene Forderung negativ.
PostenfaelligkeitDatum, kann leer seinFälligkeitsdatum.
PostenbelegdatumDatum, kann leer seinBelegdatum.
PostenmahnstufeGanzzahl, kann leer seinMahnstufe.
PostenueberfaelligGanzzahl1 = überfällig.
Postentage_ueberfaelligGanzzahlVerzugstage, gerechnet gegen das Datum zum Abfragezeitpunkt (Serverzeit UTC), nicht gegen den Datenstand.
AgingbucketTextnicht_faellig · 1_30 · 31_60 · 61_90 · ueber_90.
Agingbucket_sortGanzzahlSortierung der Bänder 0–4.
AginganzahlGanzzahlPosten im Band.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/forderungen?mandant_id=<mandant_id>&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/forderungen?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&nur_ueberfaellig=true&kundennummer=100020000&faelligkeit_von=2024-10-01&faelligkeit_bis=2024-12-31&belegdatum_von=2024-01-01&belegdatum_bis=2024-12-31&tage_ueberfaellig_min=60&betrag_min=1000&top=50&offset=50&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "nur_ueberfaellig": true,
  "kundennummer": "100020000",
  "faelligkeit_von": "2024-10-01",
  "faelligkeit_bis": "2024-12-31",
  "belegdatum_von": "2024-01-01",
  "belegdatum_bis": "2024-12-31",
  "tage_ueberfaellig_min": 60,
  "betrag_min": 1000,
  "top": 50,
  "offset": 50,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/forderungen"

aging fehlt hier absichtlich: Datums- und Verzugsfilter gelten nur für Einzelposten; bei aging=true nur nummer und betrag_min setzen.

GET /api/v1/verbindlichkeiten

Offene Verbindlichkeiten (Kreditoren)

Offene Posten gegenüber Lieferanten. Standard: Einzelposten nach Betragshöhe; nur_ueberfaellig=true filtert. aging=true liefert die Altersstruktur je Lieferant und Fälligkeitsband (andere Spalten, siehe Schema). Filter: lieferantennummer und betrag_min in beiden Varianten; faelligkeit_von/bis, belegdatum_von/bis, tage_ueberfaellig_min nur bei Einzelposten (bei aging=true 400). Größe über den Absolutbetrag vergleichen. Paging über top und offset; meta.truncated sagt, ob es mehr gibt.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
nur_ueberfaelligtrue / falsetrueNur überfällige Posten (Einzelposten-Variante). Bei aging=true ohne Wirkung — die Altersstruktur enthält immer alle Bänder.
agingtrue / falsetrueAltersstruktur (Fälligkeitsbänder) statt Einzelposten.
lieferantennummerNummer (nur Ziffern)700010000Nur dieser Lieferant (Kreditorennummer aus get_lieferanten) — in beiden Varianten.
faelligkeit_vonDatum YYYY-MM-DD2024-10-01Fälligkeit ab (inklusive, YYYY-MM-DD) — nur Einzelposten.
faelligkeit_bisDatum YYYY-MM-DD2024-12-31Fälligkeit bis (inklusive) — nur Einzelposten.
belegdatum_vonDatum YYYY-MM-DD2024-01-01Belegdatum ab (inklusive) — nur Einzelposten.
belegdatum_bisDatum YYYY-MM-DD2024-12-31Belegdatum bis (inklusive) — nur Einzelposten.
tage_ueberfaellig_minGanzzahl 0–365060Nur Posten mit mindestens so vielen Verzugstagen — nur Einzelposten.
betrag_minGanzzahl 0–10000000001000Nur Zeilen mit Absolutbetrag ≥ diesem Wert (EUR, ganzzahlig).
topGanzzahl 1–50050Maximale Zeilenzahl (Standard 100, höchstens 500).
offsetGanzzahl 0–100000050Zeilen überspringen (Paging): offset=0 erste Seite, offset=top zweite Seite usw. Sortierung ist stabil.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

Zwei Antwort-Varianten: Posten (aging nicht gesetzt (Standard): Einzelposten) · Aging (aging=true: Altersstruktur je Lieferant und Fälligkeitsband). Spalten „alle“ kommen in beiden.

VarianteSpalteTypBedeutung
allemandant_idTextMandanten-ID (UUID).
allelieferantennummerTextKreditorennummer.
allelieferantTextLieferantenname. Nur wenn: Namen von der Organisation freigegeben (Standard).
allebetragZahlEUR, Vorzeichen wie in der Buchhaltung.
PostenfaelligkeitDatum, kann leer seinFälligkeitsdatum.
PostenbelegdatumDatum, kann leer seinBelegdatum.
PostenzahlwegText, kann leer seinZahlweg.
PostenueberfaelligGanzzahl1 = überfällig.
Postentage_ueberfaelligGanzzahlVerzugstage, gerechnet gegen das Datum zum Abfragezeitpunkt (Serverzeit UTC), nicht gegen den Datenstand.
AgingbucketTextnicht_faellig · 1_30 · 31_60 · 61_90 · ueber_90.
Agingbucket_sortGanzzahlSortierung der Bänder 0–4.
AginganzahlGanzzahlPosten im Band.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/verbindlichkeiten?mandant_id=<mandant_id>&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/verbindlichkeiten?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&nur_ueberfaellig=true&lieferantennummer=700010000&faelligkeit_von=2024-10-01&faelligkeit_bis=2024-12-31&belegdatum_von=2024-01-01&belegdatum_bis=2024-12-31&tage_ueberfaellig_min=60&betrag_min=1000&top=50&offset=50&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "nur_ueberfaellig": true,
  "lieferantennummer": "700010000",
  "faelligkeit_von": "2024-10-01",
  "faelligkeit_bis": "2024-12-31",
  "belegdatum_von": "2024-01-01",
  "belegdatum_bis": "2024-12-31",
  "tage_ueberfaellig_min": 60,
  "betrag_min": 1000,
  "top": 50,
  "offset": 50,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/verbindlichkeiten"

aging fehlt hier absichtlich: Datums- und Verzugsfilter gelten nur für Einzelposten; bei aging=true nur nummer und betrag_min setzen.

GET /api/v1/dso_dpo

DSO / DPO

Forderungs- und Verbindlichkeitslaufzeit, vor-aggregiert: zwei Zeilen (seite debitoren = DSO, kreditoren = DPO) mit offenem Bestand, überfälligem Anteil, Quote, betragsgewichteten Verzugstagen, Volumen der letzten zwölf Monate und Laufzeit in Tagen.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
seiteTextdebitoren · kreditoren.
offener_bestandZahlEUR.
davon_ueberfaelligZahlEUR.
ueberfaellig_quote_prozentZahlProzent.
verzugstage_gewichtetZahlBetragsgewichtete Verzugstage.
volumen_12mZahlVolumen der letzten 12 Monate, EUR.
laufzeit_tageZahl, kann leer seinDSO bzw. DPO in Tagen.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/dso_dpo?mandant_id=<mandant_id>&format=objects"

Als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/dso_dpo"

GET /api/v1/liquiditaet

Fälligkeiten / Liquiditätsvorschau

Kommende Zahlungsströme nach Fälligkeit: Forderungen (AR, Einzahlung positiv), Verbindlichkeiten (AP, Auszahlung negativ) und Bank. Standard aggregiert je Fälligkeitstag und Quelle; aggregiert=false liefert Einzelposten mit Konto (andere Spalten, siehe Schema). von/bis grenzen den Zeitraum ein. Paging über top und offset; meta.truncated sagt, ob es mehr gibt.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
vonDatum YYYY-MM-DD2024-10-01Fälligkeit ab (YYYY-MM-DD).
bisDatum YYYY-MM-DD2024-12-31Fälligkeit bis (YYYY-MM-DD).
quelleAR · AP · BANKARNur diese Quelle.
aggregierttrue / falsefalseJe Fälligkeitstag und Quelle summieren (Standard true).
topGanzzahl 1–50050Maximale Zeilenzahl (Standard 200, höchstens 500).
offsetGanzzahl 0–100000050Zeilen überspringen (Paging): offset=0 erste Seite, offset=top zweite Seite usw. Sortierung ist stabil.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

Zwei Antwort-Varianten: Aggregiert (aggregiert nicht false (Standard): Summe je Fälligkeitstag und Quelle) · Posten (aggregiert=false: Einzelposten mit Konto). Spalten „alle“ kommen in beiden.

VarianteSpalteTypBedeutung
allemandant_idTextMandanten-ID (UUID).
allefaelligkeitDatum, kann leer seinFälligkeitstag.
allequelleTextAR · AP · BANK.
allebetragZahlEUR; Einzahlung positiv, Auszahlung negativ.
AggregiertanzahlGanzzahlPosten am Tag.
alleueberfaelligGanzzahl1 = mindestens ein Posten überfällig.
PostenkontoGanzzahl, kann leer seinKonto des Einzelpostens.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/liquiditaet?mandant_id=<mandant_id>&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/liquiditaet?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&von=2024-10-01&bis=2024-12-31&quelle=AR&aggregiert=false&top=50&offset=50&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "von": "2024-10-01",
  "bis": "2024-12-31",
  "quelle": "AR",
  "aggregiert": false,
  "top": 50,
  "offset": 50,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/liquiditaet"

GET /api/v1/kostenstellen_struktur

Kostenstellen-Struktur

Kostenstellen-Gruppen und ihre Kostenstellen mit Hierarchie (Ebene, Pfad). Liefert bewusst nur die Struktur, keine Werte: kostenstellen-genaue Auswertungen unterliegen einer eigenen Rechteprüfung und sind in der Datenbrücke in Power BI abgebildet; Werte über die API sind geplant. Pseudo-Gruppen „_alle Kostenstellen“ und „_ohne Kostenstellen“ haben keine group_id. Paging über top und offset; meta.truncated sagt, ob es mehr gibt.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
kost_typeKOST1 · KOST2KOST1Nur diese Kostenstellen-Art.
topGanzzahl 1–50050Maximale Zeilenzahl (Standard 500, höchstens 500).
offsetGanzzahl 0–100000050Zeilen überspringen (Paging): offset=0 erste Seite, offset=top zweite Seite usw. Sortierung ist stabil.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
group_idGanzzahl, kann leer seinGruppen-ID.
parent_group_idGanzzahl, kann leer seinÜbergeordnete Gruppe.
group_nameTextGruppenname.
kost_typeTextKostenstellen-Art als Ziffer: „1“ = KOST1, „2“ = KOST2 — Eingabe kost_type=KOST1 liefert Zeilen mit „1“.
ebeneGanzzahlHierarchieebene (0 = Wurzel).
pfadTextPfad der Gruppe.
kostenstelleTextKostenstellennummer.
kostenstelle_nameTextKostenstellenname.
ist_direktGanzzahl1 = direkt zugeordnet.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/kostenstellen_struktur?mandant_id=<mandant_id>&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/kostenstellen_struktur?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&kost_type=KOST1&top=50&offset=50&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "kost_type": "KOST1",
  "top": 50,
  "offset": 50,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/kostenstellen_struktur"

GET /api/v1/kunden_umsatz

Kundenumsatz (Größe der Kunden)

Fakturiertes Brutto-Volumen je Kunde und Jahr (optional Monat), größte zuerst, mit Zahlungseingang und Beleganzahl. Filter: kundennummer (ein Kunde), umsatz_min (Schwelle). Das ist Umsatz, nicht der offene Saldo (dafür /forderungen). Paging über top und offset; meta.truncated sagt, ob es mehr gibt.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
jahr PflichtGanzzahl 2000–21002024Geschäftsjahr, z. B. 2025.
monatGanzzahl 1–123Monat 1–12. Ohne Angabe: Jahreswert.
kundennummerNummer (nur Ziffern)100020000Nur dieser Kunde (Debitorennummer aus get_kunden).
umsatz_minGanzzahl 0–100000000010000Nur Kunden mit Umsatz ≥ diesem Wert (EUR, ganzzahlig).
topGanzzahl 1–20050Maximale Zeilenzahl (Standard 50, höchstens 200).
offsetGanzzahl 0–100000050Zeilen überspringen (Paging): offset=0 erste Seite, offset=top zweite Seite usw. Sortierung ist stabil.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
kundennummerTextDebitorennummer.
kundeTextKundenname. Nur wenn: Namen von der Organisation freigegeben (Standard).
jahrGanzzahlJahr.
monatGanzzahlMonat. Nur wenn: monat gesetzt.
umsatzZahlBrutto-Volumen, EUR, positiv.
zahlungseingangZahlEUR.
anzahl_belegeGanzzahlBelege.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/kunden_umsatz?mandant_id=<mandant_id>&jahr=2024&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/kunden_umsatz?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&jahr=2024&monat=3&kundennummer=100020000&umsatz_min=10000&top=50&offset=50&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "jahr": 2024,
  "monat": 3,
  "kundennummer": "100020000",
  "umsatz_min": 10000,
  "top": 50,
  "offset": 50,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/kunden_umsatz"

GET /api/v1/lieferanten_volumen

Einkaufsvolumen (Größe der Lieferanten)

Einkaufsvolumen je Lieferant und Jahr, größte zuerst, mit Zahlungsausgang und Beleganzahl. Filter: lieferantennummer, volumen_min. Pendant zu /kunden_umsatz. Paging über top und offset; meta.truncated sagt, ob es mehr gibt.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
jahr PflichtGanzzahl 2000–21002024Geschäftsjahr, z. B. 2025.
lieferantennummerNummer (nur Ziffern)700010000Nur dieser Lieferant (Kreditorennummer aus get_lieferanten).
volumen_minGanzzahl 0–100000000010000Nur Lieferanten mit Einkaufsvolumen ≥ diesem Wert (EUR, ganzzahlig).
topGanzzahl 1–20050Maximale Zeilenzahl (Standard 50, höchstens 200).
offsetGanzzahl 0–100000050Zeilen überspringen (Paging): offset=0 erste Seite, offset=top zweite Seite usw. Sortierung ist stabil.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
lieferantennummerTextKreditorennummer.
lieferantTextLieferantenname. Nur wenn: Namen von der Organisation freigegeben (Standard).
jahrGanzzahlJahr.
einkaufsvolumenZahlEUR, positiv.
zahlungsausgangZahlEUR.
anzahl_belegeGanzzahlBelege.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/lieferanten_volumen?mandant_id=<mandant_id>&jahr=2024&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/lieferanten_volumen?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&jahr=2024&lieferantennummer=700010000&volumen_min=10000&top=50&offset=50&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "jahr": 2024,
  "lieferantennummer": "700010000",
  "volumen_min": 10000,
  "top": 50,
  "offset": 50,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/lieferanten_volumen"

GET /api/v1/kunden

Kunden suchen / Stammliste

Kundenstamm (Debitoren) mit Nummer und Name, alphabetisch; suche filtert auf einen Namensteil. 403, wenn die Organisation Namen für den Konnektor abgeschaltet hat. Paging über top und offset; meta.truncated sagt, ob es mehr gibt.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
sucheText (max. 60 Zeichen)MüllerNamensteil (Groß-/Kleinschreibung egal), z. B. „Müller“.
topGanzzahl 1–20050Maximale Zeilenzahl (Standard 100, höchstens 200).
offsetGanzzahl 0–100000050Zeilen überspringen (Paging): offset=0 erste Seite, offset=top zweite Seite usw. Sortierung ist stabil.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
kundennummerTextDebitorennummer.
kundeTextKundenname.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/kunden?mandant_id=<mandant_id>&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/kunden?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&suche=M%C3%BCller&top=50&offset=50&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "suche": "Müller",
  "top": 50,
  "offset": 50,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/kunden"

GET /api/v1/lieferanten

Lieferanten suchen / Stammliste

Lieferantenstamm (Kreditoren) mit Nummer und Name, alphabetisch; suche filtert auf einen Namensteil. 403, wenn die Organisation Namen abgeschaltet hat. Paging über top und offset; meta.truncated sagt, ob es mehr gibt.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
sucheText (max. 60 Zeichen)MüllerNamensteil (Groß-/Kleinschreibung egal).
topGanzzahl 1–20050Maximale Zeilenzahl (Standard 100, höchstens 200).
offsetGanzzahl 0–100000050Zeilen überspringen (Paging): offset=0 erste Seite, offset=top zweite Seite usw. Sortierung ist stabil.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
lieferantennummerTextKreditorennummer.
lieferantTextLieferantenname.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/lieferanten?mandant_id=<mandant_id>&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/lieferanten?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&suche=M%C3%BCller&top=50&offset=50&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "suche": "Müller",
  "top": 50,
  "offset": 50,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/lieferanten"

GET /api/v1/geldkonten

Bank- und Kassenbestände je Monat

Bestand der Geldkonten (Bank, Kasse) zum Monatsende je Konto; ohne monat alle Monate des Jahres, mit konto die Zeitreihe eines Kontos. Vorzeichen wie Bilanz. Leeres Ergebnis: Monat noch nicht gebucht. Paging über top und offset; meta.truncated sagt, ob es mehr gibt.

Parameter (Query bei GET, JSON-Body bei POST)

NameTypBeispielBedeutung
mandant_id PflichtUUIDbed9e862-2525-44a2-a12c-b40fbecb63b9Mandanten-ID aus list_mandanten.
jahr PflichtGanzzahl 2000–21002024Geschäftsjahr, z. B. 2025.
monatGanzzahl 1–123Monat 1–12. Ohne Angabe: Jahreswert.
kontoGanzzahl 1–999999991460Einzelne Kontonummer (4–8 Stellen; kürzere werden rechts mit Nullen auf 8 Stellen aufgefüllt: 1460 → 14600000).
topGanzzahl 1–50050Maximale Zeilenzahl (Standard 500, höchstens 500).
offsetGanzzahl 0–100000050Zeilen überspringen (Paging): offset=0 erste Seite, offset=top zweite Seite usw. Sortierung ist stabil.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
mandant_idTextMandanten-ID (UUID).
jahrGanzzahlJahr.
monatGanzzahlMonat.
kontoGanzzahlDATEV-Kontonummer.
kontobezeichnungTextKontobezeichnung.
bestandZahlEUR zum Monatsende.

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/geldkonten?mandant_id=<mandant_id>&jahr=2024&format=objects"

Beispiel — alle Parameter (GET)

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/geldkonten?mandant_id=bed9e862-2525-44a2-a12c-b40fbecb63b9&jahr=2024&monat=3&konto=1460&top=50&offset=50&format=objects"

Dasselbe als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "mandant_id": "bed9e862-2525-44a2-a12c-b40fbecb63b9",
  "jahr": 2024,
  "monat": 3,
  "konto": 1460,
  "top": 50,
  "offset": 50,
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/geldkonten"

GET /api/v1/glossar

Glossar & Rechenregeln

Statisches Glossar: Vorzeichenregeln, Kennzahldefinitionen, Label-Beispiele und Grenzen der API. Eine Zeile mit einem JSON-Objekt in der Spalte inhalt.

Parameter (Query bei GET, JSON-Body bei POST)

Keine Parameter.

Zusätzlich überall: format = arrays (Standard: jede Zeile als Werte-Liste in der Reihenfolge von columns) oder objects (jede Zeile als Objekt { spalte: wert } — für Excel, Power Query, Skripte).

Antwortspalten

SpalteTypBedeutung
inhaltObjektGlossar als JSON-Objekt (vorzeichen, begriffe, labels, grenzen).

Beispiel — nur Pflichtparameter

curl -H "Authorization: Bearer dbk_…" \
  "https://mcp.datenbruecke.com/api/v1/glossar?format=objects"

Als POST mit JSON-Body

curl -X POST -H "Authorization: Bearer dbk_…" -H "Content-Type: application/json" \
  -d '{
  "format": "objects"
}' \
  "https://mcp.datenbruecke.com/api/v1/glossar"