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

# Update product group detail

> Replaces all fields of a product group detail.

Update is a **full replace**: if `ParentGroupDetailId` is not sent, the parent is removed and the detail becomes selectable under every parent.

While other details use this detail as their parent, two fields are locked so the hierarchy cannot break:

* `ParentGroupDetailId` cannot be changed or removed (`2109`).
* `GroupNumber` cannot be changed (`2108`; this also applies while the detail is used by a product).

To change the parent, first move those child details under another parent or delete them.


## OpenAPI

````yaml api-reference/openapi.json PUT /api/v1/products/groups/{groupDetailId}
openapi: 3.1.1
info:
  title: Noyax API
  description: Server-to-server API for integrations to access Noyax data.
  version: '1.0'
servers:
  - url: https://api.noyax.com
security:
  - Bearer: []
tags:
  - name: Sections
  - name: Warehouses
  - name: Product Critical Stock
  - name: Product groups
  - name: Product Parameter Definitions
  - name: Product Parameters
  - name: Product Prices
  - name: Products
  - name: Cities
  - name: Countries
  - name: Currencies
  - name: Districts
  - name: Shipment Definitions
  - name: Units
  - name: VAT rates
  - name: Customer Addresses
  - name: Customer Bank Accounts
  - name: Customer Definitions
  - name: Customer Group Members
  - name: Customer Links
  - name: Customer Parameters
  - name: Customer Representatives
  - name: Customers
  - name: Customer Statement
  - name: Customer Telephones
paths:
  /api/v1/products/groups/{groupDetailId}:
    put:
      tags:
        - Product groups
      summary: Update product group detail
      description: >-
        Replaces all fields of the group detail. Fields that are not sent are
        cleared, so sending no ParentGroupDetailId makes the detail selectable
        under every parent. GroupNumber and ParentGroupDetailId cannot be
        changed while other details use this detail as their parent.
      parameters:
        - name: groupDetailId
          in: path
          description: Product group detail ID.
          required: true
          schema:
            type: string
            format: uuid
        - name: X-UserID
          in: header
          description: >-
            ID of the Noyax user the request is made on behalf of. Written to
            the audit fields of created, updated and deleted records.
          required: true
          schema:
            minimum: 1
            type: integer
            format: int32
        - name: X-CompanyID
          in: header
          description: >-
            ID of the company. The user must be assigned to this company. All
            reads and writes are limited to this company.
          required: true
          schema:
            minimum: 1
            type: integer
            format: int32
        - name: X-PeriodID
          in: header
          description: >-
            ID of the accounting period. Optional for customer endpoints; if
            sent, it is written to created records.
          schema:
            minimum: 1
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductGroupDetailRequestDto'
          text/json:
            schema:
              $ref: '#/components/schemas/ProductGroupDetailRequestDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ProductGroupDetailRequestDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataResultOfProductGroupDetailDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '2108'
                Message: >-
                  GroupNumber cannot be changed while the detail has child
                  details or is used by products.
                Errors:
                  - Code: '2108'
                    Message: >-
                      GroupNumber cannot be changed while the detail has child
                      details or is used by products.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0102'
                Message: Token has expired. Obtain a new token using the refresh token.
                Errors:
                  - Code: '0102'
                    Message: >-
                      Token has expired. Obtain a new token using the refresh
                      token.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0110'
                Message: You do not have permission for this operation.
                Errors:
                  - Code: '0110'
                    Message: You do not have permission for this operation.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '2100'
                Message: Product group detail not found.
                Errors:
                  - Code: '2100'
                    Message: Product group detail not found.
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0120'
                Message: Daily request limit (10000) exceeded.
                Errors:
                  - Code: '0120'
                    Message: Daily request limit (10000) exceeded.
components:
  schemas:
    ProductGroupDetailRequestDto:
      type: object
      properties:
        GroupNumber:
          type: integer
          description: >-
            Required. Which product group the detail belongs to: 1-5, matching
            GroupDetailId1...GroupDetailId5 of a product.
          format: int32
          example: 2
        Name:
          type:
            - 'null'
            - string
          description: >-
            Required. Detail name, unique within the group. At most 50
            characters.
          example: SEDAN
        ParentGroupDetailId:
          type:
            - 'null'
            - string
          description: >-
            ID of the parent detail, which must belong to the previous group
            (GroupNumber - 1). Leave it empty to make the detail selectable
            under every parent. Group 1 details cannot have a parent.
          format: uuid
    DataResultOfProductGroupDetailDto:
      required:
        - Success
        - ResultCode
        - Data
      type: object
      properties:
        Success:
          type: boolean
          description: Whether the operation succeeded.
          example: true
        ResultCode:
          type: string
          description: >-
            "0000" on success. On failure, the code of the first error; all
            errors are listed in Errors.
          example: '0000'
        Message:
          type:
            - 'null'
            - string
          description: >-
            Error message when Success is false. Messages of all errors are
            joined into a single text.
        Data:
          $ref: '#/components/schemas/ProductGroupDetailDto'
    ErrorResult:
      type: object
      properties:
        Success:
          type: boolean
          description: Whether the operation succeeded.
          example: false
        ResultCode:
          type:
            - 'null'
            - string
          description: >-
            "0000" on success. On failure, the code of the first error; all
            errors are listed in Errors.
        Message:
          type:
            - 'null'
            - string
          description: >-
            Error message when Success is false. Messages of all errors are
            joined into a single text.
        Errors:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/ResultError'
          description: All errors with their codes. Only present when Success is false.
    ProductGroupDetailDto:
      type: object
      properties:
        Id:
          type: string
          description: >-
            Product group detail ID. Use it as GroupDetailId1...GroupDetailId5
            in products.
          format: uuid
        ParentName:
          type:
            - 'null'
            - string
          description: Name of the parent detail.
          example: AUDİ
        GroupNumber:
          type: integer
          description: >-
            Required. Which product group the detail belongs to: 1-5, matching
            GroupDetailId1...GroupDetailId5 of a product.
          format: int32
          example: 2
        Name:
          type:
            - 'null'
            - string
          description: >-
            Required. Detail name, unique within the group. At most 50
            characters.
          example: SEDAN
        ParentGroupDetailId:
          type:
            - 'null'
            - string
          description: >-
            ID of the parent detail, which must belong to the previous group
            (GroupNumber - 1). Leave it empty to make the detail selectable
            under every parent. Group 1 details cannot have a parent.
          format: uuid
    ResultError:
      required:
        - Code
        - Message
      type: object
      properties:
        Code:
          type: string
          description: Error code. See the result codes page for the full list.
        Message:
          type: string
          description: Error description.
  securitySchemes:
    Bearer:
      type: http
      description: Access token obtained from the Noyax auth service with your API key.
      scheme: bearer
      bearerFormat: JWT

````