POST v2/OnlineOrders/SubmitCalculatedOnlineOrder
Sends an order to the POS
Request Information
URI Parameters
| Name | Type | Description | Additional information |
|---|---|---|---|
| version | string |
None. |
Body Parameters
SubmitCalculatedOnlineOrderV2ApiModel| Name | Type | Description | Additional information |
|---|---|---|---|
| SiteId | integer |
Required |
|
| UID | globally unique identifier |
The UID of the Calculated Order you are trying to Submit |
Required |
| CRMMemberID | string |
Optional - send the CRM Member ID that the order is for |
|
| RequestedDeliveryTimeUTC | datetime |
Optionally supply a delivery time for the order. This works the same way as hold order at a site, and is based on table rules that are setup. E.g. order for tomorrow at 10pm, the order will sit in the system and fire 45minutes before this time (so at 9:15pm) and will then be sent to the kitchen etc and act like a normal order. Stock is consumed when the order is initially placed so that the item is not out of stock when it's time to make the item |
|
| GratuityAmount | decimal number |
Specify if the bill contains gratuity/tip. This must be balanced by a Tender, e.g. £20 bill + £5 gratuity = £25 tender |
Range: inclusive between 0.01 and 1.79769313486232E+308 |
| DeliveryChargeAmount | decimal number |
Specify if the bill contains Delivery Charge. This must be balanced by a Tender e.g. £20 bill + £5 delivery charge = £25 tender |
Range: inclusive between 0.01 and 1.79769313486232E+308 |
| ThirdPartyOrigin | string |
Free text field to store the order origin if you are collaborating orders, e.g. deliveroo, ubereats. Leave empty otherwise |
String length: inclusive between 0 and 10000 |
| ThirdPartyTransactionID | string |
Free text field to store the partner order ID |
String length: inclusive between 0 and 10000 |
| ThirdPartyReference | string |
Free text field to store the partner order reference |
String length: inclusive between 0 and 10000 |
| OrderParams | string |
String length: inclusive between 0 and 10000 |
|
| MergeOnToExistingBill | boolean |
Specify if the Bill should merge into existing bills on a Table. |
|
| MergeOntoTransactionID | integer |
Optional - when merging on to an existing bill, specify the Transaction ID of the specific bill on the Table to merge on to. Use this when a Table has more than one open bill, the Transaction IDs can be obtained from the TablePayment Request endpoint. If this is not supplied, the order merges on to the last bill created on the Table. Minimum EPOS Version: 2026.11.05 |
Range: inclusive between 1 and 2147483647 |
| CardSurchargeAmount | decimal number |
Specify if the bill contains Card Surcharge. This must be balanced by a Tender e.g. £20 bill + £5 card surcharge = £25 tender |
Range: inclusive between 0.01 and 1.79769313486232E+308 |
| CustomerInfo | SubmitCalculatedOnlineOrderV2CustomerApiModel |
Customer Info |
Required |
| Tenders | Collection of SubmitCalculateOrderV2TenderApiModel |
Tenders for the bill, if tenders do not match the full bill amount the order will remain open on the POS and will not auto-finalize. This can be finalized either on the POS, or paid later via the TablePayment Endpoint |
Request Formats
application/json, text/json
{
"SiteId": 1,
"UID": "25a285d6-8ff5-454f-80b1-c0f1cfb22297",
"CRMMemberID": "sample string 1",
"RequestedDeliveryTimeUTC": "2026-11-06T15:43:24.0802989",
"GratuityAmount": 1.0,
"DeliveryChargeAmount": 1.0,
"ThirdPartyOrigin": "sample string 2",
"ThirdPartyTransactionID": "sample string 3",
"ThirdPartyReference": "sample string 4",
"OrderParams": "sample string 5",
"MergeOnToExistingBill": true,
"MergeOntoTransactionID": 1,
"CardSurchargeAmount": 1.0,
"CustomerInfo": {
"FirstName": "sample string 1",
"LastName": "sample string 2",
"Line1": "sample string 3",
"Line2": "sample string 4",
"City": "sample string 5",
"PostCode": "sample string 6",
"ContactNumber": "sample string 7",
"ContactAccessCode": "sample string 8",
"AdditionalDetails": {
"SaftCompanyName": "sample string 1",
"SaftCompanyAddress": "sample string 2",
"SaftTaxId": "sample string 3"
}
},
"Tenders": [
{
"TenderTypeID": 1,
"PLU": "sample string 2",
"Amount": 1.0
},
{
"TenderTypeID": 1,
"PLU": "sample string 2",
"Amount": 1.0
}
]
}
application/xml, text/xml
System.Xml.XmlDocument
application/x-www-form-urlencoded
Sample not available.
Response Information
Resource Description
CalculateOnlineOrderV2ResponseDto| Name | Type | Description | Additional information |
|---|---|---|---|
| UID | globally unique identifier |
The UID of your calculated order. This is used to submit the order when doing Submit Calculated Order |
|
| TableNumber | integer |
None. |
|
| PriceGroupID | integer |
None. |
|
| Covers | integer |
None. |
|
| ServiceChargeAmount | decimal number |
None. |
|
| Terminal | string |
Name of the Terminal that served the request |
|
| TotalGross | decimal number |
The total amount payable for the bill |
|
| SalesArea | string |
None. |
|
| EstimatedTimeUTC | datetime |
This returns either the KMS Average time, or the Minimum time specified via System Settings |
|
| StandardOrderItems | Collection of CalculateOnlineOrderV2ItemResponseDto |
None. |
|
| StandardMacroItems | Collection of CalculateOnlineOrderV2MacroItemResponseDto |
None. |
|
| Promotions | Collection of CalculateOnlineOrderV2PromotionResponseDto |
None. |
|
| ConfigurableDiscounts | Collection of CalculateOnlineOrderV2ConfigurableDiscountResponseDto |
None. |
Response Formats
application/json, text/json
{
"UID": "69ed31d1-ba87-4f31-8e07-4f7f952acd65",
"TableNumber": 1,
"PriceGroupID": 2,
"Covers": 3,
"ServiceChargeAmount": 1.0,
"Terminal": "sample string 4",
"TotalGross": 5.0,
"SalesArea": "sample string 6",
"EstimatedTimeUTC": "2026-11-06T15:43:24.095915",
"StandardOrderItems": [
{
"PriceID": "sample string 1",
"PLU": "sample string 2",
"Quantity": 3,
"OverridePrice": 1.0,
"ItemRef": "sample string 4",
"ExpGross": 5.0,
"ItemNotes": [
"sample string 1",
"sample string 2"
],
"Modifiers": [
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
},
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
}
]
},
{
"PriceID": "sample string 1",
"PLU": "sample string 2",
"Quantity": 3,
"OverridePrice": 1.0,
"ItemRef": "sample string 4",
"ExpGross": 5.0,
"ItemNotes": [
"sample string 1",
"sample string 2"
],
"Modifiers": [
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
},
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
}
]
}
],
"StandardMacroItems": [
{
"ParentOrderItem": {
"PriceID": "sample string 1",
"PLU": "sample string 2",
"Quantity": 3,
"OverridePrice": 1.0,
"ItemRef": "sample string 4",
"ExpGross": 5.0,
"ItemNotes": [
"sample string 1",
"sample string 2"
],
"Modifiers": [
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
},
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
}
]
},
"ChildrenOrderItems": [
{
"PriceID": "sample string 1",
"PLU": "sample string 2",
"Quantity": 3,
"OverridePrice": 1.0,
"ItemRef": "sample string 4",
"ExpGross": 5.0,
"ItemNotes": [
"sample string 1",
"sample string 2"
],
"Modifiers": [
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
},
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
}
]
},
{
"PriceID": "sample string 1",
"PLU": "sample string 2",
"Quantity": 3,
"OverridePrice": 1.0,
"ItemRef": "sample string 4",
"ExpGross": 5.0,
"ItemNotes": [
"sample string 1",
"sample string 2"
],
"Modifiers": [
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
},
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
}
]
}
]
},
{
"ParentOrderItem": {
"PriceID": "sample string 1",
"PLU": "sample string 2",
"Quantity": 3,
"OverridePrice": 1.0,
"ItemRef": "sample string 4",
"ExpGross": 5.0,
"ItemNotes": [
"sample string 1",
"sample string 2"
],
"Modifiers": [
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
},
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
}
]
},
"ChildrenOrderItems": [
{
"PriceID": "sample string 1",
"PLU": "sample string 2",
"Quantity": 3,
"OverridePrice": 1.0,
"ItemRef": "sample string 4",
"ExpGross": 5.0,
"ItemNotes": [
"sample string 1",
"sample string 2"
],
"Modifiers": [
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
},
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
}
]
},
{
"PriceID": "sample string 1",
"PLU": "sample string 2",
"Quantity": 3,
"OverridePrice": 1.0,
"ItemRef": "sample string 4",
"ExpGross": 5.0,
"ItemNotes": [
"sample string 1",
"sample string 2"
],
"Modifiers": [
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
},
{
"OptionGroupID": 1,
"OptionItemID": 2,
"IsRemove": true,
"OverridePrice": 1.0,
"ExpGross": 4.0,
"Modifiers": []
}
]
}
]
}
],
"Promotions": [
{
"PromotionID": 1,
"ExpGross": 2.0,
"AffectedItemRefs": [
"sample string 1",
"sample string 2"
],
"AffectedItems": [
{
"ItemRef": "sample string 1",
"AffectedValue": 2.0
},
{
"ItemRef": "sample string 1",
"AffectedValue": 2.0
}
]
},
{
"PromotionID": 1,
"ExpGross": 2.0,
"AffectedItemRefs": [
"sample string 1",
"sample string 2"
],
"AffectedItems": [
{
"ItemRef": "sample string 1",
"AffectedValue": 2.0
},
{
"ItemRef": "sample string 1",
"AffectedValue": 2.0
}
]
}
],
"ConfigurableDiscounts": [
{
"DiscountID": 1,
"ExpGross": 2.0,
"AffectedItemRefs": [
"sample string 1",
"sample string 2"
],
"AffectedItems": [
{
"ItemRef": "sample string 1",
"AffectedValue": 2.0
},
{
"ItemRef": "sample string 1",
"AffectedValue": 2.0
}
]
},
{
"DiscountID": 1,
"ExpGross": 2.0,
"AffectedItemRefs": [
"sample string 1",
"sample string 2"
],
"AffectedItems": [
{
"ItemRef": "sample string 1",
"AffectedValue": 2.0
},
{
"ItemRef": "sample string 1",
"AffectedValue": 2.0
}
]
}
]
}
application/xml
Sample not available.
text/xml
Sample not available.