Skip to main content
POST
Create Order

Create Order

Creates a new order programmatically. This is useful for importing orders from external systems or creating orders on behalf of customers.
The new order is always created with status: "pending". Totals (subtotal_price / total_price) are derived purely from each line item’s price × quantity — there is no inventory deduction, no discount-code resolution, and no tax/shipping calculation on this endpoint. Send a price on each line item if you need a non-zero total.

Request

Body Parameters

Any field not listed below is ignored (stripped before the order is created).
array
required
Array of line items for the order. Must contain at least one item.
object
Customer information. customer.email becomes the order email and the customer name is derived from first_name / last_name.
object
Shipping address for the order. Used to populate the order’s address, city, state, country, ZIP and phone.
object
Billing address. Same shape as shipping_address.
string
Order note.
array
Array of tag strings. Accepted by the request but not currently persisted.

Response

On success (201 Created) the created order is returned under order, including its line items. The order is created with financial_status: "pending" and fulfillment_status: "unfulfilled". Money fields are decimal strings; there is no top-level status field.

Example Response

Errors are returned as a standard { errors } body:

Error Codes