bimetricsEntwickler
Layouts

Layout anlegen

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.
post/api/layouts

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

Legt ein Layout aus einer Vorlage des Katalogs an, wie „Neues Layout“ im Editor. Mit documentKind gilt es sofort für diese Belegart, auch für ihre offenen Entwürfe; das erste Layout einer Firma gilt für alle Belegarten. Die Version davor hält den bisherigen Stand fest. 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.

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

preset: ID einer Vorlage aus dem Katalog. Optional documentKind (eine Belegart außer *) und operations (höchstens 20, wie bei changeLayout, ohne rename und restore).

application/json
  1. body

Antworten

Erfolg.

application/json
  1. response

Ein Rechnungslayout.

appliesTo?array<string>|

Belegarten, für die das Layout gilt; * für alle ohne eigenes. Leer, wenn es für keine gilt.

archivedAt?|

Archiviert seit; null, solange nicht archiviert.

Formatdate-time
editable?boolean

False für das bisherige Layout classic: Es lässt sich nicht ändern.

id?string

ID des Layouts (UUID); standard für das Layout einer Firma ohne eigenes.

module?string

Modul mit Version, etwa modern@2. classic@1 ist das bisherige Layout ohne Einstellungen.

name?string

Name, etwa „Angebote“.

own?boolean

False, solange die Firma kein eigenes Layout hat; die erste Änderung legt es an.

spec?

Die Gestaltung.

version?|

Aktuelle Version; null ohne eigenes Layout.

Beispielanfrage
curl --fail-with-body "https://app.bimetrics.de/api/layouts" \  -H "Authorization: Bearer $BIMETRICS_API_KEY" \  -H "Idempotency-Key: rechnung-2026-001" \  -H "Content-Type: application/json" \  -d '{"documentKind":"proposal","operations":[{"id":"friendly","op":"recipe"}],"preset":"modern"}'
Beispielantwort
{  "appliesTo": [    "proposal"  ],  "archivedAt": null,  "editable": true,  "id": "bab564a1-86e9-45aa-98d7-2410bd59ba4b",  "module": "modern@2",  "name": "Angebote",  "own": true,  "spec": {    "blocks": {},    "brandColor": null,    "module": "modern",    "preset": "modern",    "recipe": "friendly",    "schema": 2,    "values": {      "footer.pageNumber": "auto",      "footer.titles": false,      "header.rule": false,      "items.head.style": "brand",      "page.margin.left": 25,      "title.brand": true    }  },  "version": {    "actor": {      "membershipId": "53cd10a9-c864-4dc3-a777-9860d59efe6c",      "name": "Jana Hansen"    },    "check": "passed",    "createdAt": "2026-11-04T10:15:00Z",    "id": "e1c5d5b2-3f0e-4f43-9a7c-2b7f0d5c8a11",    "number": 2,    "origin": "api",    "originRef": null,    "parentId": "5b0a3c7e-9d84-4e1f-a6b2-8c3d4e5f6a70",    "summary": "Vorlage Modern verwendet, Rezept Freundlich"  }}