Skip to main content
POST

Authorizations

Authorization
string
header
required

Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.

Headers

Idempotency-Key
string

Optional idempotency token. A retry with the same key and body replays the original stored response (with an Idempotent-Replay: true header) instead of creating a second sales order. Reusing the key with a different body returns 409. Omit it to disable the guard.

Body

application/json
channel_id
integer
required

ID of the channel this order belongs to

Example:

1

order_date
string<date>
required

Date when the order was placed (YYYY-MM-DD)

Example:

"2024-01-15"

order_status
enum<string>
required

Current status of the order

Available options:
pending,
shipped,
fulfilled,
cancelled,
awaiting_shipment,
partially_shipped,
on_hold,
backorder,
partially_refunded,
committed,
processing,
completed
Maximum string length: 255
Example:

"pending"

items
object[]
required

Array of line items for the order

Minimum array length: 1
order_number
string | null

Order number shown on the sales order. Must be unique across all sales orders when supplied. Optional on create: when omitted, null, or an empty string, Luminous assigns LUM-{id} (the new order's Luminous ID) after the order is saved. If the channel is configured with an order-number prefix, the assigned number is {prefix}{n} from that channel's sequence instead. A supplied value is always kept as-is.

Maximum string length: 255
Example:

"ORD-2024-001"

customer_email
string<email> | null

Customer's email address

Maximum string length: 255
Example:

"customer@example.com"

customer_username
string | null

Customer's username

Maximum string length: 255
Example:

"customer123"

customer_po_number
string | null

Customer's purchase order number

Maximum string length: 255
Example:

"PO-2024-5678"

company_id
integer | null

ID of the company (business account) to associate with this sales order. When provided, the system will automatically populate the bill_to and ship_to addresses from the company's information. If company_id is provided, the bill_to and ship_to fields become optional.

Example:

123

bill_to
object

Billing address information. Required when company_id is not provided. When company_id is provided, this field is optional and will be populated from the company's billing address if not specified.

ship_to
object

Shipping address information. Required when company_id is not provided. When company_id is provided, this field is optional and will be populated from the company's default shipping address if not specified.

ship_date
string<date> | null

Date when the order was or will be shipped (YYYY-MM-DD)

Example:

"2024-01-20"

hold_until_date
string<date> | null

Date to hold the order until (YYYY-MM-DD)

Example:

"2024-01-18"

ship_by_date
string<date> | null

Required ship by date (YYYY-MM-DD)

Example:

"2024-01-25"

earliest_ship_date
string<date> | null

Earliest date the order can be shipped (YYYY-MM-DD)

Example:

"2024-01-18"

total_tax
number<float> | null

Total tax amount for the order

Required range: x >= 0
Example:

15.75

total_shipping
number<float> | null

Total shipping cost for the order

Required range: x >= 0
Example:

12.5

total_discount
number<float> | null

Total discount amount applied to the order. If omitted, any header trade discount configured on the linked company (see header_discount_enabled, header_discount_type, and header_discount_value on the company) is computed and applied automatically. Provide an explicit value to override.

Required range: x >= 0
Example:

10

requested_shipping_service
string | null

Requested shipping service or carrier

Maximum string length: 255
Example:

"FedEx Ground"

customer_notes
string | null

Notes from the customer

Example:

"Please handle with care - fragile items"

internal_notes
string | null

Internal notes for order processing

Example:

"Rush order - expedite processing"

custom_fields
object | null

Custom field values for the sales order

Example:
tags
string[] | null

Tags to associate with the sales order

Maximum string length: 255
Example:

Response

Sales order created successfully

data
object