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

# Partially updates a single item by ID (RFC 6902 JSON Patch).

> Applies a JSON Patch document (RFC 6902) to an item owned by the current organization. PATCH is a partial update: a field an operation touches is written, an omitted field is preserved (preserve-on-omit). A 'replace' to null on a nullable scalar (customId, description, nameGeneratorExtraText) clears that column; supply a non-null value or omit the field to preserve it. Collections (categories, customFields) follow RFC 6902 replace-set semantics when touched: the resulting array is the full desired set — 'replace /categories []' clears all associations, 'replace /categories [x]' makes x the sole association — while an omitted collection preserves all existing associations. The route id is authoritative: a 'replace /id' to a different value returns 409 and the body id is otherwise ignored. Required fields (name, brand, companyContactPerson) cannot be cleared and defaultQty must stay non-null and >= 0 — violating this returns 400. Supplier users may only patch /description; touching any other field returns 403. Touching /readyForExport (possible false->true flip) or /customFields triggers the mandatory-custom-field check (DL-58912). A failed 'test' operation returns 409; any other operation that cannot be applied to the resource returns 422. Cross-organization access returns 403 (an authenticated-but-not-authorized denial), matching GET.



## OpenAPI

````yaml https://service.my.delogue.com/openapi/external.json patch /api/items/{itemId}
openapi: 3.1.1
info:
  title: Delogue External API - (Production)
  description: Integration endpoints for Delogue API
  version: 1.0.0
servers:
  - url: >-
      http://ca-delogue-service-prod.bravepebble-62e34dbe.westeurope.azurecontainerapps.io/
security: []
tags:
  - name: SubSuppliers
  - name: StyleSupplierFacilities
  - name: StyleSkus
  - name: Styles
  - name: SampleRequests
  - name: StyleRelations
  - name: Style Prices
  - name: StyleItems
  - name: StyleFiles
  - name: StyleCustomFields
  - name: StyleContacts
  - name: StyleCategories
  - name: StyleCareInstructions
  - name: SizeRanges
  - name: Seasons
  - name: SampleTypes
  - name: Organizations
  - name: MeasurementCharts
  - name: Items
  - name: ItemCategories
  - name: Groups
  - name: Facilities
  - name: ComplianceCustomFields
  - name: ComplianceCategories
  - name: Color Groups
  - name: Colors
  - name: CareInstructions
  - name: CareInstructionMaterials
  - name: CareInstructionLayers
  - name: CareInstructionIcons
  - name: Brands
  - name: Barcodes
paths:
  /api/items/{itemId}:
    patch:
      tags:
        - Items
      summary: Partially updates a single item by ID (RFC 6902 JSON Patch).
      description: >-
        Applies a JSON Patch document (RFC 6902) to an item owned by the current
        organization. PATCH is a partial update: a field an operation touches is
        written, an omitted field is preserved (preserve-on-omit). A 'replace'
        to null on a nullable scalar (customId, description,
        nameGeneratorExtraText) clears that column; supply a non-null value or
        omit the field to preserve it. Collections (categories, customFields)
        follow RFC 6902 replace-set semantics when touched: the resulting array
        is the full desired set — 'replace /categories []' clears all
        associations, 'replace /categories [x]' makes x the sole association —
        while an omitted collection preserves all existing associations. The
        route id is authoritative: a 'replace /id' to a different value returns
        409 and the body id is otherwise ignored. Required fields (name, brand,
        companyContactPerson) cannot be cleared and defaultQty must stay
        non-null and >= 0 — violating this returns 400. Supplier users may only
        patch /description; touching any other field returns 403. Touching
        /readyForExport (possible false->true flip) or /customFields triggers
        the mandatory-custom-field check (DL-58912). A failed 'test' operation
        returns 409; any other operation that cannot be applied to the resource
        returns 422. Cross-organization access returns 403 (an
        authenticated-but-not-authorized denial), matching GET.
      parameters:
        - name: itemId
          in: path
          required: true
          schema:
            pattern: ^-?(?:0|[1-9]\d*)$
            type:
              - integer
              - string
            format: int64
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/JsonPatchDocument'
        required: true
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiResponseOfItemDto'
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfItemDto'
            text/json:
              schema:
                $ref: '#/components/schemas/ApiResponseOfItemDto'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '409':
          description: Conflict
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
      security:
        - {}
