bimetricsEntwickler
Kassenbuch

Kassenbuch-Einträge prüfen

Als Markdown ansehen

Benötigte Berechtigung:read(Daten lesen)

POST
/api/cash-books/{id}/entries/preview

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.

Authentifizierung

headerAuthentifizierungBearer <bm_…>

Empfohlen: Authorization: Bearer bm_…. Der Schlüssel wird nur einmal angezeigt; nie in URLs, Logs oder Frontend-Code ablegen.

Pfadparameter

id*string

ID des Kassenbuchs (UUID).

Formatuuid

Request-Body

the entries

application/json
  1. body

Einträge fürs Kassenbuch.

entries?array<>|

Ein bis 20 Einträge; einer mit Beleg geht allein.

expectedBalanceMinor?integer

Der zuletzt gelesene Bestand in Cent. Weicht der Bestand ab, antwortet die Route mit 409 CashBookRejected und bucht nichts.

Antworten

Erfolg.

application/json
  1. response

Gebuchte oder geprüfte Einträge.

balanceMinor?integer

Geld 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?boolean

Nur 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?boolean

true bei einer Wiederholung.

Beispielanfrage
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 '{}'
Beispielantwort
{  "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`.