Kassenbuch anlegen
Benötigte Berechtigung:company:write(Firmendaten ändern)
Echte Wirkung
/api/cash-booksKein Testversand aus der Dokumentation: Dieser Aufruf ist nicht als rein lesend gekennzeichnet. Nutze das Codebeispiel.
Legt ein Kassenbuch an, wie das Formular in den Einstellungen. Das Kassenbuch muss eingeschaltet sein. Pflicht sind kind, name und startDate, das heute oder früher liegt; ohne account nimmt bimetrics das nächste freie Kassenkonto. Liegt openingBalanceMinor über 0, ist openingSource Pflicht; daraus und aus Kontenrahmen und Rechtsform folgt das Gegenkonto (openingContraAccount), das danach fest bleibt. Art, Kassenkonto, Beginn und Anfangsbestand lassen sich später nicht mehr ändern. Eine Firma hat höchstens drei Kassenbücher gleichzeitig in Gebrauch. Verstößt die Anfrage gegen eine Regel, antwortet die Route mit 400 oder 409 CashBookRejected, context.field nennt das Feld und context.message den Satz der App. Nur ein Inhaber darf anlegen.
Benötigt einen Schlüssel mit der Berechtigung company:write.
AuthentifizierungBearer <bm_…>Empfohlen: Authorization: Bearer bm_…. Der Schlüssel wird nur einmal angezeigt; nie in URLs, Logs oder Frontend-Code ablegen.
Idempotency-Key*stringStabiler Schlüssel für genau diese Änderung: 1–128 druckbare ASCII-Zeichen ohne Leerzeichen. Bei Wiederholungen denselben Schlüssel und unveränderten Inhalt senden; das Ergebnis wird nicht nochmals erzeugt.
^[!-~]+$1 <= length <= 128the cash book
application/json- body
Neues Kassenbuch.
account?integerEines der Kassenkonten aus GET /api/settings/cash-book; ohne Angabe das nächste freie.
kind?stringPflicht: petty für eine Handkasse. shop (offene Ladenkasse) und register (Kassensystem mit TSE) lehnt das Anlegen vorerst mit 400 und Feld kind ab, bis bimetrics ihre Tageseinnahmen kann.
"petty""shop""register"name?stringPflicht: Name, höchstens 60 Zeichen und eindeutig unter den Kassenbüchern in Gebrauch, etwa „Werkstattkasse“.
openingBalanceMinor?integerGeld in der Kasse zu Beginn von startDate, in Cent, höchstens 100000000 (1.000.000 €). Ohne Angabe 0.
openingPerson?stringNur bei openingSource deposit: wer das Geld eingelegt hat, höchstens 100 Zeichen. Bei GmbH, UG, GbR und OHG Pflicht.
openingSource?stringHerkunft des Anfangsbestands: deposit (eigenes Geld des Inhabers bzw. der Gesellschafter), bank (vom Geschäftskonto geholt, als Geldtransit) oder carried_forward (steht schon in der Buchhaltung oder die Steuerberatung bucht den Betrag selbst, bimetrics bucht nichts). Fehlt bei einem Anfangsbestand von 0. Pflicht bei einem Anfangsbestand über 0.
"deposit""bank""carried_forward"startDate?Pflicht: Erster Tag, für den das Kassenbuch den Bestand führt. Heute oder früher, etwa der Tag des ältesten Barbelegs.
Erfolg.
application/json- response
Kassenbuch der Firma.
account?integerKassenkonto im Kontenrahmen der Firma: 1000, 1010 oder 1020 in SKR03, 1600, 1610 oder 1620 in SKR04.
archivedAt?stringStillgelegt seit diesem Zeitpunkt. Fehlt, solange das Kassenbuch in Gebrauch ist.
date-timebalanceMinor?integerGeld, das jetzt in der Kasse sein muss, in Cent.
companyId?stringID der Firma.
uuidcreatedAt?stringAnlage in bimetrics.
date-timeid?stringID des Kassenbuchs.
uuidkind?stringpetty für eine Handkasse. shop (offene Ladenkasse) und register (Kassensystem mit TSE) lehnt das Anlegen vorerst mit 400 und Feld kind ab, bis bimetrics ihre Tageseinnahmen kann.
"petty""shop""register"name?stringName, höchstens 60 Zeichen und eindeutig unter den Kassenbüchern in Gebrauch, etwa „Werkstattkasse“.
numberPrefix?stringAnfang der Nummern seiner Einträge: KB beim ersten Kassenbuch der Firma, bei weiteren KB- und ein Buchstabe.
openingBalanceMinor?integerGeld in der Kasse zu Beginn von startDate, in Cent, höchstens 100000000 (1.000.000 €).
openingContraAccount?integerGegenkonto des Anfangsbestands, beim Anlegen aus Kontenrahmen und Rechtsform bestimmt und danach fest: Privateinlage, Gesellschafter-Verrechnung oder Geldtransit; 0 bei carried_forward. Fehlt bei einem Anfangsbestand von 0.
openingPerson?stringWer den Anfangsbestand eingelegt hat, bei Herkunft deposit; steht auf dem Eigenbeleg des Anfangsbestands.
openingSource?stringHerkunft des Anfangsbestands: deposit (eigenes Geld des Inhabers bzw. der Gesellschafter), bank (vom Geschäftskonto geholt, als Geldtransit) oder carried_forward (steht schon in der Buchhaltung oder die Steuerberatung bucht den Betrag selbst, bimetrics bucht nichts). Fehlt bei einem Anfangsbestand von 0.
"deposit""bank""carried_forward"startDate?Erster Tag, für den das Kassenbuch den Bestand führt.
updatedAt?stringLetzte Änderung.
date-timecurl --fail-with-body "https://app.bimetrics.de/api/cash-books" \ -H "Authorization: Bearer $BIMETRICS_API_KEY" \ -H "Idempotency-Key: rechnung-2026-001" \ -H "Content-Type: application/json" \ -d '{}'{ "account": 1600, "balanceMinor": 20000, "companyId": "9c388e1f-04a6-4770-80bd-66cd98dd00d5", "createdAt": "2026-11-13T09:00:00Z", "id": "7c2e9a41-5b3d-4f08-9e61-2d8a4c7f1b39", "kind": "petty", "name": "Handkasse Büro", "numberPrefix": "", "openingBalanceMinor": 20000, "openingContraAccount": 1460, "openingSource": "bank", "startDate": { "day": 10, "month": 11, "year": 2026 }, "updatedAt": "2026-11-13T09:00:00Z"}Kassenbücher lesen GET
Liefert alle Kassenbücher der Firma, auch stillgelegte, mit Art, Name, Kassenkonto, Beginn, Anfangsbestand samt Herkunft und dem Bestand jetzt (`balanceMinor`, in Cent). Ohne Kassenbuch ist die Liste leer. Benötigt einen Schlüssel mit der Berechtigung `read`.
Kassenbuch umbenennen PATCH
Ändert den Namen eines Kassenbuchs; alles andere steht fest. `expectedUpdatedAt` ist das gelesene `updatedAt`; hat sich das Kassenbuch seitdem geändert, antwortet die Route mit `409 VersionConflict` und ändert nichts. Ein stillgelegtes Kassenbuch lässt sich nicht mehr umbenennen. Eine ID einer anderen Firma ergibt `404 CashBookNotFound`. Benötigt einen Schlüssel mit der Berechtigung `company:write`.