Beleg löschen
Benötigte Berechtigung:documents:delete(Belege löschen)
Echte Wirkung
/api/document/{id}Kein Testversand aus der Dokumentation: Dieser Aufruf ist nicht als rein lesend gekennzeichnet. Nutze das Codebeispiel.
Löscht einen Beleg, wie „Löschen“ in der App, genau mit dem Ergebnis der Vorschau GET /api/document/{id}/delete-preview. Ein gelöschter Beleg lässt sich nicht wiederherstellen, und das Kontingent bleibt verbraucht. Weicht etwas von der Vorschau ab, wird nichts gelöscht: 409 VersionConflict, 409 DeletionOutcomeChanged (etwa wenn bimetrics den Beleg inzwischen festgeschrieben hat) oder 409 UploadRepresentativeChanged. Abgelehnt werden zugeordnete Belege (417 CannotDeleteMatchedDocument), ausgestellte Rechnungen (409 IssuedInvoiceNotDeletable), Belege mit an DATEV exportierten Buchungen (409 FinalizedBookingsLocked, das geht nur in der App) und mit 409 DocumentWriteLocked Belege mit erfasster Zahlung, aus einer Dauerbuchung oder Vorlage und schon stornierte. context.refusedBecause nennt den Grund. Eine Wiederholung mit gleichem Idempotency-Key löscht nichts doppelt.
Benötigt einen Schlüssel mit der Berechtigung documents:delete.
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 <= 128Mit API-Schlüssel: die Werte der Löschvorschau
application/json- body
Das Ergebnis der Vorschau, das das Löschen haben soll.
expectedOutcome?stringoutcome der Vorschau.
expectedRepresentativeId?stringcurrentRepresentativeId der Vorschau, falls vorhanden.
uuidexpectedVersion?stringversion der Vorschau.
Erfolg.
application/json- response
Was das Löschen getan hat.
documentId?stringID des Belegs.
uuidoutcome?stringdeleted, cancelled oder retained_copy.
replayed?booleanTrue bei sicherer Wiederholung eines bereits erfolgreichen Aufrufs.
reversedFinalizedMonths?array<string>|Monate (YYYY-MM), in denen festgeschriebene Buchungen storniert werden. Ist die Umsatzsteuer-Voranmeldung eines dieser Monate schon abgegeben, muss sie unter Umständen berichtigt werden. Bei einer Wiederholung leer.
curl --fail-with-body "https://app.bimetrics.de/api/document/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Authorization: Bearer $BIMETRICS_API_KEY" \ -H "Idempotency-Key: rechnung-2026-001" \ -H "Content-Type: application/json" \ -d '{}'{ "documentId": "3f6c2a10-7b1e-4c55-9a70-0d2b8e41c9f1", "outcome": "cancelled", "replayed": false, "reversedFinalizedMonths": [ "2026-09" ]}Belegdaten berichtigen PATCH
Ändert nur angegebene Kopffelder, die Belegart, die Gegenpartei und Positionen. Fälligkeit und Ende des Leistungszeitraums lassen sich mit einem leeren String entfernen. Die Gegenpartei kommt aus einem Kontakt oder aus freien Angaben. Bei Positionen lassen sich Bezeichnung, Betrag, Kategorie, Steuersatz und Steuerfall ändern, Positionen hinzufügen oder entfernen, z. B. eine Position aufteilen. expectedVersion ist der fachliche Versionsdigest; sobald sich Beträge ändern, sichert expectedTotalMinor die neue Summe. Ausgestellte Rechnungen, Belege aus Dauerbuchungen und Belege mit an DATEV exportierten Buchungen sind geschützt; andere festgeschriebene Buchungen werden storniert und neu gebucht. Löst die normale Neubuchung und GoBD-Historie aus. Benötigt einen Schlüssel mit der Berechtigung `documents:write`.
Originaldatei eines Belegs laden GET
Liefert die hochgeladene Originaldatei als Binärdaten. PDFs und Bilder kommen mit ihrem Typ (`application/pdf`, `image/png`, `image/jpeg`), alles andere, etwa XML-E-Rechnungen, als `application/octet-stream`. Der `ETag` ist der SHA-256 der Datei (Hex, ohne Anführungszeichen); mit genau diesem Wert in `If-None-Match` antwortet die Route mit `304` ohne Inhalt. `404`, wenn der Beleg keine Originaldatei hat oder gelöscht ist. Benötigt einen Schlüssel mit der Berechtigung `read`.