bimetricsEntwickler
Vorlagen und Dauerbuchungen

Änderung einer Dauerbuchung prüfen

Als Markdown ansehen

Benötigte Berechtigung:collections:write(Vorlagen und Dauerbuchungen ändern)

Echte Wirkung

Dieser Aufruf ist nicht als rein lesend gekennzeichnet und kann echte Daten in der Firma anlegen oder ändern. Es gibt keine Testumgebung.
post/api/document/collection/contract/preview

Kein Testversand aus der Dokumentation: Dieser Aufruf ist nicht als rein lesend gekennzeichnet. Nutze das Codebeispiel.

Sagt, was Anlegen, Ändern, Beenden oder Löschen mit den Periodenbelegen täte, und ändert nichts. Gerechnet wird wie beim Speichern, Ablehnungen sind dieselben. action ist create, update, end oder delete; außer bei create nennt id die Dauerbuchung. end nennt bei action end das neue Ende: Es darf nie verlängern (422 DocumentContractEndExtends). pastDocuments gilt bei delete.

Benötigt einen Schlüssel mit der Berechtigung collections:write.

Authentifizierung

headerAuthentifizierungBearer <bm_…>

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

Request-Body

application/json
  1. body

Welche Änderung geprüft werden soll.

action?string

create, update, end oder delete.

collectionNumber?|

Nummer; wird zur Rechnungsnummer der erzeugten Belege.

costCenterId?string

Kostenstelle oder Verteilung aller Belege der Dauerbuchung als ID, ein leerer String entfernt sie. Eine Änderung gilt für künftige Belege und für alle, die noch nicht festgeschrieben, zugeordnet oder bezahlt sind. Ohne Angabe bleibt sie.

documentContractRepetitionFixed?

Nur bei Dauerbuchungen: Beginn, ausschließliches Ende und Rhythmus.

end?

Neues ausschließliches Ende bei action end.

expectedUpdatedAt?string

updatedAt des gelesenen Objekts, beim Ändern Pflicht.

Formatdate-time
friendlyName?|

Bezeichnung.

id?string

ID der Dauerbuchung; außer bei create Pflicht.

Formatuuid
issuer?|

Aussteller: die Gegenpartei bei receipt.

kind?|

invoice (Ausgangsrechnung) oder receipt (Eingangsbeleg), ohne Angabe beim Anlegen receipt.

pastDocuments?boolean

Bei delete: auch die Belege bis heute.

positionTemplate?array<>|

Die Zeilen, 1 bis 100. Ersetzt beim Ändern alle Zeilen.

recipient?|

Empfänger: die Gegenpartei bei invoice.

Antworten

Erfolg.

application/json
  1. response

Was die Änderung mit den Periodenbelegen täte.

action?string

Die geprüfte Aktion.

amountPerPeriodMinor?integer

Betrag je ganzer Periode in Cent.

contractId?string

ID der Dauerbuchung; fehlt bei create.

Formatuuid
contractStays?boolean

Beim Löschen: Weil Belege bleiben, bleibt auch die Dauerbuchung als gelöscht vermerkt.

creates?array<>|

Neue Belege mit Buchung, auch für vergangene Perioden.

deletes?array<>|

Belege, die entfallen.

keeps?array<>|

Belege, die bleiben, wie sie sind: zugeordnet, bezahlt, festgeschrieben oder beim Löschen ohne pastDocuments aus der Zeit bis heute.

pastPeriods?integer

Wie viele der neuen Belege abgelaufene Perioden betreffen.

rewrites?array<>|

Offene Belege, die die neuen Zeilen übernehmen.

unchanged?integer

Offene Belege, die sich nicht ändern.

updatedAt?string

Stand der Dauerbuchung; fehlt bei create.

Formatdate-time
Beispielanfrage
curl --fail-with-body "https://app.bimetrics.de/api/document/collection/contract/preview" \  -H "Authorization: Bearer $BIMETRICS_API_KEY" \  -H "Content-Type: application/json" \  -d '{}'
Beispielantwort
{  "action": "update",  "amountPerPeriodMinor": 130000,  "contractId": "6d0e3f52-81a4-4b7c-9f26-2a7e5c1d4b83",  "contractStays": false,  "creates": [    {      "amountMinor": 130000,      "from": {        "day": 1,        "month": 11,        "year": 2026      },      "to": {        "day": 30,        "month": 11,        "year": 2026      }    }  ],  "deletes": [],  "keeps": [    {      "amountMinor": 120000,      "documentId": "3f6c2a10-7b1e-4c55-9a70-0d2b8e41c9f1",      "from": {        "day": 1,        "month": 10,        "year": 2026      },      "to": {        "day": 31,        "month": 10,        "year": 2026      }    }  ],  "pastPeriods": 0,  "rewrites": [],  "unchanged": 0,  "updatedAt": "2026-01-05T09:00:00Z"}