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

# Updates a single item by ID (full replace).

> Updates an item owned by the current organization. PUT is a full replace: every field on the request body is written to the database verbatim. The route id wins over any id present in the body. Required fields (name, brand, companyContactPerson) must be present and non-null; missing or null returns 400. description (≤1000), userDefinedId (≤100), and name (≤200) are length-bounded; defaultQty must be non-null and ≥0. Nullable scalar fields clear the column when sent as null. Collections (categories, customFields) are written verbatim: an explicit list replaces the association set, an empty array or an omitted/null field clears the set — there is no preserve-on-null semantics (that is PATCH, dl-59708). Toggling readyForExport from false to true triggers the mandatory-custom-field check (dl-58912); when readyForExport stays true and the request supplies customFields, the same check fires to prevent silent removal of mandatory fields. Cross-organization access returns 403 (an authenticated-but-not-authorized denial), matching GET/PATCH.



## OpenAPI

````yaml https://service.my.delogue.com/openapi/external.json put /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}:
    put:
      tags:
        - Items
      summary: Updates a single item by ID (full replace).
      description: >-
        Updates an item owned by the current organization. PUT is a full
        replace: every field on the request body is written to the database
        verbatim. The route id wins over any id present in the body. Required
        fields (name, brand, companyContactPerson) must be present and non-null;
        missing or null returns 400. description (≤1000), userDefinedId (≤100),
        and name (≤200) are length-bounded; defaultQty must be non-null and ≥0.
        Nullable scalar fields clear the column when sent as null. Collections
        (categories, customFields) are written verbatim: an explicit list
        replaces the association set, an empty array or an omitted/null field
        clears the set — there is no preserve-on-null semantics (that is PATCH,
        dl-59708). Toggling readyForExport from false to true triggers the
        mandatory-custom-field check (dl-58912); when readyForExport stays true
        and the request supplies customFields, the same check fires to prevent
        silent removal of mandatory fields. Cross-organization access returns
        403 (an authenticated-but-not-authorized denial), matching GET/PATCH.
      parameters:
        - name: itemId
          in: path
          required: true
          schema:
            pattern: ^-?(?:0|[1-9]\d*)$
            type:
              - integer
              - string
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ItemUpdateDto'
          text/json:
            schema:
              $ref: '#/components/schemas/ItemUpdateDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ItemUpdateDto'
        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'
        '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:
    ItemUpdateDto:
      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/BrandItemUpdateDto'
        supplier:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemSupplierUpdateDto'
        companyContactPerson:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemContactPersonUpdateDto'
        supplierContactPerson:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemContactPersonUpdateDto'
        defaultQty:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
            - 'null'
            - number
            - string
          format: double
        nameGeneratorExtraText:
          type:
            - 'null'
            - string
        readyForExport:
          type:
            - 'null'
            - boolean
        categories:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/CategoryUpdateDto'
        customFields:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/ItemCustomFieldRequestDto'
      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
    BrandItemUpdateDto:
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int64
        customId:
          type:
            - 'null'
            - string
        name:
          type:
            - 'null'
            - string
        contactPersonId:
          type:
            - 'null'
            - string
        contactPersonName:
          type:
            - 'null'
            - string
      additionalProperties: false
    ItemSupplierUpdateDto:
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int64
        customId:
          type:
            - 'null'
            - string
        name:
          type:
            - 'null'
            - string
        contactPersonId:
          type:
            - 'null'
            - string
        contactPersonName:
          type:
            - 'null'
            - string
      additionalProperties: false
    ItemContactPersonUpdateDto:
      type: object
      properties:
        id:
          type:
            - 'null'
            - string
        name:
          type:
            - 'null'
            - string
      additionalProperties: false
    CategoryUpdateDto:
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int64
        customId:
          type:
            - 'null'
            - string
        name:
          type:
            - 'null'
            - string
      additionalProperties: false
    ItemCustomFieldRequestDto:
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int64
        value:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/CustomFieldRequestValueDto'
        values:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/CustomFieldRequestValueDto'
      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
    CustomFieldRequestValueDto:
      type: object
      properties:
        id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int64
        customId:
          type:
            - 'null'
            - string
        value:
          type:
            - 'null'
            - string
      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

````