> ## 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 a draft transfer order

> Replace a draft transfer order. The body is the same as `POST /transfer-orders`; items and extra costs are replaced with the ones sent. Only drafts can be updated, and `status` must be `DRAFT` (use `POST /transfer-orders/{id}/post` to post). The order can keep its own `number`. Shipment type, supplier, auto-ship settings, and auto-receive on arrival are not changed by this endpoint. If `channel_id` is omitted or `null`, the transfer order keeps its stored fulfillment source.



## OpenAPI

````yaml /api-reference/build.yaml put /transfer-orders/{id}
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:
  /transfer-orders/{id}:
    put:
      tags:
        - Transfer Orders
      summary: Update a draft transfer order
      description: >-
        Replace a draft transfer order. The body is the same as `POST
        /transfer-orders`; items and extra costs are replaced with the ones
        sent. Only drafts can be updated, and `status` must be `DRAFT` (use
        `POST /transfer-orders/{id}/post` to post). The order can keep its own
        `number`. Shipment type, supplier, auto-ship settings, and auto-receive
        on arrival are not changed by this endpoint. If `channel_id` is omitted
        or `null`, the transfer order keeps its stored fulfillment source.
      operationId: updateTransferOrder
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: integer
          description: ID of the transfer order to update
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  required:
                    - date
                    - arrival_date
                    - source_warehouse_id
                    - destination_warehouse_id
                    - shipping_cost
                    - status
                    - items
                  properties:
                    number:
                      type: string
                      nullable: true
                      description: >-
                        Transfer order number. Must be unique across transfer
                        orders.
                    date:
                      type: string
                      format: date
                      description: Date of the transfer order
                    arrival_date:
                      type: string
                      format: date
                      description: Expected arrival date
                    items_cost:
                      type: number
                      format: float
                      description: Total cost of items
                    shipping_cost:
                      type: number
                      format: float
                      description: Shipping cost
                    shipping_method:
                      type: string
                      nullable: true
                      description: >-
                        Method of shipping. Optional — if omitted or empty,
                        defaults to "Standard".
                    source_warehouse_id:
                      type: integer
                      description: ID of the source warehouse
                    destination_warehouse_id:
                      type: integer
                      description: ID of the destination warehouse
                    status:
                      type: string
                      enum:
                        - DRAFT
                        - POSTED
                      description: Status of the transfer order
                    channel_id:
                      type: integer
                      nullable: true
                      description: >-
                        ID of the fulfillment source channel. Posting uses it
                        for the sales order the transfer order creates, so that
                        sales order can generate fulfillment orders.
                    note:
                      type: string
                      nullable: true
                      description: Note on the transfer order
                    auto_receive_order_on_arrival:
                      type: boolean
                      description: Automatically receive the transfer order when it arrives
                    items:
                      type: array
                      items:
                        type: object
                        required:
                          - quantity
                          - ordered_uom_id
                          - product_id
                        properties:
                          quantity:
                            type: integer
                            description: Quantity of the item
                          ordered_uom_id:
                            type: integer
                            description: ID of the ordered unit of measure
                          product_id:
                            type: integer
                            description: ID of the product
                          lot_id:
                            type: integer
                            nullable: true
                            description: >-
                              ID of an existing product lot to transfer. Provide
                              either `lot_id` or `lot_number` (the lot must
                              already exist; lots are not created on transfer).
                              Required when the product has lot tracking
                              enabled.
                          lot_number:
                            type: string
                            nullable: true
                            description: >-
                              Lot number to transfer (resolved to an existing
                              lot for the product). Use instead of `lot_id`.
                              Required when the product has lot tracking
                              enabled.
                          lot_name:
                            type: string
                            nullable: true
                            description: Alias for `lot_number`.
                    extra_costs:
                      type: array
                      nullable: true
                      description: >-
                        Extra costs (freight, duty, ...) for the transfer. When
                        the transfer order is posted, each extra cost is copied
                        onto its purchase order, prorated onto its receiving
                        reports, and added to the landed cost of the received
                        units. Separate from `shipping_cost`, which is
                        unchanged. Line filters (`category_ids`, `tag_ids`,
                        `internal_skus`, `supplier_skus`) are not supported and
                        are rejected.
                      items:
                        type: object
                        required:
                          - name
                          - unit_price
                        properties:
                          name:
                            type: string
                            maxLength: 255
                            description: Extra cost name
                          unit_price:
                            type: number
                            minimum: 0
                            description: Price per unit
                          quantity:
                            type: integer
                            minimum: 1
                            default: 1
                            nullable: true
                            description: Quantity. `line_total = quantity × unit_price`.
                          cost_allocation_type:
                            type: string
                            nullable: true
                            enum:
                              - UNIT_BASED_ALLOCATION
                              - VALUE_BASED_ALLOCATION
                              - WEIGHT_BASED_ALLOCATION
                              - VOLUME_BASED_ALLOCATION
                            description: Allocation method. Blank uses the tenant default.
                          cost_type:
                            type: string
                            nullable: true
                            enum:
                              - freight
                              - duty
                              - service
                              - other
                            description: Cost type. Blank is inferred from the name.
                          reference_number:
                            type: string
                            maxLength: 255
                            nullable: true
                            description: Carrier invoice / booking reference
                - type: object
                  properties:
                    status:
                      type: string
                      enum:
                        - DRAFT
                      description: Must be `DRAFT`.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        description: Unique identifier for the transfer order
                      number:
                        type: string
                        description: Transfer order number
                      date:
                        type: string
                        format: date
                        description: Date of the transfer order
                      arrival_date:
                        type: string
                        format: date
                        description: Expected arrival date
                      items_cost:
                        type: number
                        format: float
                        description: Total cost of items
                      shipping_cost:
                        type: number
                        format: float
                        description: Shipping cost
                      shipping_method:
                        type: string
                        description: Method of shipping
                      source_warehouse_id:
                        type: integer
                        description: ID of the source warehouse
                      destination_warehouse_id:
                        type: integer
                        description: ID of the destination warehouse
                      channel_id:
                        type: integer
                        nullable: true
                        description: ID of the fulfillment source channel
                      note:
                        type: string
                        nullable: true
                        description: Note on the transfer order
                      sales_order_id:
                        type: integer
                        nullable: true
                        description: >-
                          ID of the sales order created when the transfer order
                          was posted. `null` until posted.
                      purchase_order_id:
                        type: integer
                        nullable: true
                        description: >-
                          ID of the purchase order created when the transfer
                          order was posted. `null` until posted.
                      status:
                        type: string
                        description: Status of the transfer order (`DRAFT` or `POSTED`)
                      created_at:
                        type: string
                        format: date-time
                        description: Creation timestamp
                      updated_at:
                        type: string
                        format: date-time
                        description: Last update timestamp
                      items:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              description: Unique identifier for the transfer order item
                            transfer_order_id:
                              type: integer
                              description: ID of the associated transfer order
                            product_id:
                              type: integer
                              description: ID of the product
                            sku:
                              type: string
                              description: SKU of the product
                            product_name:
                              type: string
                              description: Name of the product
                            description:
                              type: string
                              description: Description of the item
                            quantity:
                              type: number
                              description: Quantity of the item
                            ordered_qty:
                              type: number
                              description: Ordered quantity of the item
                            base_uom_id:
                              type: integer
                              description: ID of the base unit of measure
                            ordered_uom_id:
                              type: integer
                              description: ID of the ordered unit of measure
                            unit_cost:
                              type: number
                              description: Unit cost of the item
                            line_item_cost:
                              type: number
                              description: Total cost of the line item
                            created_at:
                              type: string
                              format: date-time
                              description: Creation timestamp
                            updated_at:
                              type: string
                              format: date-time
                              description: Last update timestamp
                        description: List of items in the transfer order
                      extra_costs:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              description: Unique identifier for the extra cost
                            name:
                              type: string
                              description: Extra cost name (e.g. "Freight", "Customs duty")
                            cost_type:
                              type: string
                              nullable: true
                              enum:
                                - freight
                                - duty
                                - service
                                - other
                              description: >-
                                Cost type. Inferred from the name when not
                                supplied on create.
                            reference_number:
                              type: string
                              nullable: true
                              description: Carrier invoice / booking reference
                            quantity:
                              type: integer
                              description: Quantity
                            unit_price:
                              type: number
                              description: Price per unit
                            line_total:
                              type: number
                              description: '`quantity` × `unit_price`'
                            cost_allocation_type:
                              type: string
                              nullable: true
                              enum:
                                - UNIT_BASED_ALLOCATION
                                - VALUE_BASED_ALLOCATION
                                - WEIGHT_BASED_ALLOCATION
                                - VOLUME_BASED_ALLOCATION
                              description: >-
                                How the cost is allocated across the received
                                units
                        description: Extra costs (freight, duty, ...) on the transfer order
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Transfer order not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Transfer order not found.
        '422':
          description: >-
            The transfer order is not a draft (`Only draft transfer orders can
            be updated.`), `status` is not `DRAFT`, or another validation error.
            `error` holds the message.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    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.