Create Order

🔒

Requires write_order access scope.

Merchants can use it to create orders on behalf of their customers. orders are useful for merchants that need to do the following tasks:

1: Place an order on Station A and transfer to Station B to create the order and make the payment through this interface.
2: Quickly create an order for the buyer to pay.
3: Migrate merchant orders from other systems.

4:The buyer purchases an item that is out of stock, and the order is supplemented after restocking.

Note: The operation is scoped to a specific shop, identified by its unique domain prefix (shopdomain), ensuring all updates are applied to the correct store.

📘

Some order attribute values passed in the interface are not allowed to be modified in the subsequent checkout process after the order is successfully created.

📘

The relationships between entities

Request Parameters

Public Request Parameters

📘

Public Request Parameters

Body Parameters

Parameter NameTypeRequiredDescription
LineItemsArray of Object YA list of products included in the order. Each line item contains details like product ID, variant ID, and quantity.
line_item.variant_idstringYUnique identifier for the specific product variant.
line_item.product_idstringYUnique identifier for the product associated with the line item.
line_item.quantityintYThe quantity of the product being purchased.
shipping_addressObject YThe recipient's delivery address, including name, phone, email, and location details such as street address, city, province, country, and postal code.
shipping_address.first_namestringNFirst name of the recipient.
shipping_address.last_namestringYLast name of the recipient.
shipping_address.phonestringNRecipient's phone number (e.g., +86 150 1447 1143).
shipping_address.emailstringYEmail address of the recipient.
shipping_address.countrystringYCountry where the order will be delivered (e.g., United States).
shipping_address.country_codestringYISO code for the recipient's Country code , (e.g., US).
shipping_address.provincestringNProvince or state (e.g., New Mexico).
shipping_address.province_codestringYISO code for the recipient's Province Code ,(e.g., NM).
shipping_address.citystringYCity for delivery (e.g., San Jose).
shipping_address.addressstringYThe main street address for delivery (e.g., 1 Rue des Carrieres).
shipping_address.address1stringNAdditional address information (e.g., Suite 1234).
shipping_address.zipstringNZIP or postal code for delivery (e.g., 87036).
shipping_address.latitudestringNLatitude of the delivery location (e.g., 22.54).
shipping_address.longitudestringNLongitude of the delivery location (e.g., 114.06).
tagsArray of StringNCustom labels or tags for the order.
tax_totalstringYThe total tax amount applied to the order, represented as a numeric string (e.g., "9.99").
currency_codestringYThe currency code for the order (e.g., USD).
discountstringNDiscount amount or percentage applied to the order (e.g., "10.00" or "10%").
notestringNA note about the order, added by the merchant or customer.
payment_linestringNThe payment method used for the order.
•If you specify "COD" (Cash on Delivery) and the merchant has enabled this option, the order will use the Cash on Delivery payment method.
•If "COD" is disabled by the merchant, any value entered will default to the payment method configured in the store’s admin settings.
•For completed payment orders, payment_line reflects the final payment method used.
For unpaid orders, payment_line serves as a suggested payment method and may not represent the final payment method used during checkout.
shipping_lineObjectNDetails of the shipping method selected for the order, including name, price, and description.
shipping_line.namestringYName of the shipping method (e.g., Free Shipping).
shipping_line.shipping_pricestringYPrice of the shipping method, as a numeric string (e.g., "10.00").
shipping_line.descstringNDescription of the shipping method.
refund_totalstringNTotal refund amount successfully processed for the order (e.g., "15.00").
refund_line_itemsArray of Object NDetails of refunded items, including quantities, taxes, and discounts.
created_atstringYThe timestamp when the order was created.
updated_atstringYThe timestamp of the last update to the order.
order_statusstringYThe current status of the order (e.g., pending, fulfilled, canceled).
financial_statusstringYThe financial status of the order (e.g., paid, unpaid, refunded).

Response Explanation

Public Response Fields

📘

Public Response Parameters

Successful Response

ObjectFieldsTypeDesc
OrderidstringUnique identifier for the order.
numberstring Order number, intended to simplify merchant references.
notestringA custom note input by the merchant regarding the order.
statusstringThe current Order status
financial_statusstringIndicates the payment status of the order
fulfillment_statusstringRepresents the shipping or fulfillment progress of the order
email_statusstringThe status of recall emails for the order.
waiting means “pending to send”
send means “sent”
cancel_reasonstring Reason for order cancellation, if applicable.
recovery_statusstringThe recovery_status field tracks the progress of an order recall process
waiting means “Waiting to be recalled”
sending means “Recall notification in progress”
recalling means “Recall in progress)”
failed means “Recall failed)”
success means “Recall successful)”
payment_methodstringThe payment method used for the order (e.g., apple_pay, credit_card, online).
discount_codestring@Deprecated.
discount_applicationsstringDetails of discounts
customer_notestringA note provided by the customer during checkout.
landing_sitestring@Deprecated.
buyer_accepts_marketingbool Indicates whether the customer has agreed to receive marketing promotions.
currencystring Currency code for the order
total_pricestringThe final price paid by the customer, including taxes, discounts, tips, additional fee and shipping fees.
sub_totalstringThe sum of the prices for all line items in the order.

