bimetricsEntwickler
Belege

Originaldatei eines Belegs laden

Als Markdown ansehen

Benötigte Berechtigung:read(Daten lesen)

GET
/api/document/{id}/content

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.

Unveränderte Datei (304)

Das Beispiel sendet kein If-None-Match und lädt die Datei immer. Schickst du den ETag einer früheren Antwort in If-None-Match mit und ist die Datei unverändert, antwortet die API mit 304 ohne Inhalt und ohne ETag. Behalte dann die gespeicherte Datei, statt sie mit der leeren Antwort zu überschreiben. Ein vollständiges Beispiel steht im Monatsexport.

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 Belegs (UUID).

Formatuuid

Query-Parameter

download?string

Beliebiger nicht leerer Wert, z. B. 1: Die Antwort trägt Content-Disposition: attachment mit dem ursprünglichen Dateinamen.

Header-Parameter

If-None-Match?string

ETag einer früheren Antwort; stimmt er, antwortet die Route mit 304.

Antworten

Die Originaldatei.

response?unknown
Beispielanfrage
curl --fail-with-body "https://app.bimetrics.de/api/document/497f6eca-6276-4993-bfeb-53cbbbba6f08/content" \  -H "Authorization: Bearer $BIMETRICS_API_KEY" \  --output beleg.pdf
Beispielantwort
null

Beleg löschen DELETE

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

Löschen eines Belegs prüfen GET

Sagt, was `DELETE /api/document/{id}` gerade tun würde, und ändert nichts: `outcome` `deleted` (Beleg, Datei und offene Buchungen verschwinden aus bimetrics, es gibt keinen Papierkorb), `cancelled` (festgeschriebene Buchungen bleiben und werden in ihren Monaten storniert, `reversedFinalizedMonths`, der Beleg bleibt als storniert stehen) oder `retained_copy` (eine hochgeladene Kopie derselben Datei übernimmt, Beleg, Buchungen und Zuordnung bleiben). Geht es nicht, nennt `refusedBecause` den Grund. Sende `version`, `outcome` und `currentRepresentativeId` beim Löschen unverändert mit. Benötigt einen Schlüssel mit der Berechtigung `read`.