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

# Preview an assembly order ledger correction

> Previews correcting the produced and component quantities of a **completed**
assembly or disassembly order, without writing anything. Takes the same
fields as `POST /assembly-orders/{assemblyOrderId}/ledger-correction` (except
`reason`) as query parameters, for example:
`?produced_quantity=12&lines[0][order_line_id]=88&lines[0][quantity]=24&balancing_entry[date]=2026-10-19`.

The same eligibility rules as the save endpoint apply.




## OpenAPI

````yaml /api-reference/build.yaml get /assembly-orders/{assemblyOrderId}/ledger-correction
openapi: 3.0.0
info:
  title: Luminous API
  version: 1.0.0
  description: API documentation for Luminous
servers:
  - url: https://{companyName}.api.joinluminous.com/external/api/v1
    variables:
      companyName:
        default: companyName
        description: Your company-specific subdomain
security: []
tags:
  - name: Products
    description: Get and manage products
  - name: Pricing
    description: Manage price schedules, levels, and customizations
  - name: BOMs
    description: Manage Bills of Materials (BOMs)
  - name: Labels
    description: Label rendering via Labelary ZPL service
  - name: Companies
    description: Manage business accounts and their associated data
  - name: Contacts
    description: Manage contact information for individuals
  - name: Suppliers
    description: Manage suppliers (factories) — vendors used on purchase orders
  - name: Supplier SKUs
    description: Manage per-supplier SKU and unit-cost overrides for products
  - name: Locations
    description: Manage warehouses and locations
  - name: Inventory
    description: Get and adjust product stock levels
  - name: Lots
    description: Create, update, and delete product lots (batches)
  - name: Transfer Orders
    description: Manage transfer orders
  - name: Fulfillment Orders
    description: Manage fulfillment orders and picklists
  - name: Freight
    description: >-
      Freightview LTL freight — quotes, booking and documents for fulfillment
      orders
  - name: Fulfillment Priority Lists
    description: Configure fulfillment routing priority lists
  - name: Purchase Orders
    description: Get and modify purchase orders
  - name: Supplier Portal
    description: >-
      Read a supplier's response to a purchase order and control the one-click
      portal link
  - name: Receiving Reports
    description: Manage receiving reports
  - name: Payment Obligations
    description: Manage payment obligations for purchase orders
  - name: Sales Orders
    description: Manage sales orders and sales order shipments
  - name: Purgatory
    description: >-
      Inspect and resolve non-posted sales orders in the purgatory staging
      workflow
  - name: PickFlow Warehouse
    description: >-
      Warehouse-floor lookups for PickFlow — barcode resolution, bin and product
      stock, bin search, and receivables
  - name: PickFlow Shipping
    description: >-
      Provider-agnostic shipping rates, services, packages, and label purchase
      for PickFlow
  - name: Cycle Counts
    description: >-
      Create, drive, and post PickFlow cycle counts — batches, per-warehouse
      sessions, and CSV import/export
  - name: Print Stations
    description: List paired print stations and enqueue print jobs to them
  - name: Invoices
    description: Get and manage invoices
  - name: Work Orders
    description: >-
      Manage work orders — production lifecycle, steps, materials, links,
      shipments, and comments
  - name: Production Batches
    description: Group and manage work orders as production batches
  - name: Bills
    description: >-
      Accounts payable bill management, payments, attachments, allocations, and
      variance
  - name: Prepayments
    description: Manage vendor prepayments and applications
  - name: Vendor Credits
    description: Manage vendor credits and applications
  - name: Vendor Returns
    description: Manage vendor returns and credit generation
  - name: Customer Returns
    description: Manage customer returns (sales returns), receiving, and restock behavior
  - name: Stock Snapshot
    description: Point-in-time stock snapshots with export support
  - name: Consumption
    description: Consumption reports and exports
  - name: Inventory Aging
    description: Cost-layer-based inventory aging reports
  - name: Bills Reports
    description: Accounts payable bills aging reports
  - name: Forecast
    description: Materialized forecast data
  - name: Reports
    description: Close the books, inventory discrepancy, transaction COGS, and EDI reports
  - name: Tags
    description: Add/remove tags across various resources
  - name: Custom Fields
    description: Get and set custom fields across various resources
  - name: Currency
    description: Currency configuration, exchange rates, and conversion
  - name: Drive
    description: >
      Browse, upload, tag and manage files in your Luminous Drive. An API token
      sees the shared

      drive only, never My Files or restricted folders and files. Every write
      and download made

      through the API is recorded in the file's activity log (`GET
      /file-cabinet/files/{id}/activity`)

      with `actor_kind: api_token`.
  - name: Integration Mappings
    description: Manage integration mappings for external systems
  - name: Integration Field Mappings
    description: Manage field-level mappings between Luminous and external systems
  - name: Automations
    description: Create, test, and inspect automation rules and their runs
paths:
  /assembly-orders/{assemblyOrderId}/ledger-correction:
    parameters:
      - in: path
        name: assemblyOrderId
        required: true
        schema:
          type: integer
        description: ID of a completed assembly or disassembly order.
    get:
      tags:
        - Assembly Orders
      summary: Preview an assembly order ledger correction
      description: >
        Previews correcting the produced and component quantities of a
        **completed**

        assembly or disassembly order, without writing anything. Takes the same

        fields as `POST /assembly-orders/{assemblyOrderId}/ledger-correction`
        (except

        `reason`) as query parameters, for example:

        `?produced_quantity=12&lines[0][order_line_id]=88&lines[0][quantity]=24&balancing_entry[date]=2026-10-19`.


        The same eligibility rules as the save endpoint apply.
      operationId: previewAssemblyOrderLedgerCorrection
      parameters:
        - in: query
          name: produced_quantity
          required: false
          schema:
            type: number
            exclusiveMinimum: true
            minimum: 0
          description: New actual quantity of the order's own SKU. Greater than zero.
        - in: query
          name: lines
          required: false
          style: deepObject
          explode: true
          schema:
            type: array
            items:
              type: object
              properties:
                order_line_id:
                  type: integer
                quantity:
                  type: number
          description: >
            Component/output lines to change, as
            `lines[0][order_line_id]=88&lines[0][quantity]=24`.
        - in: query
          name: balancing_entry[date]
          required: false
          schema:
            type: string
            format: date
          description: >
            Optional balancing adjustment date. Not in the future. When omitted
            (and

            `allow_shelf_change` is not true) the balancing entry is dated
            today.
        - in: query
          name: allow_shelf_change
          required: false
          schema:
            type: boolean
            default: false
          description: >
            `true` skips the balancing adjustment so today's on-hand moves by
            each

            change. Rejected (422) when later inventory movements exist on an

            affected stock.
      responses:
        '200':
          description: Preview of the correction
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  data:
                    type: object
                    description: >
                      Result of a ledger correction on a completed assembly or
                      disassembly order.

                      The preview omits `correction_ids`, `adjustment_id`,
                      `rematerialized_log_ids`

                      and `balance_warnings`.
                    properties:
                      order_id:
                        type: integer
                        example: 500
                      type:
                        type: string
                        description: Order type.
                        enum:
                          - assembly
                          - disassembly
                        example: assembly
                      rows:
                        type: array
                        description: One row per changed leg.
                        items:
                          type: object
                          properties:
                            order_line_id:
                              type: integer
                              nullable: true
                              description: >-
                                Order line ID, or `null` for the order's own
                                SKU.
                              example: 88
                            sku:
                              type: string
                              example: GASKET-02
                            role:
                              type: string
                              enum:
                                - produced
                                - consumed
                              description: >
                                `produced` when the leg adds stock (the finished
                                good on an assembly,

                                the outputs on a disassembly); `consumed` when
                                it removes stock.
                            old_quantity:
                              type: number
                              example: 2
                            new_quantity:
                              type: number
                              example: 24
                            onhand_delta:
                              type: number
                              description: Signed change to on-hand.
                              example: -22
                            onhand_after:
                              type: number
                              description: >
                                Today's on-hand after every change on that
                                stock. With a balancing

                                entry (the default) this equals the current
                                on-hand; with

                                `allow_shelf_change` it moves by the net change.
                                A negative value

                                is allowed.
                              example: 78
                            later_count_warning:
                              type: boolean
                              description: >
                                A cycle count, adjustment entry or manual
                                recount was posted on this

                                stock after the order. That count may already
                                have absorbed the

                                difference, so consider a balancing entry. A
                                warning, not a block.
                            later_count_transaction:
                              type: string
                              nullable: true
                              example: CYCLE COUNT
                            later_count_date:
                              type: string
                              format: date
                              nullable: true
                              example: '2026-10-02'
                      balancing_entry:
                        type: object
                        nullable: true
                        description: >
                          The balancing adjustment that keeps today's on-hand
                          unchanged (dated

                          `balancing_entry.date`, or today when omitted). `null`
                          only when

                          `allow_shelf_change` was true.
                        properties:
                          date:
                            type: string
                            format: date
                            example: '2026-10-19'
                          lines:
                            type: array
                            items:
                              type: object
                              properties:
                                sku:
                                  type: string
                                  example: GASKET-02
                                quantity:
                                  type: number
                                  description: >-
                                    Adjustment quantity (the opposite of the net
                                    change).
                                  example: 22
                                onhand_after:
                                  type: number
                                  example: 100
                      requires_full_core_rebuild:
                        type: boolean
                        description: >-
                          Always `false`; rewritten quantity logs are
                          rematerialized into Core immediately.
                        example: false
                      message:
                        type: string
                        example: >-
                          Rewritten quantity logs were rematerialized into Core
                          where Core tables exist.
                      correction_ids:
                        type: array
                        description: Save only. IDs of the correction records written.
                        items:
                          type: integer
                        example:
                          - 41
                      rematerialized_log_ids:
                        type: array
                        description: >
                          Save only. IDs of the rewritten quantity logs whose
                          Core inventory

                          transactions were deleted and re-ingested. Empty when
                          the tenant has no

                          Core tables.
                        items:
                          type: integer
                        example:
                          - 7781
                      adjustment_id:
                        type: integer
                        nullable: true
                        description: >-
                          Save only. ID of the balancing adjustment entry, when
                          one was posted.
                        example: 9001
                      balance_warnings:
                        type: array
                        description: >
                          Save only. Stocks whose recomputed ledger balance
                          differs from their

                          on-hand. On-hand is left unchanged in that case.
                        items:
                          type: object
                          additionalProperties: true
        '400':
          description: Request validation failure (e.g. quantity ≤ 0).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Assembly order not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Assembly order not found.
        '422':
          description: The order cannot be corrected (see the save endpoint).
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authenticate using a bearer token. To create a token, navigate to
        /settings/api-tokens and click Create API Token.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.