---
title: "Create order"
method: POST
path: "/shops/{SHOP_ID}/orders"
tags: ["Order"]
---

# Create order

`POST /shops/{SHOP_ID}/orders`

Create order

## Path parameters

- `SHOP_ID` integer, required

## Request body

- object
  - `id` integer — Order ID
  - `system_id` integer — System ID
  - `shop_id` integer, required — Shop ID
  - `inserted_at` string, date-time — Order creation time
  - `updated_at` string, date-time — Order update time
  - `status` 0 | 17 | 11 | 12 | 13 | 20 | 1 | 8 | 9 | 2 | 3 | 16 | 4 | 15 | 5 | 6 | 7 — Order status
  - `status_name` string — Order status name
  - `bill_full_name` string — Customer name
  - `bill_phone_number` string — Phone number of customer
  - `bill_email` string — Customer email
  - `conversation_id` string — Conversation ID
  - `page_id` string — Facebook page ID
  - `post_id` string — Post ID
  - `ad_id` string — Ad ID
  - `shipping_fee` integer — Shipping fee
  - `partner_fee` integer — Fee from shipping partner
  - `fee_marketplace` integer — Fees from e-commerce platforms
  - `customer_pay_fee` boolean — Customer pay shipping fee
  - `is_free_shipping` boolean — Free shipping
  - `is_livestream` boolean — Is livestream order
  - `is_live_shopping` boolean — Is live shopping order
  - `is_smc` boolean — Shopping on Messenger
  - `received_at_shop` boolean — true: Sales at counter, false: Sell online
  - `total_discount` integer — Discount total
  - `note` string — Internal note
  - `note_print` string — Note for printing
  - `returned_reason` integer — Return reason
  - `sub_status` integer — Reason for delivery delay
  - `warehouse_id` string — Warehouse ID
  - `warehouse_info` object — Warehouse information
    - `name` string — Warehouse name
    - `phone_number` string — Warehouse phone number
    - `full_address` string — Warehouse full address
    - `address` string — Warehouse address
    - `province_id` string — Province ID
    - `district_id` string — District ID
    - `commune_id` string — Commune ID
    - `affiliate_id` string — Affiliate ID
    - `ffm_id` string — FFM ID
    - `has_snappy_service` boolean — Has Snappy service
    - `custom_id` string — Custom ID
  - `creator_id` string — Creator ID
  - `creator` object — Order creator
    - `id` string — Creator ID
    - `fb_id` string — Facebook ID of creator
    - `name` string — Creator name
    - `avatar_url` string — Creator avatar URL
  - `items` object[] — Product list
    - `product_id` string — Product ID
    - `quantity` integer, required — Quantity
    - `returned_count` integer — Returned count
    - `assigning_seller_id` string — Assigning seller ID
    - `quantity_by_combo_products` object[] — Quantity by combo products
    - `discount_each_product` integer — Discount for each product
    - `is_bonus_product` boolean — Is bonus product
    - `is_discount_percent` boolean — Is discount by percent
    - `is_wholesale` boolean — Is wholesale
    - `is_composite` boolean — Is composite product
    - `one_time_product` boolean — One time product
    - `note` string — Product note
    - `note_product` string — Product note
    - `inserted_at` string, date-time — Inserted at
    - `measure_group_id` integer — Measure group ID
    - `variation_info` object — Variation information. Optional when creating/updating an order (the backend defaults it to an empty object if omitted). Its inner fields are not individually required, but sending `retail_price` is recommended so the line price is correct.
      - `id` string — Variation ID
      - `name` string — Product name
      - `product_id` string — Product ID
      - `retail_price` integer — Retail price. Not strictly required, but recommended when creating/updating an order so the line price is correct.
      - `detail` string — Variation detail
      - `images` string[] — Variation images
      - `fields` object[] — Variation fields
        - `id` string — Field ID
        - `name` string — Field name
        - `value` string — Field value
        - `keyValue` string — Key value
      - `barcode` string — Barcode
      - `brand_id` string — Brand ID
      - `category_ids` integer[] — Category IDs
      - `display_id` string — Display ID
      - `product_display_id` string — Product display ID
      - `last_imported_price` integer — Last imported price
      - `is_upsale_product` boolean — Upsale product
      - `weight` integer — Weight
      - `measure_info` object — Measure information
        - `measure_id` integer — Measure ID
        - `exchange_value` integer — Exchange value
      - `avg_price` integer — Average import price
    - `components` object[] — Product components
      - `component_id` string — Component ID
      - `quantity` integer — Quantity
      - `variation_id` string — Variation ID
      - `variation_info` object — Variation information
    - `variation_id` string, required — Variation ID (SKU of the variation can also be used)
  - `partner` object — Partner information
    - `partner_id` integer — Partner ID
    - `cod` integer — Reconciliation COD
    - `extend_code` string — Shipping order ID on partner system
    - `total_fee` integer — Total fee
    - `updated_at` string, date-time — Updated at
    - `delivery_name` string — Shipper name
    - `delivery_tel` string — Delivery phone
    - `picked_up_at` string, date-time — Picked up at
    - `sort_code` string — Sort code
    - `paid_at` string, date-time — Paid at
    - `system_created` boolean — System created
    - `extend_update` object[] — Update from courier
      - `key` string — Update key
      - `status` string — Status
      - `tracking_id` string — Partner extend code
      - `note` string — Courier notes
      - `update_at` string, date-time — Updated at
    - `partner_status` 'waiting' | 'request_received' | 'processing_picked_up' | 'picking_up' | 'delay_pickup' | 'picked_up' | 'waiting_on_the_way' | 'on_the_way' | 'contact_delivery_company' | 'out_for_delivery' | 'delay_delivery' | 'inform_recipient' | 'undeliverable' | 'waiting_for_return' | 'delivered' | 'delivered_cod' | 'returning' | 'returned' | 'returned_cod' | 'canceled', nullable — Partner shipping status
    - `partner_name` string, nullable — Partner name
    - `first_delivery_at` string, date-time, nullable — First delivery time
    - `first_undeliverable_at` string, date-time, nullable — First failed delivery time
    - `order_number_vtp` string, nullable — Viettel Post tracking number
    - `printed_form` object, nullable — Printed form
  - `shipping_address` ShippingAddress, nullable — Shipping address
    - `address` string, nullable — Street address. When creating an order via API, if `address` is provided but `province_id` is left empty, the system automatically parses this free-text address to fill in `province_id`, `district_id` and `commune_id`. Auto-fill is skipped when the parsed location is in Thailand (country code 66) or when no commune can be resolved from the text.
    - `commnue_name` string, nullable — Commune name
    - `commune_id` string, nullable — Commune ID
    - `country_code` string, nullable — Country code
    - `district_id` string, nullable — District ID
    - `district_name` string, nullable — District name
    - `full_address` string, nullable — Full address
    - `full_name` string, nullable — Full name
    - `new_full_address` string, nullable — New full address
    - `new_province_id` string, nullable — New province ID
    - `phone_number` string, nullable — Phone number
    - `post_code` string, nullable — Post code
    - `province_id` string, nullable — Province ID
    - `province_name` string, nullable — Province name
    - `render_type` string, nullable — Render type
  - `payment_purchase_histories` object[] — Payment histories
    - `amount` integer — Amount of money
    - `type` string — Payment type
    - `inserted_at` string, date-time — Transaction time
    - `result_code` string — Result code
    - `ipn_reply` boolean — IPN reply
    - `voucher_amount` integer — Voucher amount
    - `tags` string[] — Tags
  - `tags` object[] — Tags list
    - `id` integer — Tag ID
    - `name` string — Tag name
  - `marketer` object — Marketer information
    - `id` string — Marketer ID
    - `name` string — Marketer name
    - `email` string — Marketer email
    - `phone_number` string — Marketer phone number
    - `fb_id` string — Marketer Facebook ID
    - `avatar_url` string — Marketer avatar URL
  - `pke_mkter` string — Marketer ID
  - `activated_combo_products` object — Activated combo products information
    - `combo_product_id` integer — Combo product ID
    - `quantity_combo_activated` integer — Quantity combo activated
    - `combo_product_info` object — Combo product information
  - `activated_promotion_advances` object[] — Activated promotion advances information
    - `id` integer — ID
    - `promotion_advance_id` string — Promotion advance ID
    - `promotion_advance_info` object — Promotion advance information
  - `invoice_info_list` object[] — Invoice information list
    - `error` string — Error message if any
    - `invoice_detail` object — Invoice detail information
      - `company_address` string — Company address
      - `company_address_breakdown` object — Company address breakdown
        - `company_additional_info` string — Company additional information
        - `company_barangay` string — Company barangay
        - `company_city` string — Company city
        - `company_detailed_address` string — Company detailed address
        - `company_district` string — Company district
        - `company_full_address` string — Company full address
        - `company_postcode` string — Company postcode
        - `company_province` string — Company province
        - `company_region` string — Company region
        - `company_state` string — Company state
        - `company_town` string — Company town
      - `company_email` string — Company email
      - `company_name` string — Company name
      - `company_tax_id` string — Company tax ID
    - `invoice_type` string — Invoice type
    - `is_requested` boolean — Request for invoice
    - `order_sn` string — Order code on the marketplace
  - `reports_by_phone` object — Reports by phone number
    - `order_fail` integer — Number of failed orders
    - `order_success` integer — Number of successful orders
    - `warning` integer — Number of warnings orders
  - `tracking_link` string — Link confirm order
  - `ads_source` string — Advertising source
  - `bank_payments` object — Payment method
  - `transfer_proofs` object[] — Bank transfer payment proofs, including verification time, amount and receipt images
    - `id` integer — Transfer proof ID
    - `order_id` integer — Order ID
    - `shop_id` integer — Shop ID
    - `payment_id` string — Bank payment method ID (matches a key in `bank_payments`)
    - `amount` integer — Transferred amount
    - `images` string[] — Transfer receipt images
    - `note` string, nullable — Note
    - `is_income` boolean — Money received (true) or paid out (false)
    - `is_verify` boolean — Whether the transfer has been verified
    - `verify_at` string, date-time, nullable — Verification time
    - `verifier` object, nullable — Verifier information
      - `id` string — Verifier ID
      - `name` string — Verifier name
      - `fb_id` string — Facebook ID of verifier
      - `avatar_url` string — Verifier avatar URL
    - `creator` object, nullable — Creator information
      - `id` string — Creator ID
      - `name` string — Creator name
      - `fb_id` string — Facebook ID of creator
      - `avatar_url` string — Creator avatar URL
    - `last_editor` object, nullable — Last editor information
      - `id` string — Editor ID
      - `name` string — Editor name
      - `fb_id` string — Facebook ID of editor
      - `avatar_url` string — Editor avatar URL
    - `order_info` object, nullable — Additional order information
    - `inserted_at` string, date-time — Transfer proof creation time
    - `updated_at` string, date-time — Transfer proof update time
  - `shopify_order_id` string — Shopify order ID
  - `shopify_abandon_checkout_id` integer — Shopify abandon checkout ID
  - `is_abandoned_order` boolean — Abandoned-cart order (from Shopify / Webcake / Storecake)
  - `cod` integer — Cash on delivery
  - `cash` integer — Cash payment
  - `account` integer — Order source ID
  - `account_name` string — Order source name
  - `advanced_platform_fee` object — Fees from e-commerce platforms
    - `ads_top_up` integer — Ads wallet top-up
    - `affiliate_commission` integer — Affiliate commission
    - `diff_shipping_fee` integer — Difference shipping fee
    - `marketplace_voucher` integer — Marketplace voucher
    - `payment_fee` integer — Payment fee
    - `platform_commission` integer — Platform commission
    - `seller_transaction_fee` integer — Seller transaction fee
    - `service_fee` integer — Service fee
    - `sfp_service_fee` integer — SFP service fee
  - `printing_count` integer — Printing count
  - `money_to_collect` integer — Money to collect
  - `marketplace_id` '-2' | '-3' | '-4' | '-9' | '-16' | '-17' | '-20' | '-25' | '-27' | '-28' — Marketplace ID
  - `total_price` integer — Total price
  - `shop_customer_address_id` string — Customer address ID
  - `customer` object — Customer information
    - `fb_id` string — Customer Facebook ID
    - `id` string — Customer ID
    - `name` string — Customer name
    - `page_id` string — Page ID
  - `total_quantity` integer — Total quantity
  - `time_assign_marketer` string, date-time — Time assign marketer
  - `p_utm_source` string — UTM Source
  - `p_utm_medium` string — UTM Medium
  - `p_utm_campaign` string — UTM Campaign
  - `p_utm_term` string — UTM Term
  - `p_utm_content` string — UTM Content
  - `p_utm_id` string — UTM ID
  - `utm_affiliate` string — Affiliate
  - `link` string — Link
  - `status_history` object[] — Status update history
    - `avatar_url` string — Avatar URL
    - `editor` object — Editor information
    - `editor_fb` string — Editor Facebook ID
    - `editor_id` string — Editor ID
    - `name` string — Name
    - `old_status` integer — Old status
    - `status` integer — Status
    - `updated_at` string, date-time — Updated at
  - `duplicated_phone` boolean — Duplicated phone
  - `order_currency` string — Order currency
  - `charged_by_vnpay` integer — Charged by VNPay
  - `charged_by_qrpay` integer — Charged by QRPay
  - `custom_id` string — Custom ID
  - `last_editor` object — Last editor information
    - `id` string — Editor ID
    - `fb_id` string — Facebook ID of editor
    - `name` string — Editor name
    - `email` string — Editor email
    - `avatar_url` string — Editor avatar URL
    - `phone_number` string — Editor phone number
  - `last_editor_id` string — Last editor ID
  - `charged_by_momo` integer — Charged by MoMo
  - `prepaid_by_point` object — Prepaid by point
    - `money` integer — Money amount
    - `point` integer — Point amount
  - `bank_transfer_images` string[] — Bank transfer images
  - `transfer_money` integer — Transfer money
  - `lock_order_by_user` string — Lock order by user ID
  - `assigning_care` object — Assigning care information
    - `id` string — Care ID
    - `fb_id` string — Facebook ID of care
    - `name` string — Care name
    - `email` string — Care email
    - `avatar_url` string — Care avatar URL
    - `phone_number` string — Care phone number
  - `assigning_care_id` string — Assigning care ID
  - `time_assign_care` string, date-time — Time assign care
  - `assigning_seller` object — Assigning seller information
    - `id` string — Seller ID
    - `fb_id` string — Facebook ID of seller
    - `name` string — Seller name
    - `email` string — Seller email
    - `avatar_url` string — Seller avatar URL
    - `phone_number` string — Seller phone number
  - `einvoices` EInvoice[]
    - `actual_shipping_fee` integer — Shipping fee
    - `adjust_amount` integer, nullable — Percentage reduction on revenue
    - `adjustment_criteria` 1 | 2 | 3 | 4, nullable — Adjustment criteria
    - `adjustment_type` 1 | 2 | 3, nullable — Adjustment type
    - `allocation_discounts` object[] — Allocation discounts
    - `allocation_type` 1 | 2 — Allocation type
    - `bank_account_number` string, nullable — Bank account number
    - `bank_name` string, nullable — Bank name
    - `budget_unit_code` string, nullable — Budget unit code
    - `buyer_not_get_invoice` boolean — Buyer not get invoice
    - `creator` object, nullable — Creator information
      - `avatar_url` string, nullable — Avatar URL
      - `fb_id` string, nullable — Facebook ID
      - `id` string — Creator ID
      - `name` string — Creator name
    - `discount` integer — General discount amount
    - `display_id` integer — Display ID
    - `einvoice_account_id` integer, nullable — E-invoice account ID
    - `email` string — Email address
    - `full_name` string — Buyer's name
    - `id` integer — Invoice ID
    - `identity_code` string, nullable — Buyer's identity code
    - `included_tax` integer — Included tax
    - `invoice_no` string — Invoice number
    - `invoice_series` string — Invoice series
    - `invoice_type` integer, nullable — Invoice type
    - `is_adjust_amount` boolean — Is adjust amount
    - `is_included_tax` boolean — Is included tax
    - `items` object[] — Invoice items
      - `adjust_amount` integer, nullable — Adjust amount
      - `discount` integer — Discount amount
      - `id` integer — Item ID
      - `is_calculation_tax` boolean — Is calculation tax
      - `is_component` boolean — Is component
      - `is_surcharge` boolean, nullable — Is surcharge
      - `measure` string, nullable — Measure
      - `note` string, nullable — Note
      - `order_id` integer — Order ID
      - `order_item_id` integer — Order item ID
      - `quantity` integer — Quantity
      - `retail_price` integer — Retail price
      - `tax` integer — Tax rate
      - `type` integer — Item type
      - `variation` object, nullable — Variation information
        - `custom_id` string, nullable — Custom ID
        - `display_id` integer — Display ID
        - `fields` object[] — Variation fields
          - `id` string — Field ID
          - `keyValue` string — Key value
          - `name` string — Field name
          - `value` string — Field value
        - `product` object, nullable — Product information
          - `custom_id` string, nullable — Product custom ID
          - `display_id` integer — Product display ID
          - `name` string — Product name
        - `product_id` string, nullable — Product ID
      - `variation_id` string, nullable — Variation ID
      - `variation_info` object, nullable — Variation information details
        - `detail` string, nullable — Variation detail
        - `diff_discount` integer, nullable — Different discount
        - `discount` integer, nullable — Discount amount
        - `item_total_amount_with_tax` integer, nullable — Item total amount with tax
        - `item_total_amount_without_tax` integer, nullable — Item total amount without tax
        - `measure_info` string, nullable — Measure information
        - `name` string, nullable — Product name
        - `product_id` string, nullable — Product ID
        - `product_tags` string[] — Product tags
        - `tax_amount` integer, nullable — Tax amount
        - `tax_rate` integer, nullable — Tax rate
        - `unit_price` integer, nullable — Unit price
    - `key_search` string, nullable — Key search
    - `last_editor_id` string, nullable — Last editor ID
    - `note` string, nullable — Note
    - `order_id` integer — Order ID
    - `order_info` object, nullable — Order information
      - `account` string, nullable — Account
      - `account_source` string, nullable — Account source
      - `cod` integer — COD amount
      - `custom_id` string, nullable — Custom ID
      - `display_id` integer — Display ID
      - `order_currency` string — Order currency
      - `order_sources` string, nullable — Order sources
      - `page` object, nullable — Page information
        - `id` string — Page ID
        - `name` string, nullable — Page name
        - `username` string, nullable — Username
      - `page_id` string, nullable — Page ID
      - `partner` object, nullable — Partner information
        - `extend_code` string, nullable — Extend code
        - `partner_id` integer — Partner ID
      - `shop_customer_id` string, nullable — Shop customer ID
      - `warehouse_id` string, nullable — Warehouse ID
    - `original_einvoice` object, nullable — Original e-invoice ID
    - `payment_method` string — Payment method
    - `phone_number` string — Phone number
    - `purchaser_tax_code` string, nullable — Purchaser tax code
    - `purchaser_unit` string, nullable — Purchaser unit
    - `release_date` string, date-time, nullable — Release date
    - `release_type` integer, nullable — Release type
    - `shipping_address` ShippingAddress, nullable — Shipping address
      - `address` string, nullable — Street address. When creating an order via API, if `address` is provided but `province_id` is left empty, the system automatically parses this free-text address to fill in `province_id`, `district_id` and `commune_id`. Auto-fill is skipped when the parsed location is in Thailand (country code 66) or when no commune can be resolved from the text.
      - `commnue_name` string, nullable — Commune name
      - `commune_id` string, nullable — Commune ID
      - `country_code` string, nullable — Country code
      - `district_id` string, nullable — District ID
      - `district_name` string, nullable — District name
      - `full_address` string, nullable — Full address
      - `full_name` string, nullable — Full name
      - `new_full_address` string, nullable — New full address
      - `new_province_id` string, nullable — New province ID
      - `phone_number` string, nullable — Phone number
      - `post_code` string, nullable — Post code
      - `province_id` string, nullable — Province ID
      - `province_name` string, nullable — Province name
      - `render_type` string, nullable — Render type
    - `shipping_fee` integer — Shipping fee
    - `shop_id` integer — Shop ID
    - `signature_type` integer — Signature type
    - `status` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 — Status
    - `tax` integer — Tax rate
    - `template_code` string, nullable — Template code
    - `total_amount` integer — Total amount
    - `verification_code` string, nullable — Tax Authority Code
    - `voucher_book` object, nullable — Voucher book
  - `charged_by_card` integer — Charged by card
  - `estimate_delivery_date` string, date-time — Estimate delivery date
  - `order_sources` string — Order sources ID
  - `charged_by_fundiin` integer — Charged by Fundiin
  - `surcharge` integer — Surcharge
  - `is_linked_partner` boolean — Is linked partner
  - `call_laters` object[] — Call laters
  - `last_update_status_at` string, date-time — Last update status at
  - `discount_by_customer_level` integer — Discount by customer level
  - `viewing` object[] — Viewing
  - `additional_info` object — Additional info
    - `service_partner` 'instant' — Service partner
    - `delivery_deadline` string, date-time — Delivery deadline (ISO8601, no timezone). Send null to clear.
  - `order_returned_ids` string — Order returned IDs
  - `cost_surcharge` integer — Cost surcharge
  - `time_send_partner` string, date-time — Time send partner
  - `charged_by_kredivo` integer — Charged by Kredivo
  - `discount` integer — Discount
  - `histories` object[] — Histories
  - `duplicated_customer` boolean — Duplicated customer
  - `customer_referral_code` object — Customer referral code
    - `active` string — Active status
    - `customer_id` string, uuid — Customer ID
    - `discount` string — Discount value
    - `format` string — Referral code format
    - `free_products_priced_between_approx` object — Free products priced between approximately
      - `active` string — Active status
      - `operator` string — Comparison operator
      - `price` string — Price threshold
    - `is_percent` string — Discount is percentage
    - `only_customers_with_level_will_have_referral_code` string — Only customers with level will have referral code
    - `referral_code` string — Referral code
    - `reward_points_for_old_customers` object — Reward points for customers
      - `active` string — Active status
      - `money` string — Money reward
      - `point` string — Point reward
    - `shop_customer_id` string, uuid — Shop customer ID
  - `tax` integer — Tax
  - `is_from_ecommerce` boolean — Is from e-commerce
  - `note_image` string[] — Note images
  - `shopify_draft_order_id` string — Shopify draft order ID
  - `display_id` integer — Display ID
  - `shop_partner_id` integer — Shop partner ID
  - `is_locked` boolean — Order lock
  - `merge_order` boolean — Allows merging orders

