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

> Create a carrier shipment bound to a specific fulfillment order. The fulfillment order's parent sales order is
resolved from the path, so callers do not need to look up the sales order first.

The shipment is linked to the fulfillment order (populating the fulfillment-order/shipment pivot and the legacy
`sales_order_shipment_id` FK). Reposts with the same `tracking_number` + `carrier_code` are idempotent and will
attach any missing pivot rows.

Once the shipment is added, the parent sales order status will automatically be updated to either `shipped` or
`partially_shipped`, and any shipment costs will be added to the sales order total.

NOTE: At this time, inventory adjustments will not be made automatically.




## OpenAPI

````yaml /api-reference/build.yaml post /fulfillment-orders/{id}/shipments
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:
  /fulfillment-orders/{id}/shipments:
    post:
      tags:
        - Fulfillment Orders
      summary: Create Shipment
      description: >
        Create a carrier shipment bound to a specific fulfillment order. The
        fulfillment order's parent sales order is

        resolved from the path, so callers do not need to look up the sales
        order first.


        The shipment is linked to the fulfillment order (populating the
        fulfillment-order/shipment pivot and the legacy

        `sales_order_shipment_id` FK). Reposts with the same `tracking_number` +
        `carrier_code` are idempotent and will

        attach any missing pivot rows.


        Once the shipment is added, the parent sales order status will
        automatically be updated to either `shipped` or

        `partially_shipped`, and any shipment costs will be added to the sales
        order total.


        NOTE: At this time, inventory adjustments will not be made
        automatically.
      operationId: createFulfillmentOrderShipment
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: integer
          description: ID of the fulfillment order
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - ship_date
                - tracking_number
                - carrier_code
                - ship_to
                - items
              properties:
                ship_date:
                  type: string
                  format: date
                  description: Date when the shipment will be sent (YYYY-MM-DD)
                tracking_number:
                  type: string
                  description: Tracking number for the shipment
                bol_number:
                  type: string
                  description: Bill of Lading Number for logistics tracking
                  example: BOL-123456789
                pro_number:
                  type: string
                  description: Progressive Rotating Order Number (common in LTL shipping)
                  example: PRO-987654321
                partner_reference_number:
                  type: string
                  description: General reference number from/for the shipping partner
                  example: PARTNER-REF-001
                is_return:
                  type: boolean
                  description: Whether this is a return shipment
                carrier_code:
                  type: string
                  description: Code identifying the carrier
                  example: fedex
                service_code:
                  type: string
                  description: Code identifying the shipping service
                  example: ups_ground
                shipment_cost:
                  type: number
                  format: float
                  description: Cost of shipping
                insurance_cost:
                  type: number
                  format: float
                  description: Cost of insurance
                package_code:
                  type: string
                  description: Code identifying the package type
                  example: flat_rate_envelope
                warehouse_id:
                  type: integer
                  nullable: true
                  description: ID of the warehouse shipping from
                ship_to:
                  type: object
                  required:
                    - name
                    - street1
                    - city
                    - state
                    - postalCode
                    - country
                    - residential
                  properties:
                    name:
                      type: string
                      description: Recipient name
                    company:
                      type: string
                      description: Company name
                    street1:
                      type: string
                      description: Primary street address
                    street2:
                      type: string
                      description: Secondary street address
                    street3:
                      type: string
                      description: Additional street address
                    city:
                      type: string
                      description: City
                    state:
                      type: string
                      description: State/province
                    postalCode:
                      type: string
                      description: Postal/ZIP code
                    country:
                      type: string
                      description: Country
                    phone:
                      type: string
                      description: Contact phone number
                    residential:
                      type: boolean
                      description: Whether this is a residential address
                weight:
                  type: object
                  required:
                    - value
                    - units
                  properties:
                    value:
                      type: number
                      format: float
                      description: Weight value
                    units:
                      type: string
                      enum:
                        - ounces
                        - pounds
                        - grams
                        - kilograms
                      description: Unit of weight measurement
                dimensions:
                  type: object
                  required:
                    - units
                    - length
                    - width
                    - height
                  properties:
                    units:
                      type: string
                      enum:
                        - inches
                        - centimeters
                      description: Unit of dimensional measurement
                    length:
                      type: number
                      format: float
                      description: Length of the package
                    width:
                      type: number
                      format: float
                      description: Width of the package
                    height:
                      type: number
                      format: float
                      description: Height of the package
                items:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    required:
                      - product_id
                      - order_item_id
                      - quantity
                      - unit_price
                    properties:
                      product_id:
                        type: integer
                        description: ID of the product being shipped
                      order_item_id:
                        type: integer
                        description: >-
                          Luminous sales order line-item ID. Use the
                          `sales_order_item_id` returned on the
                          shipment/fulfillment-order read endpoints; for
                          kit/bundle component lines pass the component's own
                          `sales_order_item_id`.
                      weight:
                        type: object
                        required:
                          - value
                          - units
                        properties:
                          value:
                            type: number
                            format: float
                            description: Weight value
                          units:
                            type: string
                            enum:
                              - ounces
                              - pounds
                              - grams
                              - kilograms
                            description: Unit of weight measurement
                      quantity:
                        type: integer
                        minimum: 1
                        description: Quantity to ship
                      unit_price:
                        type: number
                        format: float
                        minimum: 0
                        description: Price per unit
                  description: Items to be included in this shipment
      responses:
        '201':
          description: Shipment created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    description: Unique identifier for the shipment
                  sales_order_id:
                    type: integer
                    description: ID of the associated sales order
                  ship_date:
                    type: string
                    format: date
                    description: Date when the shipment was or will be sent
                  tracking_number:
                    type: string
                    description: Tracking number for the shipment
                  bol_number:
                    type: string
                    description: Bill of Lading Number for logistics tracking
                    example: BOL-123456789
                  pro_number:
                    type: string
                    description: Progressive Rotating Order Number (common in LTL shipping)
                    example: PRO-987654321
                  partner_reference_number:
                    type: string
                    description: General reference number from/for the shipping partner
                    example: PARTNER-REF-001
                  is_return:
                    type: boolean
                    description: Whether this is a return shipment
                  carrier_code:
                    type: string
                    description: Code identifying the carrier (e.g., ups, fedex)
                  scac:
                    type: string
                    nullable: true
                    description: >-
                      Standard Carrier Alpha Code (SCAC) for the shipment's
                      carrier; included on outbound EDI 856/810 documents
                  service_code:
                    type: string
                    description: Code identifying the shipping service
                  package_code:
                    type: string
                    description: Code identifying the package type
                  shipment_cost:
                    type: number
                    format: float
                    description: Cost of shipping
                  insurance_cost:
                    type: number
                    format: float
                    description: Cost of insurance
                  warehouse_group_id:
                    type: integer
                    nullable: true
                    description: >-
                      ID of the warehouse group associated with this shipment
                      (from the linked fulfillment order)
                  status:
                    type: integer
                    description: Status of the shipment
                  ship_to:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Recipient name
                      company:
                        type: string
                        description: Company name
                      street1:
                        type: string
                        description: Primary street address
                      street2:
                        type: string
                        description: Secondary street address
                      street3:
                        type: string
                        description: Additional street address
                      city:
                        type: string
                        description: City
                      state:
                        type: string
                        description: State/province
                      postalCode:
                        type: string
                        description: Postal/ZIP code
                      country:
                        type: string
                        description: Country
                      phone:
                        type: string
                        description: Contact phone number
                      residential:
                        type: boolean
                        description: Whether this is a residential address
                  weight:
                    type: object
                    required:
                      - value
                      - units
                    properties:
                      value:
                        type: number
                        format: float
                        description: Weight value
                      units:
                        type: string
                        enum:
                          - ounces
                          - pounds
                          - grams
                          - kilograms
                        description: Unit of weight measurement
                  dimensions:
                    type: object
                    required:
                      - units
                      - length
                      - width
                      - height
                    properties:
                      units:
                        type: string
                        enum:
                          - inches
                          - centimeters
                        description: Unit of dimensional measurement
                      length:
                        type: number
                        format: float
                        description: Length of the package
                      width:
                        type: number
                        format: float
                        description: Width of the package
                      height:
                        type: number
                        format: float
                        description: Height of the package
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          description: Unique identifier for the shipment item
                        shipment_id:
                          type: integer
                          description: ID of the parent shipment
                        product_id:
                          type: integer
                          description: ID of the product being shipped
                        sales_order_item_id:
                          type: integer
                          description: >-
                            Luminous sales order line-item ID (the internal item
                            primary key) for the line being shipped. This is the
                            value to pass back as `order_item_id` when creating
                            a shipment for this order. For kit/bundle component
                            lines that share a single upstream channel line,
                            each component is still returned with its own
                            distinct `sales_order_item_id`.
                        quantity:
                          type: number
                          description: >-
                            Quantity being shipped, expressed in the same unit
                            of measure the associated sales order line was
                            ordered in (the selling UoM, e.g. cartons) rather
                            than internal base units. When the originating order
                            line cannot be resolved, the stored quantity is
                            returned as-is.
                        weight:
                          type: object
                          required:
                            - value
                            - units
                          properties:
                            value:
                              type: number
                              format: float
                              description: Weight value
                            units:
                              type: string
                              enum:
                                - ounces
                                - pounds
                                - grams
                                - kilograms
                              description: Unit of weight measurement
                        unit_price:
                          type: number
                          format: float
                          description: Price per unit
                        created_at:
                          type: string
                          format: date-time
                          description: Timestamp when the item was created
                        updated_at:
                          type: string
                          format: date-time
                          description: Timestamp when the item was last updated
                    description: Items included in this shipment
                  created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the shipment was created
                  updated_at:
                    type: string
                    format: date-time
                    description: Timestamp when the shipment was last updated
        '400':
          description: Invalid request
          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
      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.

````