Schnellstart
- 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. - Mandanten holen:
GET /api/v1/mandantenmitAuthorization: Bearer dbk_…. - 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)."
}
}
| code | HTTP | Bedeutung |
|---|---|---|
auth | 401 | Kein oder ungültiges Token bzw. Schlüssel. Header WWW-Authenticate nennt die OAuth-Metadaten. |
eingabe | 400 | Pflichtfeld fehlt, Typ oder Bereich falsch, Fachregel verletzt (z. B. /konten ohne Zeilenangabe). message sagt, was. |
unbekanntes_tool | 404 | Endpunkt gibt es nicht. |
mandant | 403 | Der Mandant ist nicht in deiner Daten-Sicht freigegeben. |
kost | 403 | Deine Daten-Sicht ist auf Kostenstellen eingeschränkt — die API arbeitet mandantenweit und ist dann gesperrt. |
ki_deaktiviert | 403 | Die Organisation hat KI-Analytik und Konnektor abgeschaltet — oder noch nicht freigeschaltet (Admin: Einstellungen → KI). Die Meldung nennt den Fall. |
namen | 403 | Stammlisten (/kunden, /lieferanten) bei abgeschalteten Namen. |
org | 403 | Keine Organisation im Token (mehrere ohne Auswahl). |
rate | 429 | 60 Aufrufe je Person und Minute, 300 je Organisation. Retry-After in Sekunden. |
abfrage / kontext | 502 / 503 | Datenquelle oder Authorization Server nicht erreichbar — später erneut versuchen. |
Endpunkte
/mandanten— Mandanten auflisten/datenumfang— Datenstand je Mandant/bwa— BWA (G&V) abrufen/bilanz— Bilanz-Bestände abrufen/konten— Sachkonten unter einer BWA-Zeile/forderungen— Offene Forderungen (Debitoren)/verbindlichkeiten— Offene Verbindlichkeiten (Kreditoren)/dso_dpo— DSO / DPO/liquiditaet— Fälligkeiten / Liquiditätsvorschau/kostenstellen_struktur— Kostenstellen-Struktur/kunden_umsatz— Kundenumsatz (Größe der Kunden)/lieferanten_volumen— Einkaufsvolumen (Größe der Lieferanten)/kunden— Kunden suchen / Stammliste/lieferanten— Lieferanten suchen / Stammliste/geldkonten— Bank- und Kassenbestände je Monat/glossar— Glossar & Rechenregeln
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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
mandant_name | Text | Firmenname. |
mandant_nummer | Text | DATEV-Mandantennummer. |
kontenrahmen | Text | Kontenrahmen als Text: „3“ = SKR 3, „4“ = SKR 4. |
kontenlaenge | Text | Lä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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
quelle | Text | bwa · konten · belege · bilanz. |
jahr_von | Ganzzahl | Erstes Jahr mit Daten. |
jahr_bis | Ganzzahl | Letztes Jahr mit Daten. |
letzter_monat | Ganzzahl, kann leer sein | Letzter gebuchter Monat des jüngsten Jahres. |
datenpunkte | Ganzzahl | Anzahl 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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
jahr Pflicht | Ganzzahl 2000–2100 | 2024 | Geschäftsjahr, z. B. 2025. |
monat | Ganzzahl 1–12 | 3 | Monat 1–12. Ohne Angabe: Jahreswert. |
vorjahr | true / false | true | Auch das Vorjahr liefern (gleiche Zeilen, jahr - 1). |
nur_gv | true / false | true | Nur 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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
jahr | Ganzzahl | Geschäftsjahr. |
monat | Ganzzahl | Monat 1–12. Nur wenn: monat gesetzt. |
bwa_zeilennummer | Ganzzahl | Kundenindividuelle Zeilennummer. |
bwa_zeile | Text | Zeilenname. |
bereich | Text | Erfolgsrechnung · Bewegungsbilanz · Liquidität. |
betrag | Zahl | EUR; 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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
jahr Pflicht | Ganzzahl 2000–2100 | 2024 | Geschäftsjahr, z. B. 2025. |
monat | Ganzzahl 1–12 | 3 | Monat 1–12. Ohne Angabe: Jahreswert. |
label | Label GROSS_MIT_UNTERSTRICH | LIQUIDE_MITTEL | Nur 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.
| Variante | Spalte | Typ | Bedeutung |
|---|---|---|---|
| alle | mandant_id | Text | Mandanten-ID (UUID). |
| alle | jahr | Ganzzahl | Geschäftsjahr. |
| Monat | monat | Ganzzahl | Monatsende-Stand. |
| Monat | label | Text, kann leer sein | Kennzahl-Label (GROSS_MIT_UNTERSTRICH). |
| alle | bwa_zeilennummer | Ganzzahl | Zeilennummer. |
| alle | bwa_zeile | Text | Zeilenname. |
| alle | bereich | Text | Bilanzbereich. |
| alle | bestand | Zahl | EUR; 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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
jahr Pflicht | Ganzzahl 2000–2100 | 2024 | Geschäftsjahr, z. B. 2025. |
monat | Ganzzahl 1–12 | 3 | Monat 1–12. Ohne Angabe: Jahreswert. |
bwa_zeilennummer | Ganzzahl 0–99999 | 1060 | BWA-Zeilennummer aus get_bwa. |
bwa_zeile | Text (max. 60 Zeichen) | Personalkosten | Alternativ: Name der BWA-Zeile aus get_bwa (exakt). |
konto | Ganzzahl 1–99999999 | 1460 | Einzelne Kontonummer (4–8 Stellen; kürzere werden rechts mit Nullen auf 8 Stellen aufgefüllt: 1460 → 14600000). |
konto_von | Ganzzahl 1–99999999 | 4000 | Kontonummernbereich 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_bis | Ganzzahl 1–99999999 | 4999 | Kontonummernbereich bis (inklusive; rechts mit Neunen aufgefüllt: 4999 → 49999999). |
top | Ganzzahl 1–200 | 50 | Maximale Zeilenzahl (Standard 100, höchstens 200). |
offset | Ganzzahl 0–1000000 | 50 | Zeilen ü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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
jahr | Ganzzahl | Geschäftsjahr. |
monat | Ganzzahl | Monat. Nur wenn: monat gesetzt. |
konto | Ganzzahl | DATEV-Kontonummer, wie im Kontenrahmen des Mandanten (4–8 Stellen, z. B. 4110). |
konto_intern | Ganzzahl | Dieselbe Kontonummer 8-stellig normalisiert (41100000) — Schlüssel für Filter und für /geldkonten. |
kontobezeichnung | Text | Kontobezeichnung. |
bwa_zeilennummer | Ganzzahl | Zeilennummer. |
bwa_zeile | Text | Zeilenname. |
betrag | Zahl | EUR, Vorzeichen wie BWA. |
buchungen_anzahl | Ganzzahl | Anzahl 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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
nur_ueberfaellig | true / false | true | Nur überfällige Posten (Einzelposten-Variante). Bei aging=true ohne Wirkung — die Altersstruktur enthält immer alle Bänder. |
aging | true / false | true | Altersstruktur (Fälligkeitsbänder) statt Einzelposten. |
kundennummer | Nummer (nur Ziffern) | 100020000 | Nur dieser Kunde (Debitorennummer aus get_kunden) — in beiden Varianten. |
faelligkeit_von | Datum YYYY-MM-DD | 2024-10-01 | Fälligkeit ab (inklusive, YYYY-MM-DD) — nur Einzelposten. |
faelligkeit_bis | Datum YYYY-MM-DD | 2024-12-31 | Fälligkeit bis (inklusive) — nur Einzelposten. |
belegdatum_von | Datum YYYY-MM-DD | 2024-01-01 | Belegdatum ab (inklusive) — nur Einzelposten. |
belegdatum_bis | Datum YYYY-MM-DD | 2024-12-31 | Belegdatum bis (inklusive) — nur Einzelposten. |
tage_ueberfaellig_min | Ganzzahl 0–3650 | 60 | Nur Posten mit mindestens so vielen Verzugstagen — nur Einzelposten. |
betrag_min | Ganzzahl 0–1000000000 | 1000 | Nur Zeilen mit Absolutbetrag ≥ diesem Wert (EUR, ganzzahlig). |
top | Ganzzahl 1–500 | 50 | Maximale Zeilenzahl (Standard 100, höchstens 500). |
offset | Ganzzahl 0–1000000 | 50 | Zeilen ü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.
| Variante | Spalte | Typ | Bedeutung |
|---|---|---|---|
| alle | mandant_id | Text | Mandanten-ID (UUID). |
| alle | kundennummer | Text | Debitorennummer. |
| alle | kunde | Text | Kundenname. Nur wenn: Namen von der Organisation freigegeben (Standard). |
| alle | betrag | Zahl | EUR, offene Forderung negativ. |
| Posten | faelligkeit | Datum, kann leer sein | Fälligkeitsdatum. |
| Posten | belegdatum | Datum, kann leer sein | Belegdatum. |
| Posten | mahnstufe | Ganzzahl, kann leer sein | Mahnstufe. |
| Posten | ueberfaellig | Ganzzahl | 1 = überfällig. |
| Posten | tage_ueberfaellig | Ganzzahl | Verzugstage, gerechnet gegen das Datum zum Abfragezeitpunkt (Serverzeit UTC), nicht gegen den Datenstand. |
| Aging | bucket | Text | nicht_faellig · 1_30 · 31_60 · 61_90 · ueber_90. |
| Aging | bucket_sort | Ganzzahl | Sortierung der Bänder 0–4. |
| Aging | anzahl | Ganzzahl | Posten 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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
nur_ueberfaellig | true / false | true | Nur überfällige Posten (Einzelposten-Variante). Bei aging=true ohne Wirkung — die Altersstruktur enthält immer alle Bänder. |
aging | true / false | true | Altersstruktur (Fälligkeitsbänder) statt Einzelposten. |
lieferantennummer | Nummer (nur Ziffern) | 700010000 | Nur dieser Lieferant (Kreditorennummer aus get_lieferanten) — in beiden Varianten. |
faelligkeit_von | Datum YYYY-MM-DD | 2024-10-01 | Fälligkeit ab (inklusive, YYYY-MM-DD) — nur Einzelposten. |
faelligkeit_bis | Datum YYYY-MM-DD | 2024-12-31 | Fälligkeit bis (inklusive) — nur Einzelposten. |
belegdatum_von | Datum YYYY-MM-DD | 2024-01-01 | Belegdatum ab (inklusive) — nur Einzelposten. |
belegdatum_bis | Datum YYYY-MM-DD | 2024-12-31 | Belegdatum bis (inklusive) — nur Einzelposten. |
tage_ueberfaellig_min | Ganzzahl 0–3650 | 60 | Nur Posten mit mindestens so vielen Verzugstagen — nur Einzelposten. |
betrag_min | Ganzzahl 0–1000000000 | 1000 | Nur Zeilen mit Absolutbetrag ≥ diesem Wert (EUR, ganzzahlig). |
top | Ganzzahl 1–500 | 50 | Maximale Zeilenzahl (Standard 100, höchstens 500). |
offset | Ganzzahl 0–1000000 | 50 | Zeilen ü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.
| Variante | Spalte | Typ | Bedeutung |
|---|---|---|---|
| alle | mandant_id | Text | Mandanten-ID (UUID). |
| alle | lieferantennummer | Text | Kreditorennummer. |
| alle | lieferant | Text | Lieferantenname. Nur wenn: Namen von der Organisation freigegeben (Standard). |
| alle | betrag | Zahl | EUR, Vorzeichen wie in der Buchhaltung. |
| Posten | faelligkeit | Datum, kann leer sein | Fälligkeitsdatum. |
| Posten | belegdatum | Datum, kann leer sein | Belegdatum. |
| Posten | zahlweg | Text, kann leer sein | Zahlweg. |
| Posten | ueberfaellig | Ganzzahl | 1 = überfällig. |
| Posten | tage_ueberfaellig | Ganzzahl | Verzugstage, gerechnet gegen das Datum zum Abfragezeitpunkt (Serverzeit UTC), nicht gegen den Datenstand. |
| Aging | bucket | Text | nicht_faellig · 1_30 · 31_60 · 61_90 · ueber_90. |
| Aging | bucket_sort | Ganzzahl | Sortierung der Bänder 0–4. |
| Aging | anzahl | Ganzzahl | Posten 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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
seite | Text | debitoren · kreditoren. |
offener_bestand | Zahl | EUR. |
davon_ueberfaellig | Zahl | EUR. |
ueberfaellig_quote_prozent | Zahl | Prozent. |
verzugstage_gewichtet | Zahl | Betragsgewichtete Verzugstage. |
volumen_12m | Zahl | Volumen der letzten 12 Monate, EUR. |
laufzeit_tage | Zahl, kann leer sein | DSO 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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
von | Datum YYYY-MM-DD | 2024-10-01 | Fälligkeit ab (YYYY-MM-DD). |
bis | Datum YYYY-MM-DD | 2024-12-31 | Fälligkeit bis (YYYY-MM-DD). |
quelle | AR · AP · BANK | AR | Nur diese Quelle. |
aggregiert | true / false | false | Je Fälligkeitstag und Quelle summieren (Standard true). |
top | Ganzzahl 1–500 | 50 | Maximale Zeilenzahl (Standard 200, höchstens 500). |
offset | Ganzzahl 0–1000000 | 50 | Zeilen ü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.
| Variante | Spalte | Typ | Bedeutung |
|---|---|---|---|
| alle | mandant_id | Text | Mandanten-ID (UUID). |
| alle | faelligkeit | Datum, kann leer sein | Fälligkeitstag. |
| alle | quelle | Text | AR · AP · BANK. |
| alle | betrag | Zahl | EUR; Einzahlung positiv, Auszahlung negativ. |
| Aggregiert | anzahl | Ganzzahl | Posten am Tag. |
| alle | ueberfaellig | Ganzzahl | 1 = mindestens ein Posten überfällig. |
| Posten | konto | Ganzzahl, kann leer sein | Konto 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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
kost_type | KOST1 · KOST2 | KOST1 | Nur diese Kostenstellen-Art. |
top | Ganzzahl 1–500 | 50 | Maximale Zeilenzahl (Standard 500, höchstens 500). |
offset | Ganzzahl 0–1000000 | 50 | Zeilen ü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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
group_id | Ganzzahl, kann leer sein | Gruppen-ID. |
parent_group_id | Ganzzahl, kann leer sein | Übergeordnete Gruppe. |
group_name | Text | Gruppenname. |
kost_type | Text | Kostenstellen-Art als Ziffer: „1“ = KOST1, „2“ = KOST2 — Eingabe kost_type=KOST1 liefert Zeilen mit „1“. |
ebene | Ganzzahl | Hierarchieebene (0 = Wurzel). |
pfad | Text | Pfad der Gruppe. |
kostenstelle | Text | Kostenstellennummer. |
kostenstelle_name | Text | Kostenstellenname. |
ist_direkt | Ganzzahl | 1 = 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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
jahr Pflicht | Ganzzahl 2000–2100 | 2024 | Geschäftsjahr, z. B. 2025. |
monat | Ganzzahl 1–12 | 3 | Monat 1–12. Ohne Angabe: Jahreswert. |
kundennummer | Nummer (nur Ziffern) | 100020000 | Nur dieser Kunde (Debitorennummer aus get_kunden). |
umsatz_min | Ganzzahl 0–1000000000 | 10000 | Nur Kunden mit Umsatz ≥ diesem Wert (EUR, ganzzahlig). |
top | Ganzzahl 1–200 | 50 | Maximale Zeilenzahl (Standard 50, höchstens 200). |
offset | Ganzzahl 0–1000000 | 50 | Zeilen ü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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
kundennummer | Text | Debitorennummer. |
kunde | Text | Kundenname. Nur wenn: Namen von der Organisation freigegeben (Standard). |
jahr | Ganzzahl | Jahr. |
monat | Ganzzahl | Monat. Nur wenn: monat gesetzt. |
umsatz | Zahl | Brutto-Volumen, EUR, positiv. |
zahlungseingang | Zahl | EUR. |
anzahl_belege | Ganzzahl | Belege. |
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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
jahr Pflicht | Ganzzahl 2000–2100 | 2024 | Geschäftsjahr, z. B. 2025. |
lieferantennummer | Nummer (nur Ziffern) | 700010000 | Nur dieser Lieferant (Kreditorennummer aus get_lieferanten). |
volumen_min | Ganzzahl 0–1000000000 | 10000 | Nur Lieferanten mit Einkaufsvolumen ≥ diesem Wert (EUR, ganzzahlig). |
top | Ganzzahl 1–200 | 50 | Maximale Zeilenzahl (Standard 50, höchstens 200). |
offset | Ganzzahl 0–1000000 | 50 | Zeilen ü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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
lieferantennummer | Text | Kreditorennummer. |
lieferant | Text | Lieferantenname. Nur wenn: Namen von der Organisation freigegeben (Standard). |
jahr | Ganzzahl | Jahr. |
einkaufsvolumen | Zahl | EUR, positiv. |
zahlungsausgang | Zahl | EUR. |
anzahl_belege | Ganzzahl | Belege. |
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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
suche | Text (max. 60 Zeichen) | Müller | Namensteil (Groß-/Kleinschreibung egal), z. B. „Müller“. |
top | Ganzzahl 1–200 | 50 | Maximale Zeilenzahl (Standard 100, höchstens 200). |
offset | Ganzzahl 0–1000000 | 50 | Zeilen ü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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
kundennummer | Text | Debitorennummer. |
kunde | Text | Kundenname. |
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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
suche | Text (max. 60 Zeichen) | Müller | Namensteil (Groß-/Kleinschreibung egal). |
top | Ganzzahl 1–200 | 50 | Maximale Zeilenzahl (Standard 100, höchstens 200). |
offset | Ganzzahl 0–1000000 | 50 | Zeilen ü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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
lieferantennummer | Text | Kreditorennummer. |
lieferant | Text | Lieferantenname. |
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)
| Name | Typ | Beispiel | Bedeutung |
|---|---|---|---|
mandant_id Pflicht | UUID | bed9e862-2525-44a2-a12c-b40fbecb63b9 | Mandanten-ID aus list_mandanten. |
jahr Pflicht | Ganzzahl 2000–2100 | 2024 | Geschäftsjahr, z. B. 2025. |
monat | Ganzzahl 1–12 | 3 | Monat 1–12. Ohne Angabe: Jahreswert. |
konto | Ganzzahl 1–99999999 | 1460 | Einzelne Kontonummer (4–8 Stellen; kürzere werden rechts mit Nullen auf 8 Stellen aufgefüllt: 1460 → 14600000). |
top | Ganzzahl 1–500 | 50 | Maximale Zeilenzahl (Standard 500, höchstens 500). |
offset | Ganzzahl 0–1000000 | 50 | Zeilen ü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
| Spalte | Typ | Bedeutung |
|---|---|---|
mandant_id | Text | Mandanten-ID (UUID). |
jahr | Ganzzahl | Jahr. |
monat | Ganzzahl | Monat. |
konto | Ganzzahl | DATEV-Kontonummer. |
kontobezeichnung | Text | Kontobezeichnung. |
bestand | Zahl | EUR 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
| Spalte | Typ | Bedeutung |
|---|---|---|
inhalt | Objekt | Glossar 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"