bimetricsEntwickler
Logo

Rechnungslogo hochladen

Als Markdown ansehen

Benötigte Berechtigung:layout:write(Layouts und Logo ändern)

Echte Wirkung

Ändert Daten der Firma; wird atomar mit Idempotenzbeleg und Herkunft protokolliert.
put/api/company/logos/invoice

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

Lädt ein neues Rechnungslogo hoch wie in der App. Es gilt sofort für neue Belege und offene Entwürfe; das bisherige Logo samt Vorschlag und Original wird gelöscht, ausgestellte Belege behalten ihres. bimetrics legt das Original daneben und macht, wenn es etwas zu verbessern gibt, einen Vorschlag (invoice.proposal). Höchstens 20 Uploads je Firma und Tag, Rechnungslogo und App-Zeichen zusammen (429 LogoUploadLimit). Es zählt wie ein Beleg-Upload zu den 10 Uploads je Minute. Idempotency-Key bei Wiederholung unverändert senden.

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

Authentifizierung

headerAuthentifizierungBearer <bm_…>

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

Query-Parameter

expectedLogoId?string

Optional: die ID des aktiven Bildes wie gelesen (invoice.active.id beim Rechnungslogo, app.id beim App-Zeichen), leer, wenn es keins gab. Hat sich das Logo seitdem geändert, antwortet die Route mit 409 LogoChanged und ändert nichts. Ohne den Parameter prüft die Route nichts.

Header-Parameter

Idempotency-Key*string

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

Muster^[!-~]+$
Länge1 <= length <= 128

Request-Body

Die Datei als PNG oder JPG, höchstens 2 MB, 200 bis 5000 px an der längeren Seite, als ganzer Anfrageinhalt (application/octet-stream).

body*unknownapplication/octet-stream

Antworten

Erfolg.

application/json
  1. response

Das Logo der Firma. Ändern geht mit layout:write und gilt für alle Layouts.

app?|

Das App-Zeichen; null für das bimetrics-Zeichen.

enabled?boolean

Immer true, das Logo lässt sich ändern.

frame?

Der Logo-Rahmen des Layouts der Firma.

invoice?|

Das Rechnungslogo; null ohne Logo.

Beispielanfrage
curl --fail-with-body "https://app.bimetrics.de/api/company/logos/invoice" -X PUT \  -H "Authorization: Bearer $BIMETRICS_API_KEY" \  -H "Idempotency-Key: rechnung-2026-001"
Beispielantwort
{  "app": {    "dark": {      "blob": {        "id": "3e9b1c5a-7d24-4f8e-b6a0-1c9d3e5f70e5",        "sha256": "e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5"      }    },    "id": "8a41e7d3-6c25-4b9f-a0d8-2e5f7c3b1d94",    "light": {      "blob": {        "id": "3e9b1c5a-7d24-4f8e-b6a0-1c9d3e5f70d4",        "sha256": "d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4"      }    },    "source": "mark"  },  "enabled": true,  "frame": {    "heightMm": 16,    "layout": "modern",    "widthMm": 48  },  "invoice": {    "active": {      "blob": {        "id": "3e9b1c5a-7d24-4f8e-b6a0-1c9d3e5f70a1",        "sha256": "a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1"      },      "dpiInFrame": 317,      "height": 600,      "id": "5f0c9f1e-2b7a-4c55-9d1a-7d2f5b0e3a41",      "variant": "fitted",      "width": 1200    },    "canRestoreOriginal": false,    "facts": {      "aspectRatio": 3,      "color": "#1F5F5B",      "contrastOnWhite": 9.4    },    "hints": [      "wide_border"    ],    "inverse": {      "blob": {        "id": "3e9b1c5a-7d24-4f8e-b6a0-1c9d3e5f70b2",        "sha256": "b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2"      },      "height": 600,      "width": 1200    },    "proposal": {      "blob": {        "id": "3e9b1c5a-7d24-4f8e-b6a0-1c9d3e5f70c3",        "sha256": "c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3"      },      "dpiInFrame": 635,      "fixes": [        "crop"      ],      "height": 400,      "id": "c2d6a8e4-91b3-4f0a-8e5c-3b7d1a9f6e20",      "width": 1200    }  }}