Channel Order Model


ⓘ Required Data

Please note that all the fields marked with * are required.


Parameters

Meaning

Type

channelOrderId*

The full unique ID from the ordering channel, cannot be reused within 48hr after pickup (across all accounts)

string

channelOrderDisplayId*

A more human‑readable order reference to provide

string

validationId

Returned from the dispatch availability endpoint, cannot be reused and is valid for 10 minutes from generation. If expired validationId is sent, the request fails with error 417

string

orderType*

Order Types are described here.

integer

deliveryIsAsap*

Boolean indicating whether delivery is ASAP

If the pickupTime is within 30 minutes, this should be true

boolean

pickupTime

Timestamp is in UTC yyyy-MM-ddTHH:mm:ssZ all time values in our API are in UTC time as per ISO8601

*(for delivery, pickup and any non-asap order)

string

deliveryTime

Timestamp is in UTC yyyy-MM-ddTHH:mm:ssZ all time values in our API are in UTC time as per ISO8601

(required for non‑ASAP delivery orders)

string

placedTime

Time when the order was placed
Timestamp is in UTC yyyy-MM-ddTHH:mm:ssZ all time values in our API are in UTC time as per ISO8601

string

estimatedPickupTime

Timestamp is in UTC yyyy-MM-ddTHH:mm:ssZ all time values in our API are in UTC time as per ISO8601

If your channel doesn't use an estimate for the pickup time, the easiest thing to do is to reuse pickupTime, and just send the same value for estimatedPickupTime.

LEGACY PARAMETER

string

courier

This specifies who is delivering an order. There are only two possible variations
• A channel handling delivery for the restaurant * must specify their channel name as "courier"

• If the channel is not set, the assumption is the restaurant are arranging their own delivery, and "restaurant" is set and is needed where orders are fulfilled by an integrated 'Dispatch' partner (see guide here for further info)

string

ageCheck

Boolean indicating whether the driver should verify customer's age.

boolean

deliveryAddress

object

deliveryAddress.street

The full street address in a single-line string
*required if delivery is done by restaurant or a dispatch provider via Deliverect

string

deliveryAddress.streetNumber

numerical addresses assigned to homes, businesses, and other properties
*required if delivery is done by restaurant or a dispatch provider via Deliverect

string

deliveryAddress.postalCode

The postal or zip code
*required if delivery is done by restaurant or a dispatch provider via Deliverect

string

deliveryAddress.area

The name of a geographic area or locality that groups a number of addressable objects for addressing purposes, without being an administrative unit

string

deliveryAddress.city

City
*required if delivery is done by restaurant or a dispatch provider via Deliverect

string

deliveryAddress.country

Country
*required if delivery is done by restaurant or a dispatch provider via Deliverect

string

deliveryAddress.extraAddressInfo

Additional instructions for locating the customer's location

string

deliveryAddress.coordinates

"deliveryAddress":
                                {
                                ..
                                    "coordinates":
                                    [
                                      "longitude": 9.0116776287441,
                                      "latitude": -79.516039105483
                                    ],
                                },

array

deliveryAddress.verification.pincode

"deliveryAddress":
                                {
                                ..
                                    "verification":
                                    {
                                        "pincode": "1234"
                                    }
                                },

object

deliveryInfo

Delivery information

object

deliveryInfo.packageSize

size of the package

string

deliveryInfo.transportType

e.g. Bicycle, Car, Motorbike etc

string

payment*

object

payment.amount*

The total amount paid should be sent as an integer with 2 decimal digits, for example, 1 euro would be sent as 100.

payment amount = sum of prices of all products in the order + deliveryCost + serviceCharge + deliveryCostTax + serviceChargeTax + sum of all tax amounts in the taxes array

integer

payment.type*

Type of payment(cash,card)
See section here

integer

payment.due

Outstanding amount due

integer

taxes

A consumption tax imposed by the government on the sale of goods and services.

array (object)

taxes.taxClassId

An Id corresponding to this tax class as (not currently needed)

integer

taxes.name

The display name for this category of taxes, which is how it should be printed on a receipt (not currently needed)

string

taxes.total*

For Tax Exclusive Locations. See section here for more details. It should be sent as an integer with 2 decimal digits e.g. 1 dollar would be sent as 100

integer

taxRemitted

In regions where the channel has responsibility for charging tax e.g. where they are 'Marketplace Facilitator' this is the total tax remitted. This value should be sent outside the taxes array.

integer

items*

array (object)

items.plu*

Stands for Price Look Up. The unique code of a product.

string

items.name*

name of the product or modifier

string

items.price*

Price for each of the items. It should be sent as an integer with 2 decimal digits e.g. 1 dollar would be sent as 100.

integer

items.quantity*

number of items

integer

items.remark

item level notes

string

items.itemUnavailableActions

For ordering platforms in the retail space, if items are not available customer's can specify a preference for actions to take detailed in the guide here

array (strings)

items.subItems

(where applicable)

array

items.discountReferenceIds

array referencing the discount to be applied to that specific item. The discount must be referenced on the "discounts" array. See guide here.

array

includeCutlery

The boolean indicates whether the cutlery/utensils have been requested or not.

boolean

table

For 'Eat-in' orders, a table number can be provided

string

orderIsAlreadyPaid*

Has the order already been paid?

boolean

note

Order-level note

string

numberOfCustomer

Number of customers for the order

integer

customer

object

customer.name

The name of the customer

string

customer.companyName

A company name where the order is placed from

string

customer.phoneNumber

Contact phone number

string

customer.phoneAccessCode

Where a contact centre is used to route calls using a unique code

string

customer.email

Contact email of the customer

string

customer.tin

Tax Identification Number

string

customer.note

Additional note on the customer

string

decimalDigits*

Number of decimal digits (typically 2)

integer

deliveryCost

Cost of delivery applied. It should be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100.

integer

deliveryCostTax

Cost of delivery tax. It should be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100.

integer

serviceCharge

Cost of any service charges. It should be sent as an integer with 2 decimal digits e.g. 1 euro would be sent as 100.

integer

serviceChargeTax

Tax on service charge

integer

tip

Tip intended for the restaurant

integer

driverTip

Tip intended for the courier

integer

bagFee

Bag fee applied

integer

discountTotal

Total discount as a negative value

integer (negative)

discounts

When generating a discount, sending the above field "discountTotal" is required.

Optionally, more detailed information about the discount can be provided via a "discounts" array (see complete guide here)

array of objects

discounts.type

Mapped channel discount type from the list of Discount Types in Deliverect

string

discounts.provider

The issuer of the discount i.e. the one who bears the discounted amount.

string

discounts.amount

Actual discounted amount

integer

discounts.name

The name that was given to the discount.

string

discounts.channelDiscountCode

The unique discount code used by the channel.

string