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

# Update fields on all work orders in a batch

> Apply the same field edits to every open work order in a production batch. Only the fields you send are changed, and you must send at least one.

Each work order is updated separately, so if one is refused the others still change. Completed and cancelled work orders are skipped. Each field follows the rules of its single-work-order endpoint: the expected completion date, service fee and notes can only change on draft, planned or in-progress work orders, so a work order in any other open status comes back as `failed` with the reason in `errors`.

This does not change the batch's own `expected_completion_date`. Set that with `PUT /production-batches/{batchId}`.



## OpenAPI

````yaml /api-reference/build.yaml patch /production-batches/{batchId}/work-orders/fields
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:
  /production-batches/{batchId}/work-orders/fields:
    patch:
      tags:
        - Production Batches
      summary: Update fields on all work orders in a batch
      description: >-
        Apply the same field edits to every open work order in a production
        batch. Only the fields you send are changed, and you must send at least
        one.


        Each work order is updated separately, so if one is refused the others
        still change. Completed and cancelled work orders are skipped. Each
        field follows the rules of its single-work-order endpoint: the expected
        completion date, service fee and notes can only change on draft, planned
        or in-progress work orders, so a work order in any other open status
        comes back as `failed` with the reason in `errors`.


        This does not change the batch's own `expected_completion_date`. Set
        that with `PUT /production-batches/{batchId}`.
      operationId: applyFieldsToProductionBatchWorkOrders
      parameters:
        - in: path
          name: batchId
          required: true
          schema:
            type: integer
          description: ID of the production batch.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                expected_completion_date:
                  type: string
                  format: date
                  nullable: true
                  description: >-
                    Expected completion date to set on each work order. Send
                    `null` to clear it.
                  example: '2026-11-20'
                service_unit_price:
                  type: number
                  minimum: 0
                  maximum: 99999999.99
                  description: >-
                    Per-unit service fee, up to 6 decimal places. Same limits as
                    `PATCH /work-orders/{workOrderId}/service-fee`.
                  example: 12.5
                notes:
                  type: string
                  description: >-
                    Notes to set on each work order (replaces the existing
                    notes).
                custom_fields:
                  type: array
                  minItems: 1
                  description: >-
                    Custom field values to set on each work order. Merged with
                    the existing values by custom field ID, as in `PATCH
                    /work-orders/{workOrderId}/custom-fields`.
                  items:
                    type: object
                    required:
                      - custom_field
                      - value
                    properties:
                      custom_field:
                        type: integer
                        description: ID of the custom field definition.
                      value:
                        nullable: true
                        description: >-
                          Value to store. Must be present; an empty value leaves
                          the field unset.
      responses:
        '200':
          description: Successful response, including when some work orders failed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      message:
                        type: string
                        example: >-
                          3 work order(s) updated, 1 failed, 1 completed or
                          cancelled skipped
                      updated_count:
                        type: integer
                      failed_count:
                        type: integer
                      skipped_count:
                        type: integer
                      results:
                        type: array
                        description: One entry per work order in the batch.
                        items:
                          type: object
                          properties:
                            work_order_id:
                              type: integer
                            work_order_number:
                              type: string
                            status:
                              type: string
                              enum:
                                - updated
                                - failed
                                - skipped
                            errors:
                              type: object
                              description: >-
                                Error messages keyed by field
                                (`expectedCompletionDate`, `serviceUnitPrice`,
                                `notes`, `customFieldValues`). Empty unless
                                `status` is `failed`.
                              additionalProperties:
                                type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Production batch not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '422':
          description: Validation error, or no fields were sent.
          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.