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

# Create a fulfillment order (no stock checks)

> Create **one** fulfillment order for a sales order's open quantity, without stock or
threshold checks and without warehouse splits. Contrast with
`POST /sales-orders/{salesOrderId}/auto-generate-fulfillment-orders`, which always runs
Smart Fulfillment (stock thresholds and warehouse splits).

- **Warehouse group:** `warehouse_group_id` defaults to the sales order channel's
  ship-from warehouse group. The request returns **422** when neither is set.
- **Lines:** omit `lines` to fulfill every line's open quantity
  (`quantity - quantity_fulfilled`). Send `lines` to fulfill specific lines and quantities.
- **Duplicates:** if the sales order already has a matching fulfillment order with the
  same line quantities, that order is returned instead of creating a duplicate. An
  existing order with smaller quantities does not count as a match.
- **Push:** this endpoint does not push the fulfillment order. When
  `destination_oms_store_set` is `true`, you can push it with
  `POST /fulfillment-orders/{fulfillmentOrderId}/push`.




## OpenAPI

````yaml /api-reference/build.yaml post /sales-orders/{salesOrderId}/fulfillment-orders
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:
  /sales-orders/{salesOrderId}/fulfillment-orders:
    post:
      tags:
        - Sales Orders
      summary: Create a fulfillment order (no stock checks)
      description: >
        Create **one** fulfillment order for a sales order's open quantity,
        without stock or

        threshold checks and without warehouse splits. Contrast with

        `POST /sales-orders/{salesOrderId}/auto-generate-fulfillment-orders`,
        which always runs

        Smart Fulfillment (stock thresholds and warehouse splits).


        - **Warehouse group:** `warehouse_group_id` defaults to the sales order
        channel's
          ship-from warehouse group. The request returns **422** when neither is set.
        - **Lines:** omit `lines` to fulfill every line's open quantity
          (`quantity - quantity_fulfilled`). Send `lines` to fulfill specific lines and quantities.
        - **Duplicates:** if the sales order already has a matching fulfillment
        order with the
          same line quantities, that order is returned instead of creating a duplicate. An
          existing order with smaller quantities does not count as a match.
        - **Push:** this endpoint does not push the fulfillment order. When
          `destination_oms_store_set` is `true`, you can push it with
          `POST /fulfillment-orders/{fulfillmentOrderId}/push`.
      operationId: createSalesOrderFulfillmentOrder
      parameters:
        - in: path
          name: salesOrderId
          required: true
          schema:
            type: integer
          description: Sales order ID
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                warehouse_group_id:
                  type: integer
                  nullable: true
                  description: >
                    Warehouse group to fulfill from. Defaults to the sales order
                    channel's

                    ship-from warehouse group.
                fulfillment_order_status:
                  type: string
                  nullable: true
                  enum:
                    - pending
                    - planned
                    - awaiting_shipment
                    - shipped
                  description: >-
                    Optional initial status for the fulfillment order. Omit to
                    use the default.
                lines:
                  type: array
                  description: >
                    Lines and quantities to fulfill. Omit to fulfill the open
                    quantity on every line.
                  items:
                    type: object
                    required:
                      - sales_order_item_id
                      - quantity
                    properties:
                      sales_order_item_id:
                        type: integer
                        description: >-
                          Sales order line item ID (must belong to this sales
                          order)
                      quantity:
                        type: number
                        exclusiveMinimum: true
                        minimum: 0
                        description: >-
                          Quantity to fulfill. Cannot exceed the line's open
                          quantity.
            examples:
              all_open_quantity:
                summary: Fulfill all open quantity from the channel's warehouse group
                value: {}
              specific_lines:
                summary: Fulfill specific lines from a chosen warehouse group
                value:
                  warehouse_group_id: 4
                  fulfillment_order_status: awaiting_shipment
                  lines:
                    - sales_order_item_id: 98765
                      quantity: 2
      responses:
        '201':
          description: Fulfillment order created (or the matching existing one returned)
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      fulfillment_order_id:
                        type: integer
                        example: 5001
                      fulfillment_order_ids:
                        type: array
                        description: >-
                          Always a single-element array containing
                          `fulfillment_order_id`.
                        items:
                          type: integer
                        example:
                          - 5001
                      destination_oms_id:
                        type: integer
                        nullable: true
                        description: >-
                          Destination integration account the fulfillment order
                          will push to.
                      destination_oms_store_id:
                        type: integer
                        nullable: true
                        description: Destination store on that integration account.
                      destination_oms_store_set:
                        type: boolean
                        description: >
                          `true` only when both `destination_oms_id` and
                          `destination_oms_store_id`

                          are set, so `POST
                          /fulfillment-orders/{fulfillmentOrderId}/push` can
                          run.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Sales order not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Sales order not found.
        '422':
          description: >
            Validation or creation failed, for example: no warehouse group could
            be resolved,

            no open quantity remains on the sales order, a line is not on this
            sales order, or a

            quantity exceeds the line's open quantity.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: No open quantity remains on this sales order.
      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.