Kassenbuch-Einträge prüfen
Benötigte Berechtigung:read(Daten lesen)
Prüft Einträge wie POST /api/cash-books/{id}/entries und sagt, was sie buchen würden (bookings) und wie viel Geld danach in der Kasse ist, ohne etwas zu schreiben. Die Nummern heißen in der Vorschau neu.
Benötigt einen Schlüssel mit der Berechtigung read.
AuthentifizierungBearer <bm_…>Empfohlen: Authorization: Bearer bm_…. Der Schlüssel wird nur einmal angezeigt; nie in URLs, Logs oder Frontend-Code ablegen.
id*stringID des Kassenbuchs (UUID).
uuidthe entries
application/json- body
Einträge fürs Kassenbuch.
entries?array<>|Ein bis 20 Einträge; einer mit Beleg geht allein.
expectedBalanceMinor?integerDer zuletzt gelesene Bestand in Cent. Weicht der Bestand ab, antwortet die Route mit 409 CashBookRejected und bucht nichts.
Erfolg.
application/json- response
Gebuchte oder geprüfte Einträge.
balanceMinor?integerGeld in der Kasse danach, in Cent.
bookings?array<>Nur in der Vorschau: die Buchungszeilen der Einträge ohne Beleg.
entries?array<>|Die Einträge; bei einer Wiederholung mit demselben Idempotency-Key leer.
exported?booleanNur in der Vorschau: true, wenn ein Eintrag in einem Zeitraum liegt, der schon an DATEV exportiert ist. Er kommt dann erst mit, wenn die Firma den Monat noch einmal exportiert.
replayed?booleantrue bei einer Wiederholung.
curl --fail-with-body "https://app.bimetrics.de/api/cash-books/497f6eca-6276-4993-bfeb-53cbbbba6f08/entries/preview" \ -H "Authorization: Bearer $BIMETRICS_API_KEY" \ -H "Content-Type: application/json" \ -d '{}'{ "balanceMinor": 15000, "bookings": [ { "account": 1600, "accountContra": 2100, "amountMinor": -5000, "text": "Privatentnahme" } ], "entries": [ { "amountMinor": -5000, "cashBookId": "7c2e9a41-5b3d-4f08-9e61-2d8a4c7f1b39", "companyId": "9c388e1f-04a6-4770-80bd-66cd98dd00d5", "createdAt": "2026-11-13T09:05:00Z", "entryDate": { "day": 12, "month": 11, "year": 2026 }, "id": "3f1d2c7a-8b9e-4a51-b6c2-0e4f8a9d7b13", "kind": "private_out", "number": "neu", "origin": "api", "text": "Privatentnahme", "updatedAt": "2026-11-13T09:05:00Z", "year": 2026 } ]}Kassenbuch-Einträge buchen POST
Bucht einen oder bis zu 20 Einträge ins Kassenbuch, jeden mit der nächsten Nummer seines Jahres. Ohne Beleg gibt es: eine Ausgabe mit Eigenbeleg (`expense` mit `category` und `ownReceipt`, ohne Vorsteuer), Geld privat eingelegt oder entnommen (`private_in`, `private_out`; bei GmbH und UG über das Gesellschafter-Verrechnungskonto und nur bis zu dem Betrag, den die Firma den Gesellschaftern schuldet) und Geld zwischen Geschäftskonto und Kasse (`transit_in`, `transit_out`, über Geldtransit). Mit `documentId` bucht der Eintrag die Barzahlung dieses Belegs, wie `POST /api/match/payment` mit `cashBookId`; er geht dann allein. Einnahmen gibt es nur mit Beleg, einzelne Barverkäufe nie: bimetrics ist keine Registrierkasse. Der Bestand darf nach keiner Buchung unter 0 € fallen, gerechnet in der Reihenfolge des Kassenbuchs (Tag, dann Erfassung); die Ablehnung nennt die erste Buchung, für die das Geld nicht reicht. `expectedBalanceMinor` schützt vor einer Änderung dazwischen. Buchen dürfen Inhaber und Nutzer, nicht die Steuerberatung (`403 CashBookOwnerOnly`). Bei einer Wiederholung schickst du denselben Idempotency-Key. Benötigt einen Schlüssel mit der Berechtigung `matching:write`.
Kassenbuch-Einstellung lesen GET
Sagt, ob die Firma das Kassenbuch verwendet (`enabled`), ob der Schlüssel bzw. die Person es ändern darf (`canChange`, nur Inhaber) und darin buchen darf (`canBook`, nicht die Steuerberatung), wie viele Kassenbücher in Gebrauch sind (`inUse`) und welche Kassenkonten ein neues Kassenbuch nehmen kann (`accounts`, das nächste freie zuerst). `deposit` sagt, wie eine Einlage in die Kasse gebucht wird: `owner` als Privateinlage, `shareholder` über das Gesellschafter-Verrechnungskonto; leer, wenn die Rechtsform fehlt oder keine Einlage kennt. Benötigt einen Schlüssel mit der Berechtigung `read`.