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

# Mengenmeldung erzeugen

> Generate and freeze a report for one period, market and register. Re-generating the same scope after the data changed is the normal flow: the new report supersedes the previous one (its `version` increments, the old row stays listed as `superseded`). A `422` names precisely which data is not declarable yet, item by item — nothing is written. Requires `packaging:write`; customer workspace with the PPWR module enabled — see the guide.



## OpenAPI

````yaml POST /api/ppwr/mengenmeldung/reports
openapi: 3.1.0
info:
  title: Polygon One Compliance API
  description: >-
    API for integrating ERP systems with the Polygon One EUDR Compliance
    Platform. Allows management of Articles, Suppliers, Orders, and Due
    Diligence Statements (DDS). PPWR packaging master data, the SKU quantity
    feed and Mengenmeldung reports are covered by the PPWR groups.
  version: 1.0.0
servers:
  - url: https://app.polygon-one.com
    description: Production Server
security:
  - bearerAuth: []
paths:
  /api/ppwr/mengenmeldung/reports:
    post:
      summary: Generate Volume Report
      description: >-
        Generate and freeze a report for one period, market and register.
        Re-generating the same scope after the data changed is the normal flow:
        the new report supersedes the previous one (its `version` increments,
        the old row stays listed as `superseded`). A `422` names precisely which
        data is not declarable yet, item by item — nothing is written. Requires
        `packaging:write`; customer workspace with the PPWR module enabled — see
        the guide.
      operationId: generateMengenmeldungReport
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateMengenmeldungInput'
      responses:
        '201':
          description: Report generated and frozen
          content:
            application/json:
              schema:
                type: object
                required:
                  - id
                  - version
                properties:
                  id:
                    type: string
                    format: uuid
                  version:
                    type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          description: >-
            `{ "error": "reportAlreadyGenerated" }` — two generations for the
            same scope raced; one of them won. Re-list and retry if you still
            need a newer version.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Data not declarable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MengenmeldungNotDeclarable'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    GenerateMengenmeldungInput:
      type: object
      description: >-
        Trigger a report generation. `reportType` and `systemOperatorId` are
        **required for `lucid_de`** and unused by the worksheet registers, which
        always produce the annual report.
      required:
        - periodYear
        - market
        - format
      properties:
        periodYear:
          type: integer
          minimum: 2000
          maximum: 2100
        market:
          type: string
          pattern: ^[A-Za-z]{2}$
          description: ISO alpha-2 (case-insensitive).
        format:
          $ref: '#/components/schemas/MengenmeldungFormat'
        reportType:
          $ref: '#/components/schemas/MengenmeldungReportType'
        systemOperatorId:
          type: string
          pattern: ^[A-Za-z]{2}[0-9]{13}$
          description: >-
            Your dual system's LUCID number: two letters + 13 digits (lower case
            is accepted and upper-cased). **Required for `lucid_de`**, unused by
            the worksheet registers.
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        details:
          description: Additional error details (e.g. validation issues)
      required:
        - error
    MengenmeldungNotDeclarable:
      type: object
      description: The data is not declarable yet — **nothing was written**.
      required:
        - error
        - blockingErrors
      properties:
        error:
          type: string
          enum:
            - blocking_errors
            - nothing_to_declare
          description: >-
            `blocking_errors` — the listed data-quality problems must be fixed
            first. `nothing_to_declare` — no declarable figures exist for that
            period and market (`blockingErrors` is empty).
        blockingErrors:
          type: array
          items:
            $ref: '#/components/schemas/MengenmeldungBlockingError'
    MengenmeldungFormat:
      type: string
      enum:
        - lucid_de
        - verpact_nl
        - ara_at
        - bdo_pl
        - miteco_es
        - conai_it
      description: >-
        Register format. Each accepts exactly one market: `lucid_de`→`DE`,
        `verpact_nl`→`NL`, `ara_at`→`AT`, `bdo_pl`→`PL`, `miteco_es`→`ES`,
        `conai_it`→`IT`.
    MengenmeldungReportType:
      type: string
      enum:
        - HPM1
        - HMM1
        - HJM1
        - HNM1
        - HAM1
      description: >-
        The LUCID Meldungsart: `HPM1` Planmengenmeldung, `HMM1` unterjährige
        Mengenmeldung, `HJM1` Jahresabschlussmengenmeldung, `HNM1`
        Ergänzungsmengenmeldung, `HAM1` Abzugsmengenmeldung.
    MengenmeldungBlockingError:
      type: object
      description: >-
        One reason the data is not declarable yet. The element shape differs by
        register family — `familyLabelsDe` is LUCID only; `packagingSpecId`,
        `componentId` and `candidates` are worksheet-register only.
      properties:
        kind:
          type: string
          enum:
            - missing_mass
            - ambiguous_material
            - ambiguous_multi_material
            - unmapped_material
            - missing_channel
            - placement_needs_format
          description: >-
            `missing_mass` — a component in a linked unit has no weight.
            `ambiguous_material` — a material whose register category cannot be
            derived (LUCID: the metal and composite families).
            `ambiguous_multi_material` — a multi-material component whose mass
            split is unknowable. `unmapped_material` and `missing_channel` —
            worksheet registers only. `placement_needs_format` — a unit-level
            figure cannot be converted to mass because its sizes weigh a
            component differently; enter the figure per size.
        specRef:
          type: string
          description: '`internalRef` of the packaging unit.'
        packagingSpecId:
          type: string
          format: uuid
        componentId:
          type:
            - string
            - 'null'
          format: uuid
        componentCode:
          type:
            - string
            - 'null'
        componentName:
          type:
            - string
            - 'null'
        material:
          type:
            - string
            - 'null'
        familyLabelsDe:
          type:
            - string
            - 'null'
          description: >-
            LUCID only: the German labels of the category family that must be
            declared with figures.
        candidates:
          type:
            - array
            - 'null'
          items:
            type: object
            properties:
              code:
                type: string
              label:
                type: string
          description: >-
            Worksheet registers only: the register categories this component
            could be mapped to (mapped once in the app).
  responses:
    BadRequest:
      description: Invalid request data
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Insufficient permissions for this resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        API key generated in Settings > API Keys. Include as `Authorization:
        Bearer <key>`.

````