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

# Complete a work order

> Complete a work order, transitioning it to the completed status. Set force to true to complete the work order even when validation checks (such as outstanding steps) would otherwise prevent completion. Returns the updated work order.



## OpenAPI

````yaml /api-reference/build.yaml post /work-orders/{workOrderId}/complete
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: Purchase Orders
    description: Get and modify purchase orders
  - 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 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: Integration Mappings
    description: Manage integration mappings for external systems
  - name: Integration Field Mappings
    description: Manage field-level mappings between Luminous and external systems
paths:
  /work-orders/{workOrderId}/complete:
    post:
      tags:
        - Work Orders
      summary: Complete a work order
      description: >-
        Complete a work order, transitioning it to the completed status. Set
        force to true to complete the work order even when validation checks
        (such as outstanding steps) would otherwise prevent completion. Returns
        the updated work order.
      operationId: completeWorkOrder
      parameters:
        - in: path
          name: workOrderId
          required: true
          description: ID of the work order to complete.
          schema:
            type: integer
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                force:
                  type: boolean
                  description: >-
                    When true, force completion even if validation checks would
                    otherwise prevent it. Defaults to false.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      work_order_number:
                        type: string
                      status:
                        type: string
                        description: >-
                          Work order status (e.g. draft, planned, in_progress,
                          completed, cancelled).
                      is_on_hold:
                        type: boolean
                      produced_sku_id:
                        type: integer
                        nullable: true
                        description: >-
                          ID of the SKU (request_for_quotes record) being
                          produced.
                      produced_sku:
                        type: object
                        nullable: true
                        description: Present only when the producedSku relation is loaded.
                        properties:
                          id:
                            type: integer
                          sku:
                            type: string
                          description:
                            type: string
                            nullable: true
                      planned_qty:
                        type: number
                        description: Quantity planned to be produced.
                      completion_trigger:
                        type: string
                        nullable: true
                        description: How the work order is completed.
                        enum:
                          - finish_step
                          - receipt
                      expected_completion_date:
                        type: string
                        format: date
                        nullable: true
                      created_at:
                        type: string
                        format: date-time
                      updated_at:
                        type: string
                        format: date-time
                      production_warehouse_id:
                        type: integer
                        nullable: true
                      production_warehouse:
                        type: object
                        nullable: true
                        description: >-
                          Present only when the productionWarehouse relation is
                          loaded.
                        properties:
                          id:
                            type: integer
                          name:
                            type: string
                      destination_warehouse_id:
                        type: integer
                        nullable: true
                      destination_warehouse:
                        type: object
                        nullable: true
                        description: >-
                          Present only when the destinationWarehouse relation is
                          loaded.
                        properties:
                          id:
                            type: integer
                          name:
                            type: string
                      vendor_id:
                        type: integer
                        nullable: true
                        description: Co-manufacturer (subcontract) vendor ID.
                      vendor:
                        type: object
                        nullable: true
                        description: Present only when the vendor relation is loaded.
                        properties:
                          id:
                            type: integer
                          name:
                            type: string
                      bom_id:
                        type: integer
                        nullable: true
                      service_unit_price:
                        type: number
                        nullable: true
                        description: Per-unit service fee for subcontract production.
                      notes:
                        type: string
                        nullable: true
                      hold_reason:
                        type: string
                        nullable: true
                      cancel_reason:
                        type: string
                        nullable: true
                      held_at:
                        type: string
                        format: date-time
                        nullable: true
                      created_by:
                        type: integer
                        nullable: true
                      updated_by:
                        type: integer
                        nullable: true
                      held_by:
                        type: integer
                        nullable: true
                      production_batch_id:
                        type: integer
                        nullable: true
                      steps:
                        type: array
                        description: >-
                          Production steps. Present only when the steps relation
                          is loaded.
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            work_order_id:
                              type: integer
                            sequence:
                              type: integer
                              description: >-
                                Order of the step within the work order's
                                routing.
                            status:
                              type: string
                              description: >-
                                Step status (e.g. pending, in_progress,
                                completed, skipped).
                            output_sku_id:
                              type: integer
                              nullable: true
                            output_sku:
                              type: object
                              nullable: true
                              description: >-
                                Present only when the outputSku relation is
                                loaded.
                              properties:
                                id:
                                  type: integer
                                sku:
                                  type: string
                                description:
                                  type: string
                                  nullable: true
                            planned_qty:
                              type: number
                              description: Quantity planned to be produced by this step.
                            completed_qty:
                              type: number
                              description: Quantity completed so far for this step.
                            is_outside_processing:
                              type: boolean
                              description: >-
                                Whether this step is performed by an outside
                                (subcontract) vendor.
                            supply_mode:
                              type: string
                              nullable: true
                            vendor_id:
                              type: integer
                              nullable: true
                            skipped_at:
                              type: string
                              format: date-time
                              nullable: true
                            skipped_by:
                              type: integer
                              nullable: true
                            created_at:
                              type: string
                              format: date-time
                            updated_at:
                              type: string
                              format: date-time
                      custom_fields:
                        type: object
                        nullable: true
                        description: >-
                          Custom field key/value pairs. Present only when
                          loaded.
                        additionalProperties: true
                      alternate_ids:
                        type: array
                        description: >-
                          External alternate identifiers. Present only when
                          loaded.
                        items:
                          type: string
                      links:
                        type: object
                        description: HATEOAS links to related sub-resources.
                        properties:
                          self:
                            type: string
                          steps:
                            type: string
                          completions:
                            type: string
                          production_entries:
                            type: string
                          status_history:
                            type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Work order not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '422':
          description: Validation error
          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.

````