POST v{version}/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 | date |
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. |
|
| 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": "ee083b49-857e-470f-880f-9f883c29874c",
"CRMMemberID": "sample string 1",
"RequestedDeliveryTimeUTC": "2025-11-07T23:39:58.3031429",
"GratuityAmount": 1.0,
"DeliveryChargeAmount": 1.0,
"ThirdPartyOrigin": "sample string 2",
"ThirdPartyTransactionID": "sample string 3",
"ThirdPartyReference": "sample string 4",
"OrderParams": "sample string 5",
"MergeOnToExistingBill": true,
"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
<SubmitCalculatedOnlineOrderV2ApiModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Tevalis.API.Core.Models.v2.OnlineOrdersV2.APIModels">
<CRMMemberID>sample string 1</CRMMemberID>
<CardSurchargeAmount>1</CardSurchargeAmount>
<CustomerInfo>
<AdditionalDetails>
<SaftCompanyAddress>sample string 2</SaftCompanyAddress>
<SaftCompanyName>sample string 1</SaftCompanyName>
<SaftTaxId>sample string 3</SaftTaxId>
</AdditionalDetails>
<City>sample string 5</City>
<ContactAccessCode>sample string 8</ContactAccessCode>
<ContactNumber>sample string 7</ContactNumber>
<FirstName>sample string 1</FirstName>
<LastName>sample string 2</LastName>
<Line1>sample string 3</Line1>
<Line2>sample string 4</Line2>
<PostCode>sample string 6</PostCode>
</CustomerInfo>
<DeliveryChargeAmount>1</DeliveryChargeAmount>
<GratuityAmount>1</GratuityAmount>
<MergeOnToExistingBill>true</MergeOnToExistingBill>
<OrderParams>sample string 5</OrderParams>
<RequestedDeliveryTimeUTC>2025-11-07T23:39:58.3031429</RequestedDeliveryTimeUTC>
<SiteId>1</SiteId>
<Tenders>
<SubmitCalculateOrderV2TenderApiModel>
<Amount>1</Amount>
<PLU>sample string 2</PLU>
<TenderTypeID>1</TenderTypeID>
</SubmitCalculateOrderV2TenderApiModel>
<SubmitCalculateOrderV2TenderApiModel>
<Amount>1</Amount>
<PLU>sample string 2</PLU>
<TenderTypeID>1</TenderTypeID>
</SubmitCalculateOrderV2TenderApiModel>
</Tenders>
<ThirdPartyOrigin>sample string 2</ThirdPartyOrigin>
<ThirdPartyReference>sample string 4</ThirdPartyReference>
<ThirdPartyTransactionID>sample string 3</ThirdPartyTransactionID>
<UID>ee083b49-857e-470f-880f-9f883c29874c</UID>
</SubmitCalculatedOnlineOrderV2ApiModel>
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 | date |
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": "f85c2bea-8654-4349-82ee-43950bb335ea",
"TableNumber": 1,
"PriceGroupID": 2,
"Covers": 3,
"ServiceChargeAmount": 1.0,
"Terminal": "sample string 4",
"TotalGross": 5.0,
"SalesArea": "sample string 6",
"EstimatedTimeUTC": "2025-11-07T23:39:58.3131728",
"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.