Dauerbuchung ändern
Benötigte Berechtigung:collections:write(Vorlagen und Dauerbuchungen ändern)
Echte Wirkung
/api/document/collection/contract/{id}Kein Testversand aus der Dokumentation: Dieser Aufruf ist nicht als rein lesend gekennzeichnet. Nutze das Codebeispiel.
Ändert eine Dauerbuchung, wie in der App. Eine Änderung gilt nur nach vorn: Offene und künftige Belege folgen ihr, zugeordnete, bezahlte und festgeschriebene bleiben, wie sie sind. Zum Beenden genügt documentContractRepetitionFixed mit end. Das Ende darf die laufende Periode nicht abschneiden (422 DocumentContractEndBeforeRunningPeriod). Der Rhythmus wird nur geprüft, wenn er sich ändert. PUT ändert nur die mitgeschickten Felder. expectedUpdatedAt ist Pflicht; hat sich das Objekt seitdem geändert, antwortet die Route mit 409 VersionConflict. Geprüft wird wie im Formular der App: Bezeichnung, Art invoice oder receipt, 1 bis 100 Zeilen mit Betrag oder Anteil, Kategorie passend zu Art, Verwendung und Kontenrahmen, Steuersatz 19, 7 oder 0 %, auf Eingangsbelegen auch 9 oder 5,5 %, soweit die Kategorie ihn zulässt, Steuerfall bei 0 % auf Eingangsbelegen und die Gegenpartei der Art, außer alle Kategorien werden direkt gebucht. Verstöße ergeben 400 InvalidBookkeepingChange mit context.field. Bezeichnung, Kategorie und Steuersatz werden nur geprüft, wenn sie neu sind. Eine gelöschte Dauerbuchung ergibt 409 DocumentContractDeleted. Eine Wiederholung mit gleichem Idempotency-Key wirkt nicht doppelt.
Benötigt einen Schlüssel mit der Berechtigung collections:write.
AuthentifizierungBearer <bm_…>Empfohlen: Authorization: Bearer bm_…. Der Schlüssel wird nur einmal angezeigt; nie in URLs, Logs oder Frontend-Code ablegen.
id*stringID des Objekts in dieser Firma (UUID).
uuidIdempotency-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 <= 128application/json- body
Felder einer Buchungsvorlage oder Dauerbuchung.
collectionNumber?|Nummer; wird zur Rechnungsnummer der erzeugten Belege.
costCenterId?stringKostenstelle 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.
expectedUpdatedAt?stringupdatedAt des gelesenen Objekts, beim Ändern Pflicht.
date-timefriendlyName?|Bezeichnung.
issuer?|Aussteller: die Gegenpartei bei receipt.
kind?|invoice (Ausgangsrechnung) oder receipt (Eingangsbeleg), ohne Angabe beim Anlegen receipt.
positionTemplate?array<>|Die Zeilen, 1 bis 100. Ersetzt beim Ändern alle Zeilen.
recipient?|Empfänger: die Gegenpartei bei invoice.
Erfolg.
application/json- response
Dauerbuchung, aus der der Beleg entstand: ein fester Betrag im festen Rhythmus, z. B. Miete. Für jeden Zeitraum legt bimetrics einen Beleg an.
collectionNumber?stringNummer der Dauerbuchung; wird zur Rechnungsnummer (invoiceNumber) der erzeugten Belege. Ist sie leer, entsteht die Rechnungsnummer aus der Bezeichnung.
companyId?stringID der Firma.
uuidcostCenterId?stringKostenstelle oder Verteilung als ID; fehlt ohne.
uuidcreatedAt?stringAnlage in bimetrics.
date-timedocumentContractRepetitionFixed?Zeitraum und Rhythmus der erzeugten Belege.
friendlyName?stringBezeichnung.
id?stringID der Dauerbuchung.
uuidissuer?Aussteller der erzeugten Belege.
kind?stringBelegart der erzeugten Belege: invoice oder receipt.
"invoice""receipt"positionTemplate?array<>|Vorlagen der Positionen der erzeugten Belege.
recipient?Empfänger der erzeugten Belege.
updatedAt?stringLetzte Änderung.
date-timeuploadDocument?|Die hinterlegte Datei; null ohne Datei.
uploadDocumentId?|ID einer hinterlegten Datei; null ohne Datei.
uuidcurl --fail-with-body "https://app.bimetrics.de/api/document/collection/contract/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Authorization: Bearer $BIMETRICS_API_KEY" \ -H "Idempotency-Key: rechnung-2026-001" \ -H "Content-Type: application/json" \ -d '{}'{ "collectionNumber": "MIETE", "companyId": "9c388e1f-04a6-4770-80bd-66cd98dd00d5", "createdAt": "2026-01-05T09:00:00Z", "documentContractRepetitionFixed": { "end": null, "repetitionPeriodDays": 0, "repetitionPeriodMonth": 1, "start": { "day": 1, "month": 1, "year": 2026 } }, "friendlyName": "Büromiete", "id": "6d0e3f52-81a4-4b7c-9f26-2a7e5c1d4b83", "issuer": { "address": "", "customerNumber": null, "iban": "", "name": "Muster Immobilien GmbH", "taxId": "" }, "kind": "receipt", "positionTemplate": [ { "additionalInfo": { "freeOfVat": false, "reverseCharge": false }, "category": "rent_payment", "label": "Miete", "totalFixed": 120000, "totalRatio": null, "vatPercentage": "19" } ], "recipient": { "address": "", "customerNumber": null, "iban": "", "name": "", "taxId": "" }, "updatedAt": "2026-01-05T09:00:00Z", "uploadDocument": null, "uploadDocumentId": null}Dauerbuchung löschen DELETE
Löscht eine Dauerbuchung, wie in der App. Künftige Belege gehen mit, Belege bis heute nur mit `pastDocuments`. Solange ein Beleg zugeordnet ist, wird abgelehnt (`409 DocumentContractHasAssignedDocuments`). Der Body nennt `expectedUpdatedAt`. Eine Wiederholung mit gleichem Idempotency-Key wirkt nicht doppelt. Benötigt einen Schlüssel mit der Berechtigung `collections:write`.
Löschen einer Dauerbuchung prüfen GET
Zählt, was das Löschen mit den Belegen täte, und ändert nichts. Künftige Belege gehen immer mit, Belege bis heute nur mit `pastDocuments`. Zugeordnete, bezahlte und festgeschriebene bleiben in jedem Fall. Solange `assigned` größer als 0 ist, lehnt das Löschen ab. Benötigt einen Schlüssel mit der Berechtigung `read`.