Skip to main content

Order Processing

Use this API to register orders from an external commerce platform in Mulltiply. The request supports batching, so multiple orders can be sent in a single call.

At A Glance

POST/v2/orders/process-thirdparty-orders
AreaDetail
Base URLhttps://api.mulltiply.org
Content typeapplication/json
Authenticationx-api-key request header
Request bodyArray of order objects
Required nested objectscustomer, lineItems

Headers

Content-Type: application/json
x-api-key: YOUR_API_KEY

Request Body

Request body
[
{
"syncId": "external://order/ORD-1001",
"customer": {
"syncId": "external://customer/CUST-1001"
},
"lineItems": [
{
"lineItemSyncId": "external://line-item/LINE-1001",
"quantity": 9,
"variantSyncId": "external://variant/VAR-1004"
}
],
"platform": "SHOPIFY",
"paymentStatus": "PAID",
"fulfillmentStatus": "FULFILLED"
}
]

Order Mapping

API fieldSource fieldDescription
syncIdThird-party order IDUnique order identifier from the source platform.
platformSource platform nameOriginating platform, for example SHOPIFY.
paymentStatusThird-party payment statusWhether the order has been paid.
fulfillmentStatusThird-party fulfillment statusWhether the order has been fulfilled.

Customer Mapping

API fieldSource fieldDescription
customer.syncIdThird-party customer IDUnique customer identifier from the source platform.

Additional customer fields such as name, email, and phone can be included when available, but the source document treats customer.syncId as the core link.

Line Item Mapping

API fieldSource fieldDescription
lineItems[].lineItemSyncIdThird-party line item IDUnique ID for the order line item.
lineItems[].quantityLine item quantityNumber of units purchased.
lineItems[].variantSyncIdProduct variant IDUnique product variant identifier.

Processing Rules

  1. Send orders as an array.
  2. Include a stable, unique syncId for every order.
  3. Preserve third-party ID formats exactly as received from the source system.
  4. Include customer.syncId for customer matching.
  5. Include at least one line item for every order.
  6. Use variantSyncId to match purchased variants back to synced products/SKUs.

Status Values

Payment Status

ValueDescription
PAIDOrder has been fully paid.
NOT_PAIDOrder has not been paid.

Fulfillment Status

ValueDescription
FULFILLEDOrder has been fulfilled.
UNFULFILLEDOrder has not been fulfilled.

Final Payload Example

Final payload
[
{
"syncId": "external://order/ORD-1001",
"customer": {
"syncId": "external://customer/CUST-1001"
},
"lineItems": [
{
"lineItemSyncId": "external://line-item/LINE-1001",
"quantity": 9,
"variantSyncId": "external://variant/VAR-1004"
},
{
"lineItemSyncId": "external://line-item/LINE-1002",
"quantity": 10,
"variantSyncId": "external://variant/VAR-1003"
}
],
"platform": "SHOPIFY",
"paymentStatus": "PAID",
"fulfillmentStatus": "FULFILLED"
}
]

Source Data Checklist

Source fieldSourceUsed for
Order IDThird-party APIsyncId
Customer IDThird-party APIcustomer.syncId
Line Item IDThird-party APIlineItems[].lineItemSyncId
Product Variant IDThird-party APIlineItems[].variantSyncId
QuantityThird-party APIlineItems[].quantity
Payment StatusThird-party APIpaymentStatus
Fulfillment StatusThird-party APIfulfillmentStatus
PlatformIntegration configurationplatform

Response

Response with non-processable order
{
"error": false,
"status": true,
"statusCode": 200,
"responseTimestamp": "2026-03-19T07:38:42.800Z",
"data": {
"validRowsCount": 1,
"nonProcessableOrders": [
{
"orderData": {
"customer": {
"syncId": "external://customer/CUST-1001"
},
"lineItems": [
{
"lineItemSyncId": "external://line-item/LINE-1001",
"quantity": 9,
"variantSyncId": "external://variant/VAR-1004"
}
],
"platform": "SHOPIFY",
"paymentStatus": "PAID",
"fulfillmentStatus": "FULFILLED"
},
"error": "SyncId is required",
"row": 2,
"itemName": "SyncID is not present"
}
]
}
}

Implementation Checklist

  • Confirm every order has a stable third-party order ID.
  • Confirm every order has a customer ID.
  • Confirm every order has at least one line item.
  • Confirm every line item has a line item ID, quantity, and product variant ID.
  • Confirm platform and status values match supported values.
  • Send a JSON array, even when syncing one order.