components:
  schemas:
    JsonPatchDocument:
      type: array
      items:
        type: object
        oneOf:
          - required:
              - op
              - path
              - value
            type: object
            properties:
              op:
                enum:
                  - add
                  - replace
                  - test
                type: string
              path:
                type: string
              value: {}
            additionalProperties: false
          - required:
              - op
              - path
              - from
            type: object
            properties:
              op:
                enum:
                  - move
                  - copy
                type: string
              path:
                type: string
              from:
                type: string
            additionalProperties: false
          - required:
              - op
              - path
            type: object
            properties:
              op:
                enum:
                  - remove
                type: string
              path:
                type: string
            additionalProperties: false
    ApiResponseOfItemDto:
      required:
        - status
        - code
        - data
      type: object
      properties:
        status:
          $ref: '#/components/schemas/ApiResponseStatus'
        code:
          type: string
        data:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemDto'
      additionalProperties: false
    ApiErrorResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/ApiResponseStatus'
        code:
          type: string
        error:
          $ref: '#/components/schemas/ErrorWrapper'
      additionalProperties: false
    ApiResponseStatus: {}
    ItemDto:
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int64
        name:
          type:
            - 'null'
            - string
        customId:
          type:
            - 'null'
            - string
        description:
          type:
            - 'null'
            - string
        brand:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemBrandDto'
        organization:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemOrganizationDto'
        supplier:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemSupplierDto'
        companyContactPerson:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemContactPersonDto'
        supplierContactPerson:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemContactPersonDto'
        adminUnit:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemAdminUnitDto'
        logo:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemLogoDto'
        lastUpdated:
          type: string
          format: date-time
        deadline:
          type:
            - 'null'
            - string
          format: date-time
        etd:
          type:
            - 'null'
            - string
          format: date-time
        erpItemId:
          type:
            - 'null'
            - string
        defaultQty:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
            - number
            - string
          format: double
        nameGeneratorExtraText:
          type:
            - 'null'
            - string
        physicalReferenceNumber:
          type:
            - 'null'
            - string
        categories:
          type: array
          items:
            $ref: '#/components/schemas/ItemCategoryDto'
        customFields:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldResponseDto'
        properties:
          type: array
          items:
            type: string
      additionalProperties: false
    ErrorWrapper:
      type: object
      properties:
        details:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetailDto'
      additionalProperties: false
    ItemBrandDto:
      required:
        - id
        - name
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int64
        name:
          type:
            - 'null'
            - string
      additionalProperties: false
    ItemOrganizationDto:
      required:
        - id
        - name
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int32
        name:
          type:
            - 'null'
            - string
      additionalProperties: false
    ItemSupplierDto:
      required:
        - id
        - name
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int32
        name:
          type:
            - 'null'
            - string
      additionalProperties: false
    ItemContactPersonDto:
      type: object
      properties:
        id:
          type:
            - 'null'
            - string
        name:
          type:
            - 'null'
            - string
      additionalProperties: false
    ItemAdminUnitDto:
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int64
        name:
          type:
            - 'null'
            - string
        properties:
          type: array
          items:
            type: string
      additionalProperties: false
    ItemLogoDto:
      type: object
      properties:
        id:
          type:
            - 'null'
            - string
        url:
          type:
            - 'null'
            - string
      additionalProperties: false
    ItemCategoryDto:
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int64
        name:
          type:
            - 'null'
            - string
        state:
          $ref: '#/components/schemas/ItemCategoryState'
        usedInItems:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int32
        beginDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        properties:
          type: array
          items:
            type: string
      additionalProperties: false
    CustomFieldResponseDto:
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int64
        customId1:
          type:
            - 'null'
            - string
        type:
          type:
            - 'null'
            - string
        name:
          type:
            - 'null'
            - string
        value:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/CustomFieldValueDto'
        values:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/CustomFieldValueDto'
        perColorValues:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/CustomFieldPerColorValueDto'
      additionalProperties: false
    ErrorDetailDto:
      required:
        - type
        - field
        - value
      type: object
      properties:
        type:
          type: string
        field:
          type:
            - 'null'
            - string
        value:
          type:
            - 'null'
            - string
      additionalProperties: false
    ItemCategoryState: {}
    CustomFieldValueDto:
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int64
        value:
          type:
            - 'null'
            - string
        customId:
          type:
            - 'null'
            - string
      additionalProperties: false
    CustomFieldPerColorValueDto:
      type: object
      properties:
        styleColorId:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int64
        value:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/CustomFieldValueDto'
        values:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/CustomFieldValueDto'
      additionalProperties: false

````