bimetricsEntwickler
Kassenbuch

Monat eines Kassenbuchs lesen

Als Markdown ansehen

Benötigte Berechtigung:read(Daten lesen)

GET
/api/cash-books/{id}/entries

Liefert einen Monat des Kassenbuchs: den Bestand davor (openingMinor) und danach (closingMinor) und die Tage mit Einträgen, je mit Anfangs- und Endbestand. Die Einträge eines Tages stehen in der Reihenfolge ihrer Erfassung. Jeder Eintrag hat eine Nummer, die je Kassenbuch und Jahr lückenlos zählt (KB-2026-0001, bei weiteren Kassenbüchern KB-A-2026-0001). Einträge werden nie geändert oder gelöscht; ein Fehler wird storniert.

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

Query-Parameter

month*string

Monat als JJJJ-MM, etwa 2026-11.

Antworten

Erfolg.

application/json
  1. response

Ein Monat des Kassenbuchs.

cashBook?

Das Kassenbuch mit seinem Bestand jetzt.

closingMinor?integer

Geld in der Kasse nach dem letzten Eintrag des Monats, in Cent.

days?array<>|

Die Tage mit Einträgen, aufsteigend.

month?integer

Monat (1 bis 12).

openingMinor?integer

Geld in der Kasse vor dem ersten Tag des Monats, in Cent.

year?integer

Jahr.

Beispielanfrage
curl --fail-with-body "https://app.bimetrics.de/api/cash-books/497f6eca-6276-4993-bfeb-53cbbbba6f08/entries?month=string" \  -H "Authorization: Bearer $BIMETRICS_API_KEY"
Beispielantwort
{  "cashBook": {    "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"  },  "closingMinor": 20000,  "days": [    {      "closingMinor": 20000,      "date": {        "day": 10,        "month": 11,        "year": 2026      },      "entries": [        {          "amountMinor": 20000,          "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": "opening",          "number": "KB-2026-0001",          "origin": "api",          "text": "Anfangsbestand vom Geschäftskonto",          "updatedAt": "2026-11-13T09:05:00Z",          "year": 2026        }      ],      "openingMinor": 0    }  ],  "month": 11,  "openingMinor": 0,  "year": 2026}

Kassenbuch stilllegen POST

Legt ein Kassenbuch still. Das geht nur, wenn kein Geld mehr darin ist (`balanceMinor` 0), sonst `409 CashBookRejected`. Es bleibt lesbar, sein Kassenkonto wird frei für ein neues Kassenbuch. Zurückholen lässt es sich nicht. Ist es schon stillgelegt, ändert sich nichts. Benötigt einen Schlüssel mit der Berechtigung `company:write`.

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`.