app-id must be the provider's app ID (restaurant ID), NOT your sales channel app IDcity-id must match the city used when fetching providers and plans{
"voucher": "WELCOME10",
"notes": "Ring doorbell",
"delivery_window_id": 12,
"location": {
"id": 9989,
"is_corporate_location": false
},
"cart_items": [
{
"subscription": {
"plan_id": 2455, // Plan Version ID
"dates": [
{
"date": "2025-11-25",
"options": [101, 102, 103]
},
{
"date": "2025-11-26",
"options": [104, 105, 106]
}
],
"is_paused": false,
"primary_location_id": 9989,
"secondary_location_id": 9989,
"notes": "No spicy food"
},
"quantity": 1,
"is_subscription": true
}
],
"is_subscription": true,
"is_redeeming": false,
"channel_app_id": 44
}| Field | Type | Description |
|---|---|---|
channel_app_id | integer | Your sales channel app ID |
cart_items | array | Order items (always 1 subscription) |
is_subscription | boolean | Always true for subscriptions |
| Field | Type | Description |
|---|---|---|
plan_id | integer | Plan version ID (from selected version) |
dates | array | Meal selections per date |
quantity | integer | Always 1 for subscriptions |
is_paused | boolean | Start subscription paused? (usually false) |
"dates": [
{
"date": "2025-11-25",
"options": [101, 102, 103]
}
]date: Delivery date in "YYYY-MM-DD" format (from Plans & Versions dates array)options: Meal option IDs for that date (from Plans & Versions masters)auto_select feature where Techrar automatically selects meal options, eliminating the need to send dates array.| Field | Type | Description |
|---|---|---|
delivery_window_id | integer | Time slot ID (from provider's delivery_windows) |
location.id | integer | Customer location ID |
primary_location_id | integer | Same as location.id |
secondary_location_id | integer | Same as location.id (optional alternative location) |
is_corporate_location | boolean | Always false |
| Field | Type | Description |
|---|---|---|
is_pickup | boolean | Set to true |
pickup_branch_id | integer | Branch ID (from provider's pickup_branches) |
| Field | Type | Description |
|---|---|---|
voucher | string | Voucher code to apply |
is_redeeming | boolean | Redeem wallet balance? |
notes | string | Order notes |
secondary_mobile_number | string | Alternative contact number |
dates array must match the subscription duration:dates array:"dates": ["2025-11-25", "2025-11-26", "2025-11-27"]masters to find options for each date:"masters": [
{
"day": "2025-11-25",
"plan_categories": [
{
"name_en": "Breakfast",
"options": [
{"id": 101, "product": {...}},
{"id": 102, "product": {...}}
]
}
]
}
]"dates": [
{
"date": "2025-11-25",
"options": [101, 205, 308] // Breakfast, Lunch, Dinner
},
{
"date": "2025-11-26",
"options": [102, 206, 309]
}
]voucher field with code:{
"voucher": "WELCOME10",
...
}{
"is_redeeming": true,
...
}restaurant.id fielddates array onlydaily_num_of_items