Order · order
Portable restaurant order contract with normalized identity, timing, party references, totals, and line items. lineItems[].productExternalId matters for Clover atomic-order writes; currencyCode and locationExternalId matter for Square writes.
Entity type:
order· Methods: GET · POST
Portable restaurant order contract with normalized identity, timing, party references, totals, and line items. lineItems[].productExternalId matters for Clover atomic-order writes; currencyCode and locationExternalId matter for Square writes.
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 / restaurant / 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 migration note for the order. |
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 / menu-item identifier used for item mapping on push. |
lineItems[].name | string | — | Line-item display name. |
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_100482",
"orderNumber": "1043",
"processedAt": "2026-07-08T19:42:11Z",
"customerExternalId": "cus_51b8d02",
"locationExternalId": "loc_downtown",
"currencyCode": "USD",
"state": "COMPLETED",
"total": 41.5,
"taxTotal": 3.32,
"lineItems": [
{
"productExternalId": "itm_smash_burger",
"name": "Smash Burger",
"quantity": 2,
"unitPrice": 14.5
},
{
"productExternalId": "itm_fries",
"name": "Fries",
"quantity": 1,
"unitPrice": 6,
"lineDiscount": 1.5
}
]
}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_100482","orderNumber":"1043","processedAt":"2026-07-08T19:42:11Z","customerExternalId":"cus_51b8d02","locationExternalId":"loc_downtown","currencyCode":"USD","state":"COMPLETED","total":41.5,"taxTotal":3.32,"lineItems":[{"productExternalId":"itm_smash_burger","name":"Smash Burger","quantity":2,"unitPrice":14.5},{"productExternalId":"itm_fries","name":"Fries","quantity":1,"unitPrice":6,"lineDiscount":1.5}]}'Supported systems
| System | Read | Write | Auth | Rate limit |
|---|---|---|---|---|
| Toast | Yes | — | API token | 5 req / s |
| Square | Yes | Yes | OAuth 2.0 | 5 req / s |
| Clover (Asia Pacific) | Yes | Yes | API token | 5 req / 6s |
| Clover (US) | Yes | Yes | API token | 10 req / s · 100 req / min |
| Lightspeed K-Series | Yes | — | OAuth 2.0 | 100 req / 60s |
Modifier group · modifier_group
Portable restaurant modifier-group contract for menu customization groups.
Product · product
Portable restaurant product contract. externalId and name are the stable base fields. categoryExternalId is especially important for Clover targets, where item-group mapping is required.