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

# Set fulfillment order status

> Set a fulfillment order's status. Intended for external systems (for example a 3PL or
file-based fulfillment partner) that report back what happened to an order. Three
statuses are accepted:

- `awaiting_shipment` — records that the order was sent to the fulfillment partner. No
  shipment is created, and the order leaves the `pending` queue.
- `shipped` — records a shipment with the given tracking number, carrier and ship date.
  The shipment is created first; if it cannot be created the request fails with `400`
  (`Failed to create shipment: ...`) and the order's status is left unchanged. When some
  shippable lines end up without a shipment, the order is set to `partially_shipped`
  instead of `shipped`.
- `cancelled` — cancels the order through the same path as other cancellations.

The status is written as given; unlike `POST /fulfillment-orders/{fulfillmentOrderId}/mark-shipped`,
this endpoint does not check the order's current status first.

Returns the updated fulfillment order.




## OpenAPI

````yaml /api-reference/build.yaml put /fulfillment-orders/{fulfillmentOrderId}/status
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:
  /fulfillment-orders/{fulfillmentOrderId}/status:
    put:
      tags:
        - Fulfillment Orders
      summary: Set fulfillment order status
      description: >
        Set a fulfillment order's status. Intended for external systems (for
        example a 3PL or

        file-based fulfillment partner) that report back what happened to an
        order. Three

        statuses are accepted:


        - `awaiting_shipment` — records that the order was sent to the
        fulfillment partner. No
          shipment is created, and the order leaves the `pending` queue.
        - `shipped` — records a shipment with the given tracking number, carrier
        and ship date.
          The shipment is created first; if it cannot be created the request fails with `400`
          (`Failed to create shipment: ...`) and the order's status is left unchanged. When some
          shippable lines end up without a shipment, the order is set to `partially_shipped`
          instead of `shipped`.
        - `cancelled` — cancels the order through the same path as other
        cancellations.


        The status is written as given; unlike `POST
        /fulfillment-orders/{fulfillmentOrderId}/mark-shipped`,

        this endpoint does not check the order's current status first.


        Returns the updated fulfillment order.
      operationId: updateFulfillmentOrderStatus
      parameters:
        - in: path
          name: fulfillmentOrderId
          required: true
          schema:
            type: integer
          description: ID of the fulfillment order
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - order_status
              properties:
                order_status:
                  type: string
                  enum:
                    - awaiting_shipment
                    - shipped
                    - cancelled
                  description: Status to set.
                tracking_number:
                  type: string
                  nullable: true
                  maxLength: 255
                  description: >-
                    Carrier tracking number. Required when `order_status` is
                    `shipped`.
                carrier_code:
                  type: string
                  nullable: true
                  maxLength: 255
                  description: Carrier code. Required when `order_status` is `shipped`.
                ship_date:
                  type: string
                  format: date
                  nullable: true
                  description: >-
                    Date the shipment left, `Y-m-d`. Required when
                    `order_status` is `shipped`.
                  example: '2026-11-05'
            examples:
              sent:
                summary: Mark the order sent
                value:
                  order_status: awaiting_shipment
              shipped:
                summary: Mark the order shipped
                value:
                  order_status: shipped
                  tracking_number: 1Z999AA10123456784
                  carrier_code: ups
                  ship_date: '2026-11-05'
      responses:
        '200':
          description: Fulfillment order status updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        description: Fulfillment order ID
                      order_number:
                        type: string
                        description: Fulfillment order number
                      order_key:
                        type: string
                        nullable: true
                        description: Fulfillment order key
                      order_status:
                        type: string
                        description: Fulfillment order status
                      sales_order_id:
                        type: integer
                        description: Associated sales order ID
                      warehouse_group_id:
                        type: integer
                        nullable: true
                        description: Warehouse group ID
                      destination_oms_id:
                        type: integer
                        nullable: true
                        description: Destination app integration account ID
                      destination_oms_store_id:
                        type: integer
                        nullable: true
                      fulfillment_channel_id:
                        type: integer
                        nullable: true
                      pushed_at:
                        type: string
                        format: date-time
                        nullable: true
                      packing_slip_printed_at:
                        type: string
                        format: date-time
                        nullable: true
                        description: >-
                          When a packing slip for this fulfillment order was
                          last successfully exported or sent to a print station
                          (ISO-8601). `null` when the slip has not been printed.
                      error_message:
                        type: string
                        nullable: true
                        description: >-
                          Last push error from the destination OMS, when the
                          fulfillment order is in Error status
                      ship_by_date:
                        type: string
                        format: date
                        nullable: true
                        description: Ship by date
                      total:
                        type: number
                        format: float
                        nullable: true
                        description: Order total
                      bill_to:
                        type: object
                        nullable: true
                        description: Billing address
                        properties:
                          name:
                            type: string
                          company:
                            type: string
                          street1:
                            type: string
                          street2:
                            type: string
                          street3:
                            type: string
                          city:
                            type: string
                          state:
                            type: string
                          postal_code:
                            type: string
                          country:
                            type: string
                          phone:
                            type: string
                      ship_to:
                        type: object
                        nullable: true
                        description: Shipping address
                        properties:
                          name:
                            type: string
                          company:
                            type: string
                          street1:
                            type: string
                          street2:
                            type: string
                          street3:
                            type: string
                          city:
                            type: string
                          state:
                            type: string
                          postal_code:
                            type: string
                          country:
                            type: string
                          phone:
                            type: string
                      invoice_to:
                        type: object
                        nullable: true
                        description: Invoice address
                        properties:
                          name:
                            type: string
                          company:
                            type: string
                          street1:
                            type: string
                          street2:
                            type: string
                          street3:
                            type: string
                          city:
                            type: string
                          state:
                            type: string
                          postal_code:
                            type: string
                          country:
                            type: string
                          phone:
                            type: string
                      sales_order:
                        type: object
                        nullable: true
                        description: Nested sales order data
                      picklists:
                        type: array
                        description: Associated picklists
                        items:
                          type: object
                      fulfillment_order_items:
                        type: array
                        description: >-
                          Fulfillment order line items. Kit SKUs are broken out
                          into their components: when the channel already
                          expanded a kit into component lines at creation, those
                          stored lines are returned with `is_kit_component:
                          true`. When the fulfillment order stores a single kit
                          line, that kit line is returned and is followed by
                          read-only component rows built from the kit's bill of
                          materials (`is_synthetic: true`, `id: null`,
                          `unit_price: 0`, `parent_fulfillment_order_item_id`
                          pointing at the kit line).
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              nullable: true
                              description: >-
                                Fulfillment order line ID. `null` for synthetic
                                kit component rows.
                            shipment_id:
                              type: integer
                              nullable: true
                              description: >-
                                ID of the fulfillment order this line belongs
                                to.
                            status:
                              nullable: true
                              description: Line status.
                            sales_order_item_id:
                              type: integer
                              nullable: true
                              description: >-
                                Sales order line this fulfillment line fulfills.
                                On synthetic component rows, the kit's sales
                                order line.
                            product_id:
                              type: integer
                              nullable: true
                              description: >-
                                Luminous product ID. For a kit line this is the
                                kit product; for a component row it is the
                                component product.
                            sku:
                              type: string
                              nullable: true
                            name:
                              type: string
                              nullable: true
                            weight:
                              nullable: true
                              description: >-
                                Stored line weight (decoded JSON). Always `null`
                                on synthetic component rows.
                            dimensions:
                              nullable: true
                              description: >-
                                Stored line dimensions (decoded JSON). Always
                                `null` on synthetic component rows.
                            quantity:
                              type: number
                              description: >-
                                Quantity in selling units. For a synthetic
                                component row, the kit line quantity multiplied
                                by the component quantity per kit.
                            unit_price:
                              type: number
                              description: >-
                                Unit price. Always `0` on synthetic component
                                rows.
                            lot_id:
                              type: integer
                              nullable: true
                            lot_number:
                              type: string
                              nullable: true
                            expiry_date:
                              type: string
                              nullable: true
                              description: Lot expiry date.
                            created_at:
                              type: string
                              format: date-time
                            updated_at:
                              type: string
                              format: date-time
                            is_kit_component:
                              type: boolean
                              description: >-
                                True when the row is a component of a kit
                                (stored or synthetic).
                            parent_fulfillment_order_item_id:
                              type: integer
                              nullable: true
                              description: >-
                                On synthetic component rows, the ID of the kit
                                line they were expanded from. Otherwise `null`.
                            kit_sales_order_item_id:
                              type: integer
                              nullable: true
                              description: >-
                                On kit component rows, the ID of the kit's sales
                                order line. Otherwise `null`.
                            is_synthetic:
                              type: boolean
                              description: >-
                                True for read-only component rows built from the
                                kit bill of materials at read time. They have no
                                fulfillment order line ID and cannot be updated.
                      total_weight:
                        type: object
                        nullable: true
                        description: >-
                          Total product weight of this fulfillment order's own
                          lines, at the fulfillment quantity. Present only when
                          the line items are loaded. A product with no recorded
                          weight contributes nothing, so a total of `0` usually
                          means "weight unknown" rather than "weightless" —
                          check `is_complete` before treating the total as
                          authoritative.
                        properties:
                          total_oz:
                            type: number
                            format: float
                            description: Total weight in ounces
                          total_lb:
                            type: number
                            format: float
                            description: Total weight in pounds
                          line_count:
                            type: integer
                            description: Number of fulfillment order lines
                          weighed_line_count:
                            type: integer
                            description: >-
                              Number of lines that had a usable weight and
                              contributed to the total
                          is_complete:
                            type: boolean
                            description: >-
                              True only when there is at least one line and
                              every line contributed a weight. When false, the
                              total omits one or more lines whose product has no
                              recorded weight.
                      tags:
                        type: array
                        description: >-
                          Tags attached directly to this fulfillment order.
                          Present when the relation is loaded. Tags inherited
                          from the parent sales order are not included.
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              description: Unique identifier for the tag
                            name:
                              type: string
                              description: Name of the tag
                            description:
                              type: string
                              nullable: true
                              description: Description of the tag
                            icon:
                              type: string
                              nullable: true
                              description: Icon identifier or URL for the tag
                            color:
                              type: string
                              nullable: true
                              description: Color code for the tag
                          required:
                            - id
                            - name
                      purchase_orders:
                        type: array
                        description: >-
                          Linked purchase orders. Present when the relation is
                          loaded; deduplicated by ID.
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            order_status:
                              type: string
                              nullable: true
                              enum:
                                - active
                                - deleted
                                - completed
                      source_reference_identifier:
                        type: string
                        nullable: true
                        description: >-
                          The source system's reference identifier for this
                          fulfillment order (e.g. the originating OMS order ID)
                      held_for_item_change:
                        type: boolean
                        description: >-
                          True when the fulfillment order is on hold because its
                          sales order's items changed after it was started and
                          nobody has reviewed the change in Luminous yet. Always
                          false once the fulfillment order is shipped, partially
                          shipped or cancelled.
                      created_at:
                        type: string
                        format: date-time
                        description: When the fulfillment order was created
                      updated_at:
                        type: string
                        format: date-time
                        description: When the fulfillment order was last updated
        '400':
          description: >-
            The shipment could not be created (status left unchanged), or the
            order could not be updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Fulfillment order not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '422':
          description: >-
            Validation error — `order_status` missing or not one of the accepted
            values, or `tracking_number`, `carrier_code` or `ship_date` missing
            when `order_status` is `shipped`
          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.