> ## Documentation Index
> Fetch the complete documentation index at: https://developer.comstruct.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Konto-Dimensions-Zuweisungen (Bulk) teilweise aktualisieren

> **Erforderliche Berechtigungen:** `invoices:write`

Aktualisiert nur die angegebenen Dimensionen pro Konto; andere Zuweisungen bleiben erhalten. Im Gegensatz zu POST werden hier nur referenzierte Dimensionen ersetzt. Änderungen werden in der Rechnungshistorie erfasst.

Pro Änderungseintrag: für Options-Dimensionen `option_id` setzen (oder `null`, um zu löschen); für Text-Dimensionen `text_value` setzen (oder `null`, um zu löschen). `option_id` und `text_value` nicht gleichzeitig setzen.




## OpenAPI

````yaml PATCH /invoice-dimensions/assignments/account/bulk
openapi: 3.0.3
info:
  title: comstruct Public API
  description: >
    Die comstruct API ist eine umfassende und flexible Lösung zur Optimierung
    des Materialbeschaffungsprozesses für Unternehmen. Diese API bietet eine
    einfache Schnittstelle für Entwickler, um auf Materialbeschaffungsdaten
    zuzugreifen und diese zu verwalten, einschließlich Lieferanteninformationen,
    Lieferungen und Projekte.


    ## Erste Schritte

    Um Zugang zur comstruct API zu erhalten, wenden Sie sich bitte an Ihren
    zuständigen Customer Success Manager. Unser Expertenteam steht Ihnen mit
    erstklassigem Support zur Verfügung, um Ihnen zu helfen, das Beste aus
    unserer API herauszuholen.


    ## Authentifizierung

    Alle API-Endpunkte unter `/v1` erfordern eine Authentifizierung mittels
    API-Schlüssel im `x-api-key`-Header. Jeder API-Schlüssel hat spezifische
    Berechtigungen (Scopes), die bestimmen, welche Endpunkte und Operationen
    verfügbar sind. Die Authentifizierung wird durch Middleware durchgesetzt,
    die den API-Schlüssel und die Berechtigungen für jede Anfrage validiert.


    Kalender-Endpunkte unter `/calendars` verwenden Token-basierte
    Authentifizierung anstelle von API-Schlüsseln.


    ## Datenformate

    - Alle Zeitstempel sind im ISO 8601-Format (UTC)

    - Geldbeträge werden als Dezimalzahlen dargestellt

    - IDs sind UUIDs, sofern nicht anders angegeben


    ## Anfragegrößenbeschränkungen

    - PDF-Rechnungsverarbeitung, benutzerdefinierte Rechnungsverarbeitung und
    Workflow-Verarbeitung: 32MiB

    - Alle anderen Endpunkte: 10MiB


    ## Fehlerbehandlung

    Die API verwendet Standard-HTTP-Statuscodes und gibt detaillierte
    Fehlermeldungen im JSON-Format zurück. Weitere Details finden Sie in den
    Fehlerschemas.


    ## Integrationsmuster

    - **SAP-Integration**: Spezialisierte Endpunkte für SAP-ERP-Systeme

    - **Projektverwaltung**: Vollständiges Projektlebenszyklusmanagement mit
    Benutzerrollen

    - **Lieferverfolgung**: Unterstützung mehrerer Lieferscheinformate
    (OpenTrans, PAHM, Q-Point, benutzerdefiniert)

    - **Rechnungsverarbeitung**: Automatisierte Rechnungsanalyse und
    -validierung mit KI/GPT-Unterstützung

    - **Auftragsverwaltung**: IDS-Auftragsverarbeitung mit XML-Parsing und
    Projektkalenderintegration

    - **Kalenderintegration**: Separate Kalender-Endpunkte für
    iCalendar-Abonnement-Feeds
  version: 1.0.9
  license:
    name: Proprietary
    url: https://comstruct.com
  contact:
    name: comstruct ICT GmbH
    url: https://comstruct.com
    email: support@comstruct.com
  termsOfService: https://comstruct.com/datenschutzerklarung/
  x-logo:
    url: https://app.comstruct.com/logo-light-text.png
    altText: comstruct logo
servers:
  - url: https://api.comstruct.com/v1
    description: Haupt-API-Endpunkte (erfordert API-Schlüssel-Authentifizierung)
    variables: {}
  - url: https://api.comstruct.com
    description: Basisserver für Kalender- und IDS-Endpunkte (andere Authentifizierung)
    variables: {}
security:
  - ApiKey: []