## Response `200`

Success

- object
  - `id` integer — Order ID
  - `system_id` integer — System ID
  - `shop_id` integer — Shop ID
  - `inserted_at` string, date-time — Order creation time
  - `updated_at` string, date-time — Order update time
  - `status` 0 | 17 | 11 | 12 | 13 | 20 | 1 | 8 | 9 | 2 | 3 | 16 | 4 | 15 | 5 | 6 | 7 — Order status
  - `status_name` string — Order status name
  - `bill_full_name` string — Customer name
  - `bill_phone_number` string — Phone number of customer
  - `bill_email` string — Customer email
  - `conversation_id` string — Conversation ID
  - `page_id` string — Facebook page ID
  - `post_id` string — Post ID
  - `ad_id` string — Ad ID
  - `shipping_fee` integer — Shipping fee
  - `partner_fee` integer — Fee from shipping partner
  - `fee_marketplace` integer — Fees from e-commerce platforms
  - `customer_pay_fee` boolean — Customer pay shipping fee
  - `is_free_shipping` boolean — Free shipping
  - `is_livestream` boolean — Is livestream order
  - `is_live_shopping` boolean — Is live shopping order
  - `is_smc` boolean — Shopping on Messenger
  - `received_at_shop` boolean — true: Sales at counter, false: Sell online
  - `total_discount` integer — Discount total
  - `note` string — Internal note
  - `note_print` string — Note for printing
  - `returned_reason` integer — Return reason
  - `sub_status` integer — Reason for delivery delay
  - `warehouse_id` string — Warehouse ID
  - `warehouse_info` object — Warehouse information
    - `name` string — Warehouse name
    - `phone_number` string — Warehouse phone number
    - `full_address` string — Warehouse full address
    - `address` string — Warehouse address
    - `province_id` string — Province ID
    - `district_id` string — District ID
    - `commune_id` string — Commune ID
    - `affiliate_id` string — Affiliate ID
    - `ffm_id` string — FFM ID
    - `has_snappy_service` boolean — Has Snappy service
    - `custom_id` string — Custom ID
  - `creator_id` string — Creator ID
  - `creator` object — Order creator
    - `id` string — Creator ID
    - `fb_id` string — Facebook ID of creator
    - `name` string — Creator name
    - `avatar_url` string — Creator avatar URL
  - `items` object[] — Product list. When creating or updating an order, each entry must include `variation_id` and `quantity`. `variation_info` is optional — if omitted, the backend treats it as an empty object; send it (with `retail_price`) when you need the line price to be explicit.
    - `product_id` string — Product ID
    - `quantity` integer, required — Quantity
    - `returned_count` integer — Returned count
    - `assigning_seller_id` string — Assigning seller ID
    - `quantity_by_combo_products` object[] — Quantity by combo products
    - `discount_each_product` integer — Discount for each product
    - `is_bonus_product` boolean — Is bonus product
    - `is_discount_percent` boolean — Is discount by percent
    - `is_wholesale` boolean — Is wholesale
    - `is_composite` boolean — Is composite product
    - `one_time_product` boolean — One time product
    - `note` string — Product note
    - `note_product` string — Product note
    - `inserted_at` string, date-time — Inserted at
    - `measure_group_id` integer — Measure group ID
    - `variation_info` object — Variation information. Optional when creating/updating an order (the backend defaults it to an empty object if omitted). Its inner fields are not individually required, but sending `retail_price` is recommended so the line price is correct.
      - `id` string — Variation ID
      - `name` string — Product name
      - `product_id` string — Product ID
      - `retail_price` integer — Retail price. Not strictly required, but recommended when creating/updating an order so the line price is correct.
      - `detail` string — Variation detail
      - `images` string[] — Variation images
      - `fields` object[] — Variation fields
        - `id` string — Field ID
        - `name` string — Field name
        - `value` string — Field value
        - `keyValue` string — Key value
      - `barcode` string — Barcode
      - `brand_id` string — Brand ID
      - `category_ids` integer[] — Category IDs
      - `display_id` string — Display ID
      - `product_display_id` string — Product display ID
      - `last_imported_price` integer — Last imported price
      - `is_upsale_product` boolean — Upsale product
      - `weight` integer — Weight
      - `measure_info` object — Measure information
        - `measure_id` integer — Measure ID
        - `exchange_value` integer — Exchange value
      - `avg_price` integer — Average import price
    - `components` object[] — Product components
      - `component_id` string — Component ID
      - `quantity` integer — Quantity
      - `variation_id` string — Variation ID
      - `variation_info` object — Variation information
    - `id` integer — Item ID
    - `variation_id` string, required — Variation ID
  - `partner` object — Partner information
    - `partner_id` integer — Partner ID
    - `cod` integer — Reconciliation COD
    - `extend_code` string — Shipping order ID on partner system
    - `total_fee` integer — Total fee
    - `updated_at` string, date-time — Updated at
    - `delivery_name` string — Shipper name
    - `delivery_tel` string — Delivery phone
    - `picked_up_at` string, date-time — Picked up at
    - `sort_code` string — Sort code
    - `paid_at` string, date-time — Paid at
    - `system_created` boolean — System created
    - `extend_update` object[] — Update from courier
      - `key` string — Update key
      - `status` string — Status
      - `tracking_id` string — Partner extend code
      - `note` string — Courier notes
      - `update_at` string, date-time — Updated at
    - `partner_status` 'waiting' | 'request_received' | 'processing_picked_up' | 'picking_up' | 'delay_pickup' | 'picked_up' | 'waiting_on_the_way' | 'on_the_way' | 'contact_delivery_company' | 'out_for_delivery' | 'delay_delivery' | 'inform_recipient' | 'undeliverable' | 'waiting_for_return' | 'delivered' | 'delivered_cod' | 'returning' | 'returned' | 'returned_cod' | 'canceled', nullable — Partner shipping status
    - `partner_name` string, nullable — Partner name
    - `first_delivery_at` string, date-time, nullable — First delivery time
    - `first_undeliverable_at` string, date-time, nullable — First failed delivery time
    - `order_number_vtp` string, nullable — Viettel Post tracking number
    - `printed_form` object, nullable — Printed form
  - `shipping_address` ShippingAddress, nullable — Shipping address
    - `address` string, nullable — Street address. When creating an order via API, if `address` is provided but `province_id` is left empty, the system automatically parses this free-text address to fill in `province_id`, `district_id` and `commune_id`. Auto-fill is skipped when the parsed location is in Thailand (country code 66) or when no commune can be resolved from the text.
    - `commnue_name` string, nullable — Commune name
    - `commune_id` string, nullable — Commune ID
    - `country_code` string, nullable — Country code
    - `district_id` string, nullable — District ID
    - `district_name` string, nullable — District name
    - `full_address` string, nullable — Full address
    - `full_name` string, nullable — Full name
    - `new_full_address` string, nullable — New full address
    - `new_province_id` string, nullable — New province ID
    - `phone_number` string, nullable — Phone number
    - `post_code` string, nullable — Post code
    - `province_id` string, nullable — Province ID
    - `province_name` string, nullable — Province name
    - `render_type` string, nullable — Render type
  - `payment_purchase_histories` object[] — Payment histories
    - `amount` integer — Amount of money
    - `type` string — Payment type
    - `inserted_at` string, date-time — Transaction time
    - `result_code` string — Result code
    - `ipn_reply` boolean — IPN reply
    - `voucher_amount` integer — Voucher amount
    - `tags` string[] — Tags
  - `tags` object[] — Tags list
    - `id` integer — Tag ID
    - `name` string — Tag name
  - `marketer` object — Marketer information
    - `id` string — Marketer ID
    - `name` string — Marketer name
    - `email` string — Marketer email
    - `phone_number` string — Marketer phone number
    - `fb_id` string — Marketer Facebook ID
    - `avatar_url` string — Marketer avatar URL
  - `pke_mkter` string — Marketer ID
  - `activated_combo_products` object — Activated combo products information
    - `combo_product_id` integer — Combo product ID
    - `quantity_combo_activated` integer — Quantity combo activated
    - `combo_product_info` object — Combo product information
  - `activated_promotion_advances` object[] — Activated promotion advances information
    - `id` integer — ID
    - `promotion_advance_id` string — Promotion advance ID
    - `promotion_advance_info` object — Promotion advance information
  - `invoice_info_list` object[] — Invoice information list
    - `error` string — Error message if any
    - `invoice_detail` object — Invoice detail information
      - `company_address` string — Company address
      - `company_address_breakdown` object — Company address breakdown
        - `company_additional_info` string — Company additional information
        - `company_barangay` string — Company barangay
        - `company_city` string — Company city
        - `company_detailed_address` string — Company detailed address
        - `company_district` string — Company district
        - `company_full_address` string — Company full address
        - `company_postcode` string — Company postcode
        - `company_province` string — Company province
        - `company_region` string — Company region
        - `company_state` string — Company state
        - `company_town` string — Company town
      - `company_email` string — Company email
      - `company_name` string — Company name
      - `company_tax_id` string — Company tax ID
    - `invoice_type` string — Invoice type
    - `is_requested` boolean — Request for invoice
    - `order_sn` string — Order code on the marketplace
  - `reports_by_phone` object — Reports by phone number
    - `order_fail` integer — Number of failed orders
    - `order_success` integer — Number of successful orders
    - `warning` integer — Number of warnings orders
  - `tracking_link` string — Link confirm order
  - `ads_source` string — Advertising source
  - `bank_payments` object — Payment method
  - `transfer_proofs` object[] — Bank transfer payment proofs, including verification time, amount and receipt images
    - `id` integer — Transfer proof ID
    - `order_id` integer — Order ID
    - `shop_id` integer — Shop ID
    - `payment_id` string — Bank payment method ID (matches a key in `bank_payments`)
    - `amount` integer — Transferred amount
    - `images` string[] — Transfer receipt images
    - `note` string, nullable — Note
    - `is_income` boolean — Money received (true) or paid out (false)
    - `is_verify` boolean — Whether the transfer has been verified
    - `verify_at` string, date-time, nullable — Verification time
    - `verifier` object, nullable — Verifier information
      - `id` string — Verifier ID
      - `name` string — Verifier name
      - `fb_id` string — Facebook ID of verifier
      - `avatar_url` string — Verifier avatar URL
    - `creator` object, nullable — Creator information
      - `id` string — Creator ID
      - `name` string — Creator name
      - `fb_id` string — Facebook ID of creator
      - `avatar_url` string — Creator avatar URL
    - `last_editor` object, nullable — Last editor information
      - `id` string — Editor ID
      - `name` string — Editor name
      - `fb_id` string — Facebook ID of editor
      - `avatar_url` string — Editor avatar URL
    - `order_info` object, nullable — Additional order information
    - `inserted_at` string, date-time — Transfer proof creation time
    - `updated_at` string, date-time — Transfer proof update time
  - `shopify_order_id` string — Shopify order ID
  - `shopify_abandon_checkout_id` integer — Shopify abandon checkout ID
  - `is_abandoned_order` boolean — Abandoned-cart order (from Shopify / Webcake / Storecake)
  - `cod` integer — Cash on delivery
  - `cash` integer — Cash payment
  - `account` integer — Order source ID
  - `account_name` string — Order source name
  - `advanced_platform_fee` object — Fees from e-commerce platforms
    - `ads_top_up` integer — Ads wallet top-up
    - `affiliate_commission` integer — Affiliate commission
    - `diff_shipping_fee` integer — Difference shipping fee
    - `marketplace_voucher` integer — Marketplace voucher
    - `payment_fee` integer — Payment fee
    - `platform_commission` integer — Platform commission
    - `seller_transaction_fee` integer — Seller transaction fee
    - `service_fee` integer — Service fee
    - `sfp_service_fee` integer — SFP service fee
  - `printing_count` integer — Printing count
  - `money_to_collect` integer — Money to collect
  - `marketplace_id` '-2' | '-3' | '-4' | '-9' | '-16' | '-17' | '-20' | '-25' | '-27' | '-28' — Marketplace ID
  - `total_price` integer — Total price
  - `shop_customer_address_id` string — Customer address ID
  - `customer` object — Customer information
    - `fb_id` string — Customer Facebook ID
    - `id` string — Customer ID
    - `name` string — Customer name
    - `page_id` string — Page ID
  - `total_quantity` integer — Total quantity
  - `time_assign_marketer` string, date-time — Time assign marketer
  - `p_utm_source` string — UTM Source
  - `p_utm_medium` string — UTM Medium
  - `p_utm_campaign` string — UTM Campaign
  - `p_utm_term` string — UTM Term
  - `p_utm_content` string — UTM Content
  - `p_utm_id` string — UTM ID
  - `utm_affiliate` string — Affiliate
  - `link` string — Link
  - `status_history` object[] — Status update history
    - `avatar_url` string — Avatar URL
    - `editor` object — Editor information
    - `editor_fb` string — Editor Facebook ID
    - `editor_id` string — Editor ID
    - `name` string — Name
    - `old_status` integer — Old status
    - `status` integer — Status
    - `updated_at` string, date-time — Updated at
  - `duplicated_phone` boolean — Duplicated phone
  - `order_currency` string — Order currency
  - `charged_by_vnpay` integer — Charged by VNPay
  - `charged_by_qrpay` integer — Charged by QRPay
  - `custom_id` string — Custom ID
  - `last_editor` object — Last editor information
    - `id` string — Editor ID
    - `fb_id` string — Facebook ID of editor
    - `name` string — Editor name
    - `email` string — Editor email
    - `avatar_url` string — Editor avatar URL
    - `phone_number` string — Editor phone number
  - `last_editor_id` string — Last editor ID
  - `charged_by_momo` integer — Charged by MoMo
  - `prepaid_by_point` object — Prepaid by point
    - `money` integer — Money amount
    - `point` integer — Point amount
  - `bank_transfer_images` string[] — Bank transfer images
  - `transfer_money` integer — Transfer money
  - `lock_order_by_user` string — Lock order by user ID
  - `assigning_care` object — Assigning care information
    - `id` string — Care ID
    - `fb_id` string — Facebook ID of care
    - `name` string — Care name
    - `email` string — Care email
    - `avatar_url` string — Care avatar URL
    - `phone_number` string — Care phone number
  - `assigning_care_id` string — Assigning care ID
  - `time_assign_care` string, date-time — Time assign care
  - `assigning_seller` object — Assigning seller information
    - `id` string — Seller ID
    - `fb_id` string — Facebook ID of seller
    - `name` string — Seller name
    - `email` string — Seller email
    - `avatar_url` string — Seller avatar URL
    - `phone_number` string — Seller phone number
  - `einvoices` EInvoice[]
    - `actual_shipping_fee` integer — Shipping fee
    - `adjust_amount` integer, nullable — Percentage reduction on revenue
    - `adjustment_criteria` 1 | 2 | 3 | 4, nullable — Adjustment criteria
    - `adjustment_type` 1 | 2 | 3, nullable — Adjustment type
    - `allocation_discounts` object[] — Allocation discounts
    - `allocation_type` 1 | 2 — Allocation type
    - `bank_account_number` string, nullable — Bank account number
    - `bank_name` string, nullable — Bank name
    - `budget_unit_code` string, nullable — Budget unit code
    - `buyer_not_get_invoice` boolean — Buyer not get invoice
    - `creator` object, nullable — Creator information
      - `avatar_url` string, nullable — Avatar URL
      - `fb_id` string, nullable — Facebook ID
      - `id` string — Creator ID
      - `name` string — Creator name
    - `discount` integer — General discount amount
    - `display_id` integer — Display ID
    - `einvoice_account_id` integer, nullable — E-invoice account ID
    - `email` string — Email address
    - `full_name` string — Buyer's name
    - `id` integer — Invoice ID
    - `identity_code` string, nullable — Buyer's identity code
    - `included_tax` integer — Included tax
    - `invoice_no` string — Invoice number
    - `invoice_series` string — Invoice series
    - `invoice_type` integer, nullable — Invoice type
    - `is_adjust_amount` boolean — Is adjust amount
    - `is_included_tax` boolean — Is included tax
    - `items` object[] — Invoice items
      - `adjust_amount` integer, nullable — Adjust amount
      - `discount` integer — Discount amount
      - `id` integer — Item ID
      - `is_calculation_tax` boolean — Is calculation tax
      - `is_component` boolean — Is component
      - `is_surcharge` boolean, nullable — Is surcharge
      - `measure` string, nullable — Measure
      - `note` string, nullable — Note
      - `order_id` integer — Order ID
      - `order_item_id` integer — Order item ID
      - `quantity` integer — Quantity
      - `retail_price` integer — Retail price
      - `tax` integer — Tax rate
      - `type` integer — Item type
      - `variation` object, nullable — Variation information
        - `custom_id` string, nullable — Custom ID
        - `display_id` integer — Display ID
        - `fields` object[] — Variation fields
          - `id` string — Field ID
          - `keyValue` string — Key value
          - `name` string — Field name
          - `value` string — Field value
        - `product` object, nullable — Product information
          - `custom_id` string, nullable — Product custom ID
          - `display_id` integer — Product display ID
          - `name` string — Product name
        - `product_id` string, nullable — Product ID
      - `variation_id` string, nullable — Variation ID
      - `variation_info` object, nullable — Variation information details
        - `detail` string, nullable — Variation detail
        - `diff_discount` integer, nullable — Different discount
        - `discount` integer, nullable — Discount amount
        - `item_total_amount_with_tax` integer, nullable — Item total amount with tax
        - `item_total_amount_without_tax` integer, nullable — Item total amount without tax
        - `measure_info` string, nullable — Measure information
        - `name` string, nullable — Product name
        - `product_id` string, nullable — Product ID
        - `product_tags` string[] — Product tags
        - `tax_amount` integer, nullable — Tax amount
        - `tax_rate` integer, nullable — Tax rate
        - `unit_price` integer, nullable — Unit price
    - `key_search` string, nullable — Key search
    - `last_editor_id` string, nullable — Last editor ID
    - `note` string, nullable — Note
    - `order_id` integer — Order ID
    - `order_info` object, nullable — Order information
      - `account` string, nullable — Account
      - `account_source` string, nullable — Account source
      - `cod` integer — COD amount
      - `custom_id` string, nullable — Custom ID
      - `display_id` integer — Display ID
      - `order_currency` string — Order currency
      - `order_sources` string, nullable — Order sources
      - `page` object, nullable — Page information
        - `id` string — Page ID
        - `name` string, nullable — Page name
        - `username` string, nullable — Username
      - `page_id` string, nullable — Page ID
      - `partner` object, nullable — Partner information
        - `extend_code` string, nullable — Extend code
        - `partner_id` integer — Partner ID
      - `shop_customer_id` string, nullable — Shop customer ID
      - `warehouse_id` string, nullable — Warehouse ID
    - `original_einvoice` object, nullable — Original e-invoice ID
    - `payment_method` string — Payment method
    - `phone_number` string — Phone number
    - `purchaser_tax_code` string, nullable — Purchaser tax code
    - `purchaser_unit` string, nullable — Purchaser unit
    - `release_date` string, date-time, nullable — Release date
    - `release_type` integer, nullable — Release type
    - `shipping_address` ShippingAddress, nullable — Shipping address
      - `address` string, nullable — Street address. When creating an order via API, if `address` is provided but `province_id` is left empty, the system automatically parses this free-text address to fill in `province_id`, `district_id` and `commune_id`. Auto-fill is skipped when the parsed location is in Thailand (country code 66) or when no commune can be resolved from the text.
      - `commnue_name` string, nullable — Commune name
      - `commune_id` string, nullable — Commune ID
      - `country_code` string, nullable — Country code
      - `district_id` string, nullable — District ID
      - `district_name` string, nullable — District name
      - `full_address` string, nullable — Full address
      - `full_name` string, nullable — Full name
      - `new_full_address` string, nullable — New full address
      - `new_province_id` string, nullable — New province ID
      - `phone_number` string, nullable — Phone number
      - `post_code` string, nullable — Post code
      - `province_id` string, nullable — Province ID
      - `province_name` string, nullable — Province name
      - `render_type` string, nullable — Render type
    - `shipping_fee` integer — Shipping fee
    - `shop_id` integer — Shop ID
    - `signature_type` integer — Signature type
    - `status` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 — Status
    - `tax` integer — Tax rate
    - `template_code` string, nullable — Template code
    - `total_amount` integer — Total amount
    - `verification_code` string, nullable — Tax Authority Code
    - `voucher_book` object, nullable — Voucher book
  - `charged_by_card` integer — Charged by card
  - `estimate_delivery_date` string, date-time — Estimate delivery date
  - `order_sources` string — Order sources ID
  - `charged_by_fundiin` integer — Charged by Fundiin
  - `surcharge` integer — Surcharge
  - `is_linked_partner` boolean — Is linked partner
  - `call_laters` object[] — Call laters
  - `last_update_status_at` string, date-time — Last update status at
  - `discount_by_customer_level` integer — Discount by customer level
  - `viewing` object[] — Viewing
  - `additional_info` object — Additional info
    - `service_partner` 'instant' — Service partner
    - `delivery_deadline` string, date-time — Delivery deadline (ISO8601, no timezone). Send null to clear.
  - `order_returned_ids` string — Order returned IDs
  - `cost_surcharge` integer — Cost surcharge
  - `time_send_partner` string, date-time — Time send partner
  - `charged_by_kredivo` integer — Charged by Kredivo
  - `discount` integer — Discount
  - `histories` object[] — Histories
  - `duplicated_customer` boolean — Duplicated customer
  - `customer_referral_code` object — Customer referral code
    - `active` string — Active status
    - `customer_id` string, uuid — Customer ID
    - `discount` string — Discount value
    - `format` string — Referral code format
    - `free_products_priced_between_approx` object — Free products priced between approximately
      - `active` string — Active status
      - `operator` string — Comparison operator
      - `price` string — Price threshold
    - `is_percent` string — Discount is percentage
    - `only_customers_with_level_will_have_referral_code` string — Only customers with level will have referral code
    - `referral_code` string — Referral code
    - `reward_points_for_old_customers` object — Reward points for customers
      - `active` string — Active status
      - `money` string — Money reward
      - `point` string — Point reward
    - `shop_customer_id` string, uuid — Shop customer ID
  - `tax` integer — Tax
  - `is_from_ecommerce` boolean — Is from e-commerce
  - `note_image` string[] — Note images
  - `shopify_draft_order_id` string — Shopify draft order ID
  - `display_id` integer — Display ID
  - `shop_partner_id` integer — Shop partner ID
  - `is_locked` boolean — Order lock
  - `merge_order` boolean — Allows merging orders

---

[API](https://skmtc.dev/pancake/apis/pancake-pos-open-api.md) · [All operations](https://skmtc.dev/pancake/apis/pancake-pos-open-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/pancake/pancake-pos-open-api/revisions/acb70aa4b3f5/schema)
