bimetricsEntwickler
Kostenstellen

Kostenstelle oder Verteilung anlegen

Als Markdown ansehen

Benötigte Berechtigung:company:write(Firmendaten ändern)

Echte Wirkung

Ändert Daten der Firma; wird atomar mit Idempotenzbeleg und Herkunft protokolliert.
post/api/cost-centers

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

Legt eine Kostenstelle (kind center, mit code und name) oder eine Verteilung an (kind distribution, mit name und shares), wie in den Einstellungen der App. Die Nummer ist die KOST1 im DATEV-Export: 1 bis 8 Ziffern ohne führende Null oder 1 bis 8 Buchstaben ohne Umlaute, je Firma eindeutig, auch gegenüber archivierten, ohne Unterschied zwischen Groß- und Kleinschreibung. Die Steuerberatung muss sie in DATEV genauso anlegen, sonst führt DATEV die Buchungen als „nicht berücksichtigt“. Eine Verteilung braucht mindestens zwei verschiedene Kostenstellen, die nicht archiviert sind, und ihre Anteile ergeben zusammen 10000 Basispunkte (100 %). Verstößt die Anfrage gegen eine Regel, antwortet die Route mit 400 CostCenterRejected, context.field nennt das Feld und context.message den Satz der App; eine vergebene Nummer ergibt 409 CostCenterRejected. Bei einer Wiederholung schickst du denselben Idempotency-Key.

Benötigt einen Schlüssel mit der Berechtigung company: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

cost center or distribution

application/json
  1. body

Kostenstelle oder Verteilung zum Anlegen oder Ändern.

code?string

Nur bei einer Kostenstelle: die KOST1 im DATEV-Export, 1 bis 8 Ziffern ohne führende Null oder 1 bis 8 Buchstaben ohne Umlaute, je Firma eindeutig. Fehlt bei einer Verteilung.

expectedUpdatedAt?string

Nur beim Ändern: das zuletzt gelesene updatedAt, unverändert mit allen Nachkommastellen. Für API-Schlüssel Pflicht.

Formatdate-time
kind?string

Beim Anlegen Pflicht: center für eine Kostenstelle, distribution für eine Verteilung. Beim Ändern ohne Wirkung.

Wert in"center""distribution"
name?string

Name, höchstens 60 Zeichen, etwa „Standort Nord“.

shares?array<>

Nur bei einer Verteilung: die Kostenstellen mit ihren Anteilen, zusammen 10000 Basispunkte. Fehlt bei einer Kostenstelle.

Antworten

Erfolg.

application/json
  1. response

Kostenstelle oder Verteilung der Firma.

archivedAt?string

Archiviert seit diesem Zeitpunkt: lässt sich nicht mehr auswählen, Belege behalten sie. Fehlt, solange aktiv.

Formatdate-time
code?string

Nur bei einer Kostenstelle: die KOST1 im DATEV-Export, 1 bis 8 Ziffern ohne führende Null oder 1 bis 8 Buchstaben ohne Umlaute, je Firma eindeutig. Fehlt bei einer Verteilung.

companyId?string

ID der Firma.

Formatuuid
createdAt?string

Anlage in bimetrics.

Formatdate-time
documents?integer

Zahl der Belege, die sie tragen, ohne gelöschte.

id?string

ID der Kostenstelle oder Verteilung.

Formatuuid
kind?string

center für eine Kostenstelle, distribution für eine Verteilung.

Wert in"center""distribution"
name?string

Name, höchstens 60 Zeichen, etwa „Standort Nord“.

shares?array<>

Nur bei einer Verteilung: die Kostenstellen mit ihren Anteilen, zusammen 10000 Basispunkte. Fehlt bei einer Kostenstelle.

updatedAt?string

Letzte Änderung.

Formatdate-time
used?boolean

true, sobald ein Beleg oder eine Buchung sie trägt, auch über eine Verteilung oder bei einem gelöschten Beleg mit Buchungen. Dann stehen Nummer und Anteile fest.

Beispielanfrage
curl --fail-with-body "https://app.bimetrics.de/api/cost-centers" \  -H "Authorization: Bearer $BIMETRICS_API_KEY" \  -H "Idempotency-Key: rechnung-2026-001" \  -H "Content-Type: application/json" \  -d '{}'
Beispielantwort
{  "code": "100",  "companyId": "9c388e1f-04a6-4770-80bd-66cd98dd00d5",  "createdAt": "2026-11-12T08:00:00Z",  "documents": 12,  "id": "5b0f8c3e-2a71-4d9e-8f16-7c4a9e2d3b58",  "kind": "center",  "name": "Standort Nord",  "updatedAt": "2026-11-12T08:00:00Z",  "used": true}