tags:
  - name: Projects
    description: Endpunkte für Projekte.
  - name: Projects (SAP)
    description: SAP-spezifische Projekt-Endpunkte.
  - name: Project Regions
    description: Endpunkte für die Verwaltung von Projektregionen.
  - name: Deliveries
    description: Endpunkte für Lieferungen.
  - name: Deliveries (Supplier)
    description: Lieferantenspezifische Liefer-Endpunkte.
  - name: Accounts
    description: Endpunkte für die Verwaltung von Sachkonten.
  - name: Payment Terms
    description: Endpunkte für die Verwaltung von Zahlungsbedingungen.
  - name: Tax Codes
    description: Endpunkte für die Verwaltung von Steuercodes.
  - name: Company Codes
    description: Endpunkte für die Verwaltung von Buchungskreisen (juristische Einheiten).
  - name: Suppliers
    description: Endpunkte für die Verwaltung von Lieferanten.
  - name: Purchase Orders
    description: Endpunkte für Bestellungen.
  - name: Purchase Orders (SAP)
    description: SAP-spezifische Bestellungs-Endpunkte.
  - name: Orders (Supplier)
    description: >-
      Lieferantenspezifische Bestellungs-Endpunkte (Bestätigung, Ablehnung,
      Bearbeitung).
  - name: Suppliers (SAP)
    description: SAP-spezifische Lieferanten-Endpunkte.
  - name: Invoices
    description: Endpunkte für Rechnungen.
  - name: Invoices (Supplier)
    description: Lieferantenspezifische Rechnungs-Endpunkte.
  - name: Invoices (SAP)
    description: SAP-spezifische Rechnungs-Endpunkte.
  - name: Invoice Dimensions
    description: >
      Rechnungs-Dimensionen (benutzerdefinierte Eigenschaften) und Zuweisungen
      auf Rechnung (`header`), Position (`line_item`) oder Kontierung
      (`account`).


      Dimensionen haben den Typ `option` (vordefinierte Werte) oder `text`
      (Freitext über `dimension_id` + `text_value`). Bulk-Konto-POST
      (`/assignments/account/bulk`) unterstützt nur Options-Zuweisungen über
      `option_ids`; Freitext auf Kontoebene über Einzel-POST, PATCH-Bulk oder
      Positions-Bulk.
  - name: Workflows
    description: Endpunkte für Workflow- und Prozessmanagement.
  - name: Calendar
    description: Kalender-Abonnement-Endpunkte mit separater Authentifizierung.
  - name: Orders
    description: Endpunkte für Auftragsverarbeitung und -verwaltung.
paths:
  /invoice-dimensions/assignments/account/bulk:
    patch:
      tags:
        - Invoice Dimensions
      summary: Konto-Dimensions-Zuweisungen (Bulk) teilweise aktualisieren
      description: >
        **Erforderliche Berechtigungen:** `invoices:write`


        Aktualisiert nur die angegebenen Dimensionen pro Konto; andere
        Zuweisungen bleiben erhalten. Im Gegensatz zu POST werden hier nur
        referenzierte Dimensionen ersetzt. Änderungen werden in der
        Rechnungshistorie erfasst.


        Pro Änderungseintrag: für Options-Dimensionen `option_id` setzen (oder
        `null`, um zu löschen); für Text-Dimensionen `text_value` setzen (oder
        `null`, um zu löschen). `option_id` und `text_value` nicht gleichzeitig
        setzen.
      operationId: patchAccountDimensionAssignmentsBulk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchAccountDimensionsBulkRequest'
      responses:
        '200':
          description: Zuweisungen aktualisiert
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DimensionAssignment'
        '400':
          description: Ungültige Eingabe
        '401':
          description: Nicht autorisiert
        '403':
          description: Keine Berechtigung
        '404':
          description: Rechnung, Konto oder Option nicht gefunden
      security:
        - ApiKey:
            - invoices:write
components:
  schemas:
    PatchAccountDimensionsBulkRequest:
      type: object
      required:
        - invoice_id
        - account_dimension_changes
      properties:
        invoice_id:
          type: integer
        account_dimension_changes:
          type: array
          items:
            type: object
            required:
              - changes
            description: >-
              Pro Konto entweder `invoice_account_id` (gespeichertes Konto) oder
              `invoice_account_index` (Index bei temporären Konten) angeben.
            properties:
              invoice_account_id:
                type: string
                format: uuid
              invoice_account_index:
                type: integer
                nullable: true
                description: >-
                  0-basierter Index der Kontierung auf der Rechnung, wenn noch
                  keine persistierte `invoice_account_id` existiert.
              changes:
                type: array
                items:
                  type: object
                  required:
                    - dimension_id
                  properties:
                    dimension_id:
                      type: string
                      format: uuid
                    option_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        Bei Options-Dimensionen die neue Option; `null` löscht
                        die Options-Zuweisung für diese Dimension.
                    text_value:
                      type: string
                      nullable: true
                      description: >-
                        Bei Text-Dimensionen der neue Freitext; `null` löscht
                        die Text-Zuweisung. Nicht gleichzeitig mit gesetztem
                        `option_id` verwenden.
    DimensionAssignment:
      type: object
      properties:
        id:
          type: string
          format: uuid
        dimension_option_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            Gesetzt bei Zuweisungen zu Options-Dimensionen; bei
            Freitext-Zuweisungen `null`.
        dimension_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            Dimension-UUID bei Freitext-Zuweisungen (`type: text`); sonst oft
            `null` oder redundant zur Option.
        text_value:
          type: string
          nullable: true
          description: Freitextwert bei Text-Dimensionen; sonst `null`.
        invoice_account_id:
          type: string
          format: uuid
          nullable: true
        invoice_account_index:
          type: integer
          nullable: true
          description: >-
            Index der Kontierung bei noch nicht gespeicherten Konten (temporäre
            IDs); alternativ zu `invoice_account_id`.
        invoice_id:
          type: integer
          nullable: true
        invoice_line_item_index:
          type: integer
          nullable: true
        created_at:
          type: string
          format: date-time
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: >
        API-Schlüssel zur Authentifizierung. Kontaktieren Sie Ihren Customer
        Success Manager, um einen API-Schlüssel zu erhalten.


        Jeder Endpunkt erfordert spezifische Berechtigungen (Scopes); die
        erforderlichen Scopes werden pro Endpunkt angezeigt.

````