- If order.config.product_tax_included is true, the amount includes total_tax (excluding shipping_tax_total); otherwise, it excludes tax.
- Formula: sub_total = sum(line_item.price * line_item.quantity).
total_discountstringTotal amount of discounts applied to the order, including product, shipping, and payment discounts.
total_taxstringTotal tax amount applied to the products in the order, excluding shipping tax.
total_shippingstringTotal shipping fee for the order.
code_discount_totalstringTotal discount from discount codes applied to the order.
line_item_discount_totalstring@Deprecated.total Product discount, numeric string, for example: "9.99",includes code_discount_total
gift_card_totalstringGift card discount amount, numeric string, for example: "9.99"
total_refund_pricestringTotal refund amount has been successfully processed, numeric string, for example: "9.99"
total_refund_discountstring@Deprecated.Total discount refunded, numeric string, for example: "9.99"
additional_totalstringTotal amount of additional charges, numeric string, for example: "9.99"
addtional_pricesarray of objectthe detail list of additional charges
addtional_prices.namestringName of the additional charge.
addtional_prices.pricestringAmount of the additional charge.
total_refund_taxstring@Deprecated.
shipping_tax_totalstringTotal shipping tax amount of the order.
customer_deleted_atstringTimestamp indicating when the customer associated with the order was deleted.
created_atstringTimestamp indicating when the order was created.
updated_atstringTimestamp indicating when the order was updated.
deleted_atstringTimestamp indicating when the order was deleted.
canceled_atstringTimestamp indicating when the order was canceled.
placed_atstringTimestamp indicating when the order was paid.
total_tip_receivedstringTotal amount of tips received for the order.
tagsstring Custom tags added to the order by merchants or the system.
browser_ipstring@Deprecated. IP address of the customer who placed the order.
last_landing_urlstring@Deprecated. URL of the last page visited by the customer before checkout.
total_paidstringTotal amount paid by the customer for the order.
sourcestring@Deprecated.Product source url
source_nameobject@Deprecated. Product source
source_name.datastring@Deprecated. Product source
source_name.created_atstring@Deprecated. Timestamp of the creation
last_referrer_showobject@Deprecated. Last interaction source
last_referrer_show.datastring@Deprecated. Interaction source data.
last_referrer_show.created_atstring@Deprecated. Timestamp of the last interaction.
shipping_lineobjectInformation about the shipping plan selected for the order.
shipping_line.namestringName of the shipping plan.
customerCustomerCustomer details
shipping_addressAddressDelivery address
billing_addressAddressBilling address
payment_linePaymentLinePayment details
line_itemsarray of LineItemList of purchased products
fulfillmentsarray of FulfillmentList of fulfillments
logistics_codestringLogistics code
refer_infostringVisit information
configOrderConfigOrder configuration information
sales_platformstring@Deprecated. Platform where the order was placed
checkout_urlstringThe checkout page url for the order with storeDomain
location_lineLocationLineMerchant's warehouse address.
invoice_urlstringThe checkout page url for the order without storeDomain

Error Response

Error responses in the API can be represented using two different fields: errors and error. Both fields provide details about issues encountered during request processing. Below is an explanation of the fields with their respective examples and descriptions.

FieldTypeExampleDescription
errorsArray[ "file number error"]A list of errors encountered during the request processing.
FieldTypeExampleDescription
errorString "store is not active"Indicates an error encountered during the process

Error Detail

ErrorCodeDescriptionPossible reasons
422StatusUnprocessableEntity1:The shipping address does not pass;ShippingAddress is nil.
2:Get transaction settings error;not exists checkout setting
3:Failed to create order line items;record_not_found
4:create_order_calculate_failed;order price calculate error
5:create_order_build_failed;customer or paymentline information error
6:order_id {order_id} CreateOrderBatchOption failed
7:Get Order Detail failed
8:DecreaseInventory failed
406Create order failed
500StatusInternalServerErrorAborted/NotFound/Unimplemented/Unauthenticated/DeadlineExceeded

API Structure Overview

Language
Credentials
Header
URL
Click Try It! to start a request and see the response here!