Order · order
Portable POS order contract with source order identity, status, party references, and normalized line items. currencyCode and locationExternalId matter when targeting Square; lineItems[].productExternalId matters when targeting Lightspeed X-Series sales.
Entity type:
order· Methods: GET · POST
Portable POS order contract with source order identity, status, party references, and normalized line items. currencyCode and locationExternalId matter when targeting Square; lineItems[].productExternalId matters when targeting Lightspeed X-Series sales.
Endpoints
GET /unified/{accountId}/order # List normalized order records
POST /unified/{accountId}/order # Create / push one orderSchema
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | Yes | Stable source order identifier. Used as the idempotency key on writes. |
orderNumber | string | — | Human-readable order number / receipt / ticket label. |
processedAt | string · ISO 8601 | — | Order creation or processing timestamp when available. |
customerExternalId | string | — | Source customer identifier for mapping into target customer ids. |
locationExternalId | string | — | Source location / outlet identifier for targets that require a location mapping. |
currencyCode | string · ISO 4217 | — | 3-letter currency code when available. |
state | enum | — | Normalized order state. Values: OPEN, COMPLETED, CANCELED, PENDING. |
note | string | — | Internal or customer-visible order note. |
total | number | — | Order total in major currency units. |
taxTotal | number | — | Order tax total in major currency units. |
lineItems | object[] | Yes | Normalized order lines. At least one line is required. |
lineItems[].productExternalId | string | — | Source product identifier for line-item product mapping. |
lineItems[].sku | string | — | Source SKU when present. |
lineItems[].name | string | — | Line-item display name; product id can serve as a fallback label. |
lineItems[].quantity | number · > 0 | Yes | Ordered quantity. |
lineItems[].unitPrice | number | — | Unit price in major currency units. |
lineItems[].lineTax | number | — | Line tax total in major currency units. |
lineItems[].lineDiscount | number | — | Line discount total in major currency units. |
Example object
{
"externalId": "ord_55310",
"orderNumber": "R-2210",
"processedAt": "2026-07-08T17:20:45Z",
"customerExternalId": "cus_00417",
"locationExternalId": "loc_soho",
"currencyCode": "USD",
"state": "COMPLETED",
"total": 128,
"taxTotal": 10.24,
"lineItems": [
{
"productExternalId": "prd_tee_black_m",
"sku": "TEE-BLK-M",
"name": "Organic Tee — Black / M",
"quantity": 2,
"unitPrice": 32
},
{
"productExternalId": "prd_tote",
"sku": "TOTE-01",
"name": "Canvas Tote",
"quantity": 1,
"unitPrice": 64
}
]
}The same shape is used as the POST request body and returned by GET reads — reads from
every connected system are normalized to it.
Requests
curl "https://dev.flow.staging.linktoany.com/api/1.0/standalone-link-engine-service/unified/{accountId}/order?mappingKey={readKey}&pageSize=50" \
-H "authorization: Bearer <token>"curl -X POST "https://dev.flow.staging.linktoany.com/api/1.0/standalone-link-engine-service/unified/{accountId}/order?mappingKey={writeKey}" \
-H "authorization: Bearer <token>" \
-H "content-type: application/json" \
-d '{"externalId":"ord_55310","orderNumber":"R-2210","processedAt":"2026-07-08T17:20:45Z","customerExternalId":"cus_00417","locationExternalId":"loc_soho","currencyCode":"USD","state":"COMPLETED","total":128,"taxTotal":10.24,"lineItems":[{"productExternalId":"prd_tee_black_m","sku":"TEE-BLK-M","name":"Organic Tee — Black / M","quantity":2,"unitPrice":32},{"productExternalId":"prd_tote","sku":"TOTE-01","name":"Canvas Tote","quantity":1,"unitPrice":64}]}'Supported systems
| System | Read | Write | Auth | Rate limit |
|---|---|---|---|---|
| Shopify | Yes | Yes | OAuth 2.0 | 1 req / s |
| Lightspeed X-Series | Yes | Yes | OAuth 2.0 | 5 req / s · 300 req / min |
| Square | Yes | Yes | OAuth 2.0 | 5 req / s |
Customer · customer
Cross-system customer contract for the POS vertical. firstName and lastName stay optional for read portability, but Square, Lightspeed R-Series, and Clover write targets require them when creating customers.
Product · product
Portable POS product contract. externalId and name are the stable core fields; description, price, taxable, currencyCode, and categoryExternalId become important for some write targets such as Lightspeed R-Series, Square, and Clover.