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

# Report a quality decision for a lot held in quality control.

> The lot is resolved to the SKUs received under it during goods-in; Released and Conditional
releases are relayed to the warehouse so the quality-held items become eligible for putaway
(a Conditional release is tracked via its conditionNote). Rejected decisions are captured and
acknowledged, but the warehouse-side blocked-stock transition is pending, so they are not yet
applied in the warehouse (status CapturedNotRelayed). Each request is stored as one immutable
audit record; re-sending the same decision is allowed.



## OpenAPI

````yaml /api-reference/openapi.json post /openapi/v1/QualityRelease
openapi: 3.0.1
info:
  title: OmniServices Web API
  version: v1
servers:
  - url: https://api.oplog.one
    description: Production Server
  - url: https://api.staging.oplog.one
    description: Staging Server
security:
  - Authorization: []
paths:
  /openapi/v1/QualityRelease:
    post:
      tags:
        - QualityRelease
      summary: Report a quality decision for a lot held in quality control.
      description: "The lot is resolved to the SKUs received under it during goods-in; Released and Conditional\r\nreleases are relayed to the warehouse so the quality-held items become eligible for putaway\r\n(a Conditional release is tracked via its conditionNote). Rejected decisions are captured and\r\nacknowledged, but the warehouse-side blocked-stock transition is pending, so they are not yet\r\napplied in the warehouse (status CapturedNotRelayed). Each request is stored as one immutable\r\naudit record; re-sending the same decision is allowed."
      parameters:
        - name: X-Tenant-Id
          in: header
          description: If you want to emulate, please enter TenantId.
          schema:
            type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/QualityReleaseRequestDTO'
          application/json:
            schema:
              $ref: '#/components/schemas/QualityReleaseRequestDTO'
          text/json:
            schema:
              $ref: '#/components/schemas/QualityReleaseRequestDTO'
          application/*+json:
            schema:
              $ref: '#/components/schemas/QualityReleaseRequestDTO'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProcessQualityReleaseResult'
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessQualityReleaseResult'
            text/json:
              schema:
                $ref: '#/components/schemas/ProcessQualityReleaseResult'
components:
  schemas:
    QualityReleaseRequestDTO:
      type: object
      properties:
        lotNumber:
          type: string
          description: Lot number the quality decision applies to.
        releaseType:
          type: string
          description: "Quality decision: Released, Conditional or Rejected (English name, case-insensitive).\r\nReleased and Conditional move the lot from quality hold to putaway; a Conditional release is\r\ntracked via its conditionNote. Rejected is captured for blocked stock (disposal) — the\r\nwarehouse-side blocked-stock transition is pending, so Rejected decisions are stored and\r\nacknowledged but not yet applied in the warehouse."
        conditionNote:
          type: string
          description: >-
            Reason/note of a conditional release. Required when releaseType is
            Conditional.
        approvedBy:
          type: string
          description: User who approved the quality decision (e.g. SAP user code).
        approvedAt:
          type: string
          description: Approval date, ISO 8601.
          format: date-time
        referenceNumber:
          type: string
          description: Caller-side quality decision reference (e.g. "QC-2026-0891").
        integrationId:
          type: string
          description: >-
            Optional; disambiguates when the tenant has more than one OpenApi
            integration.
          format: uuid
      additionalProperties: false
      description: "Push payload for POST /openapi/v1/QualityRelease. Reports the caller's quality decision for a lot\r\nheld in quality control during goods-in; all quality-held items of the lot are handled together."
    ProcessQualityReleaseResult:
      required:
        - status
      type: object
      properties:
        lotNumber:
          type: string
        releaseType:
          type: string
        referenceNumber:
          type: string
        status:
          $ref: '#/components/schemas/QualityReleaseRelayStatus'
        skus:
          type: array
          items:
            type: string
        successful:
          type: array
          items:
            type: string
        failures:
          type: object
          additionalProperties:
            type: string
      additionalProperties: false
    QualityReleaseRelayStatus:
      enum:
        - Relayed
        - RelayedWithFailures
        - CapturedNotRelayed
      type: string
  securitySchemes:
    Authorization:
      type: apiKey
      in: header
      name: Authorization

````