API Documentation

Change Logs

12-09-2025

  • Updated “riderDetails” object in Rider Status API

05-09-2025

  • Fixed “items” field name in Order Relay Sample Request Body

31-07-2025

  • Changed riderData to riderDetails in Rider Status Update API

24-07-2025

  • Changed taxes to taxIds in item bill component
  • Added gstType and timings in item component

01-07-2025

  • Updated ENUMs for rider status and order status API

Introduction


The Nutana API is organised around REST framework. A REST API (also known as RESTful API) is an application programming interface (API or web API) that conforms to the constraints of REST architectural style and allows for interaction with RESTful web services.

Endpoints


Menu Management

Menu Integration

API to push the menu to Nutana systems

Request URL

POST/api/v1/menu

Request Headers


HeaderDescription
keyAuth Key

Request Body


ParameterTypeDescriptionRequired
restaurantRestaurant ObjectInformation about the restaurant, such as id, opening timings.Yes
categoriesCategory ObjectA collection of menu categories, each containing detailed information about menu items and subcategoriesYes
timingsTiming ObjectList of timings applicable at either category, restaurant
orderBillComponentsOrder Bill ComponentsContains a list of charge ids applicable on order. Taxes won't be applied directly on the order
addOnGroupsAdd On Group ObjectA list of add-on groups, each containing options like extra toppings or sides that customers can select when customising menu items.
variantGroupsVariant Group ObjectA list of variant groups, each representing a set of customisable options (e.g., sizes or flavours) for menu items.Yes
variantsVariant ObjectA detailed list of individual variants associated with menu items.Yes
billComponentsBill Components ObjectContains a list of charges and taxesYes
callbackUrlstring

Each Menu Sync request includes a callbackUrl in the payload, along with a unique request_id that identifies the queued menu processing task. Once Nutana completes the asynchronous processing of the menu request, a callback is triggered to the provided callbackUrl. This callback notifies the requester of the completion status and any relevant results associated with the original request_id.


Example: https://<external-host>/callback/<req_id>
Data sent:
Callback URL Request body
Yes

Restaurant Object

ParameterTypeDescriptionRequired
idstringid of the restaurantYes
minPrepTimeintminimum prep time of the restaurantNo
timingsstringid of the timingNo

Category Object

ParameterTypeDescriptionRequired
idstringA unique identifier for the category.Yes
name stringThe name of the Category.
Ex: “South Indian Meals”, “Beverages” or “Soups”
Yes
descriptionstringA brief description of the Category. For example, "A selection of cold and hot drinks, including coffee and tea.”
imageUrlstringThe URL of an image representing the category.No
sortOrderintegerThe order in which categories appear.
Yes
itemsarray[Item]A list of menu items under the category. For example, the "Beverages" category could include items like "Latte" or "Iced Tea."Yes if there are no subcategories
No if there are subcategories
NOTE: Items and subcategories should not coexit under a same category
subcategoriesarray[Category]A list of subcategories, such as “Hot Beverages” and “Cold Beverages” under the “Beverages” category.Yes if there are no items
No if there are items
NOTE: Items and subcategories should not coexit under a same category
timingsstringCategory availability timing id.No
NOTE: If left blank, it is assumed to be enabled all day/week

Item Object

ParameterTypeDescriptionRequired
idstringA unique identifier for the menu item.Yes
namestringThe name of the menu item, like “Margherita Pizza”Yes
descriptionstringA detailed description of the item, such as "Classic pizza topped with fresh mozzarella, tomatoes, and basil.”
imageUrlstringA link to an image of the item.Yes
pricefloatThe base price of the item, such as 200.50 rupees for a Margherita Pizza.Yes
markupPricefloatAn optional higher price to strike offNo
inStockbooleanIndicates whether the item is available. For example, true means it’s in stock.Yes
recommendedbooleanShows whether the item is recommended. For instance, true for the restaurant's signature dish.No
isFavoritebooleanIndicates whether the item is marked as a favourite by customers. For example, true for a popular burger.No
foodTypestringSpecifies the food type
ENUM: "veg","non veg","egg”, “vegan”
Yes
tagsarray[string]Keywords associated with the item, like "Spicy," "Gluten-Free,"
variantGroupIdsarray[string]Ids that link the item to variant groups. For example, a pizza linked to a "Size" group with variants like Small or Large.
addOnGroupIdsarray[string]Ids that link the item to add-on groups, such as "Extra Cheese" or "Dips.”
nutritionalInfoNutritional Info ObjectDetailed nutrition details. For example, a sandwich may contain 300 calories, 10g of protein, and 5g of fat.
billComponentsItem Bill Components ObjectItem-specific billing components, such as an additional "Packing Charge" and taxesYes
fulfillmentModesarray[string]Indicates supported modes, ENUM: "delivery”Yes
sortOrderintegerDetermines the display order. For example, 1 means it’s shown at the top of the category.Yes
categoryIdstringID of the Parent subcategory.Yes
subcategoryIdstringID of the Parent subcategory.
ignoreOnobjectSpecifies what to ignore for a food item while billing. (For example, ignore tax)
gstTypestringSpecifies whether the item is applicable for "goods" tax type (Restaurant Liable) or
"services" tax type (Nutana Liable).
timingsstringItem Availability timing id.No
NOTE: If left blank, it is assumed to be enabled all day/week

Variant Group Object

ParameterTypeDescriptionRequired
idstringA unique identifier for the variant group.Yes
namestringThe name of the variant group, such as "Size" or "Crust Type.”Yes
variantIdsarray[string]Ids that link the group to specific variants. For example, a "Size" group may have IDs referencing "Small," "Medium," and "Large" variants.Yes
sortOrderintegerDetermines the display order. For example, 1 means the variant group appears at the top of the item's customisation options.Yes

Variant Object

ParameterTypeDescriptionRequired
idstringA unique identifier for the variant.Yes
namestringThe name of the variant, such as "Large," "Thin Crust," or "Extra Spicy.”Yes
pricefloatThe price of the variant. For instance, 550.25 rupees for a large pizza.Yes
markupPricefloatAn optional higher price for premium variants. For example, 600.99 rupees for a large pizza with extra cheese.No
inStockbooleanIndicates whether the variant is available. For example, true for in-stock items and false for out-of-stock options.Yes
foodTypestringSpecifies the food type
ENUM: "veg","non veg","egg”, “vegan”
Yes
addOnGroupIdsarray[string]Links the variant to specific add-on groups. For example, a "Dips" group for pizza variants.No
nutritionalInfoNutritional Info ObjectNutritional details for the variant. For example, a large pizza variant might have 400 calories, 15g of protein, and 10g of fat.No
fulfillmentModesarray[string]Indicates the delivery or pickup options for the variant.
ENUM: delivery
Yes
variantGroupIdsarray[string]Links the variant to its parent group. For example, the "Large" variant is part of the "Size" group.Yes
billComponentsItem Bill Components ObjectBilling components for the variant, such as packing chargesNo
sortOrderintegerDetermines the display order.Yes

Add On Group Object

ParameterTypeDescriptionRequired
idstringA unique identifier for the add-on group.Yes
namestringThe name of the add-on group, such as "Dips," "Extra Toppings," or "Drinks.”Yes
minimumNeededintegerThe minimum number of selections required. For example, a "Toppings" group might require at least 1 selection.Yes
maximumAllowedintegerThe maximum number of selections allowed. For instance, the "Dips" group might allow up to 3 selections.Yes
addOnsAdd On ObjectA list of available add-ons. For example, a "Toppings" group might include "Mushrooms," "Olives," and "Jalapeños.”Yes
sortOrderintegerDetermines the display order.Yes

Add On Object

ParameterTypeDescriptionRequired
idstringA unique identifier for the add-on.Yes
namestringThe name of the add-on, such as "Extra Cheese," "BBQ Sauce," or "Garlic Bread.”Yes
pricefloatThe price of the add-on. For example, 20 rupees for "Extra Cheese.”Yes
inStockbooleanIndicates whether the add-on is available. For instance, true means it’s in stock.Yes
foodTypestringSpecifies the type of food, such as "Veg," "Non-Veg," or "Egg." For example, a bacon add-on would be marked as "Non-Veg.”Yes
nutritionalInfoNutritional Info ObjectDetailed nutritional information. For example, "Extra Cheese" might have 100 calories and 8g of fat.
fulfillmentModesarray[string]Indicates how the add-on can be ordered. For example, a beverage add-on might be limited to "Dine-In" and "Pickup.”Yes
sortOrderintegerDetermines the display order. For instance, 1 means the add-on appears at the top of the options list.Yes
imageUrlstringimage url

Item Bill Components Object

ParameterTypeDescriptionRequired
chargesarray[string]List of charge identifiers applicable to the itemYes
taxIdsarray[string]A list of taxes identifiersYes

Nutritional Info Object

ParameterTypeDescriptionRequired
carbohydrateobjectThe carbohydrate content in the food. For example, 30g of carbohydrates in a serving of pasta.No
fiberobjectThe dietary fiber content. For instance, 5g of fiber in a salad bowl.No
proteinobjectThe protein content in the food item. For example, 20g of protein in a chicken breast.No
calorieobjectThe total caloric value. For instance, 400 kcal for a slice of pizza.No
sodiumobjectThe sodium content. For example, 200mg in a bowl of soup.No
cholesterolobjectThe cholesterol content. For example, 50mg in a cheese sandwich.No
foodAmountobjectAmount of food. Merchant needs to provide these information in g, kg, ml or l.No
mineralsobjectInformation about mineral content, like 50mg of calcium or 20mg of iron.No
totalSugarobjectThe total sugar content, such as 10g in a cookie.No
addedSugarobjectThe additional sugar added during preparation. For instance, 5g in a soft drink.No
totalFatobjectThe total fat content, such as 15g in a burger.No
saturatedFatobjectThe saturated fat content. For instance, 5g in a buttery croissant.No
transFatobjectThe trans fat content. For example, 1g in deep-fried snacks.No
vitaminsobjectInformation about vitamins, like Vitamin C (20mg) or Vitamin D (5mg).No
servingInfostringAdditional serving information, such as "1 cup" or "2 pieces.”No
additiveMapobjectDetails about additives, such as “Contains artificial sweeteners”.No
allergensobjectInformation about allergens. For example, "Contains peanuts.”No
additionalInfo objectAny other relevant nutritional details, like "Gluten-free" or "Low sodium.”No
saltobjectThe salt content in the item. For instance, 1.5g of salt in chips.No

Nutritional Value Object

ParameterTypeDescriptionRequired
valuefloatThe numerical value of the nutrient. For instance, 200 for calories.No
unitstringThe unit of measurement, such as g (grams), mg (milligrams), or kcal (kilocalories).No
namestringThe name of the nutrient, such as "Protein" or "Vitamin A.”No

Bill Components Object

ParameterTypeDescriptionRequired
chargesarray[Charge]A list of additional charges, such as "Packaging Fee (35 rupees)"Yes
taxesarray[Tax]A list of taxesYes

Order Bill Components Object

ParameterTypeDescriptionRequired
chargesarray[string]list of charge identifier Yes

Charge Object

ParameterTypeDescriptionRequired
idstringA unique identifier for the charge.Yes
namestringThe name of the charge, such as "Delivery Fee" or "Convenience Charge.”Yes
descriptionstringAdditional details about the charge.
valuefloatThe value of the charge.Yes
typestringThe type of charge, such as "Fixed" (e.g., 20 rupees per order) or "Percentage" (e.g., 5% of the order total).
ENUM: “FIXED”, “PERCENTAGE”
fulfillmentModesarray[string]Specifies where the charge applies.
ENUM: Delivery
Yes
taxesarray[string]Links the charge to applicable tax IDs. For example, a "Service Charge" might have "TAX002" applied.Yes

Tax Object

ParameterTypeDescriptionRequired
idstringA unique identifier for the tax.Yes
namestringThe name of the tax, such as "CGST" or "SGST.”
descriptionstringAdditional details about the tax. For example, "Applies to all food items.”Yes
valuefloatThe tax rate. For instance, 2.5% for CGST.Yes
fulfillmentModesarray[string]Specifies where the tax is applicable. For example, a "Luxury Tax" might only apply to "Dine-In" orders.Yes

Timing Object

ParameterTypeDescriptionRequired
idstringA unique identifier for the timing.Yes
daysDay ObjectA list of day-wise availability. For example, the restaurant might offer "Breakfast: Mon-Fri" and "Dinner: Sat-Sun.”Yes

Day Object

ParameterTypeDescriptionRequired
daystringThe day of the week. For instance, "Monday", "Tuesday", etc.Yes
slotsSlot ObjectA list of time slots for the day. For example, breakfast on Monday might have a time slot of "08:00 - 11:00”Yes

Slot Object

ParameterTypeDescriptionRequired
startTimestringThe starting time for the slot in HH:MM format. For example, "09:00" for breakfast service.
NOTE: use 24hr formate
Yes
endTimestringThe ending time for the slot in HH:MM format. For example, "11:30" when breakfast ends.
NOTE: use 24hr formate
Yes

Allergen Info Object

ParameterTypeDescriptionRequired
allergenstringThe name of the allergen. For example, "Peanuts", "Gluten", or "Dairy.”
allergenDescstringA detailed description of the allergen. For instance, "Contains peanuts as an ingredient in the sauce.”

Additional Info Object

ParameterTypeDescriptionRequired
infostringAny additional information about the food item. For example, "This dish is part of the Keto diet.”
remarkstringRemarks or warnings about the food item. For instance, "Spicy level: High." or "Not suitable for children under 3 years.”

Ignore On Object

ParameterTypeDescriptionRequired
taxboolTrue/False, to determine whether to consider tax on the food item for billing. For instance, if true, no tax will be added for the item.No
discountsboolSpecifies whether the item is excluded from discounts. For example, if true, a premium dish marked as "Chef’s Special" will not receive any discounts even during promotions.No

Callback URL Request body

ParameterTypeDescriptionRequired
requestIdstringRequest ID of the queued menu processingYes
successboolstatus of the requestYes
errorMsgsarray[string]Generic error messageNo
dataarray[Error]List of resources which failed with type of error, ref_id of catalogue entity and reasonNo

Error

ParameterTypeDescriptionRequired
resourceIdstringId of resource failedYes
typestringResource Type
Allowed Value:
category
subcategory
item
variantGroup
addonGroup
variant
addon
tax
charge
Yes
reasonstringThe reason why it failedYes

Sample Callback Request Body

In case of successful processing

{
    "requestId": "c746a5cbeae74287b5b959b68a5f4d5d",
    "success": true
}

In case of failure

{
    "requestId": "c746a5cbeae74287b5b959b68a5f4d5d",
    "success": false,
    "data": [
        {
            "type": "item",
            "resourceId": "7011688",
            "reason": "item price cannot be negative"
        },
        {
            "type": "tax",
            "resourceId": "12764",
            "reason": "tax value cannot be negative"
        }
    ]
}

Sample Request Body

{
    "restaurant": {
        "id": "53349"
    },
    "categories": [
        {
            "id": "139714",
            "name": "Best in Pizza",
            "description": "Best in Pizza",
            "imageUrl": "http://image.jpg",
            "sortOrder": 7,
            "items": [],
            "subcategories": [
                {
                    "id": "139716",
                    "name": "New Pizza",
                    "description": "New Pizzas everyday",
                    "imageUrl": "http://image.jpg",
                    "sortOrder": 1,
                    "items": [
                        {
                            "id": "701172",
                            "name": "Paneer Pizza",
                            "description": "spicy panner pizza",
                            "imageUrl": "http://img.jpg",
                            "price": 139,
                            "markupPrice": 199.9,
                            "inStock": true,
                            "recommended": false,
                            "foodType": "non veg",
                            "tags": [
                                "spicy"
                            ],
                            "variantGroupIds": [
                                "440072"
                            ],
                            "addonGroupIds": [
                                "440084"
                            ],
                            "nutritionalInfo": {
                                "carbohydrate": {
                                    "unit": "mg/g",
                                    "value": 1.1
                                },
                                "fiber": {
                                    "unit": "mg",
                                    "value": 60.0
                                },
                                "fat": {
                                    "unit": "mg",
                                    "value": 30.0
                                },
                                "protein": {
                                    "unit": "mg",
                                    "value": 10.0
                                },
                                "calorie": {
                                    "unit": "kcal",
                                    "value": 1.1
                                }
                            },
                            "billComponents": {
                                "charges": [
                                    "7795"
                                ],
                                "taxIds": [
                                    "12761",
                                    "12762",
                                    "12814",
                                    "12815"
                                ]
                            },
                            "fulfillmentModes": [
                                "delivery"
                            ],
                            "sortOrder": 5,
                            "categoryId": "139714",
                            "subcategoryId": "139716",
                            "ignoreOn": {
                                "tax": false
                            }
                        }
                    ]
                }
            ],
            "timings": "58681"
        },
        {
            "id": "134715",
            "name": "All New",
            "imageUrl": "http://image.jpg",
            "sortOrder": 1,
            "items": [
                {
                    "id": "7021727",
                    "name": "Chicke  tikka",
                    "description": "Delicious chicken tikka",
                    "imageUrl": "http://image.jpg",
                    "price": 139,
                    "inStock": true,
                    "recommended": false,
                    "foodType": "non veg",
                    "tags": [
                        "info-services"
                    ],
                    "variantGroupIds": [],
                    "addonGroupIds": [],
                    "nutritionalInfo": {},
                    "billComponents": {
                        "charges": [
                            "7795"
                        ],
                        "taxIds": [
                            "12761",
                            "12762",
                            "12814",
                            "12815"
                        ]
                    },
                    "fulfillmentModes": [
                        "delivery"
                    ],
                    "sortOrder": 35,
                    "categoryId": "134715",
                    "subcategoryId": "132716"
                }
            ]
        }
    ],
    "timings": [
        {
            "id": "58681",
            "days": [
                {
                    "day": "Monday",
                    "slots": [
                        {
                            "startTime": "06:00",
                            "endTime": "11:00"
                        }
                    ]
                },
                {
                    "day": "Tuesday",
                    "slots": [
                        {
                            "startTime": "06:00",
                            "endTime": "11:00"
                        }
                    ]
                },
                {
                    "day": "Wednesday",
                    "slots": [
                        {
                            "startTime": "06:00",
                            "endTime": "11:00"
                        }
                    ]
                },
                {
                    "day": "Thursday",
                    "slots": [
                        {
                            "startTime": "06:00",
                            "endTime": "11:00"
                        }
                    ]
                },
                {
                    "day": "Friday",
                    "slots": [
                        {
                            "startTime": "06:00",
                            "endTime": "11:00"
                        }
                    ]
                },
                {
                    "day": "Saturday",
                    "slots": [
                        {
                            "startTime": "06:00",
                            "endTime": "11:00"
                        }
                    ]
                },
                {
                    "day": "Sunday",
                    "slots": [
                        {
                            "startTime": "06:00",
                            "endTime": "11:00"
                        }
                    ]
                }
            ]
        },
        {
            "id": "58719",
            "days": [
                {
                    "day": "Wednesday",
                    "slots": [
                        {
                            "startTime": "11:30",
                            "endTime": "16:00"
                        }
                    ]
                }
            ]
        }
    ],
    "orderBillComponents": {
        "charges": [
            {
                "id": "7796",
                "name": "Order level Charge",
                "description": "",
                "value": 30,
                "type": "FIXED",
                "taxes": [
                    "12763"
                ]
            }
        ]
    },
    "addonGroups": [
        {
            "id": "440084",
            "name": "Amazing Desserts",
            "minimumNeeded": 0,
            "maximumAllowed": 10,
            "sortOrder": 3,
            "addOns": [
                {
                    "id": "1595275",
                    "name": "Chocolate",
                    "price": 139,
                    "inStock": true,
                    "foodType": "veg",
                    "sortOrder": 1,
                    "imageUrl": "http://image.jpg"
                },
                {
                    "id": "1295275",
                    "name": "Chicken Sausage",
                    "price": 39,
                    "inStock": true,
                    "foodType": "non Veg",
                    "nutritionalInfo": {},
                    "sortOrder": 2,
                    "imageUrl": "http://image.jpg"
                }
            ]
        },
        {
            "id": "450102",
            "name": "Toppings",
            "minimumNeeded": 0,
            "maximumAllowed": 1,
            "sortOrder": 1,
            "addOns": [
                {
                    "id": "1535340",
                    "name": "Chicken ",
                    "price": 0,
                    "inStock": true,
                    "foodType": "veg",
                    "sortOrder": 146,
                    "imageUrl": ""
                }
            ]
        },
        {
            "id": "460102",
            "name": "Choose One Cheese Burst Flavor (r)",
            "minimumNeeded": 0,
            "maximumAllowed": 1,
            "sortOrder": 1,
            "addOns": [
                {
                    "id": "1565340",
                    "name": "Cheesy Cheese Burst",
                    "price": 0,
                    "inStock": true,
                    "foodType": "veg",
                    "sortOrder": 246,
                    "imageUrl": ""
                }
            ]
        }
    ],
    "variantGroups": [
        {
            "id": "440072",
            "name": "Base",
            "variantIds": [
                "1595518",
                "1695518"
            ],
            "sortOrder": 1
        },
        {
            "id": "470072",
            "name": "Size",
            "variantIds": [
                "1395518",
                "1495518"
            ],
            "sortOrder": 0
        },
        {
            "id": "570072",
            "name": "Size",
            "variantIds": [
                "2495518"
            ],
            "sortOrder": 0
        }
    ],
    "variants": [
        {
            "id": "1595518",
            "name": "crust",
            "price": 429,
            "inStock": true,
            "foodType": "veg",
            "variantGroupIds": [
                "470072"
            ],
            "addonGroupIds": [],
            "billComponents": {
                "charges": ["779123"]
            },
            "sortOrder": 0
        },
        {
            "id": "1395518",
            "name": "Regular",
            "price": 429,
            "inStock": true,
            "foodType": "veg",
            "addonGroupIds": [
                "460102"
            ],
            "sortOrder": 0
        },
        {
            "id": "1495518",
            "name": "Large",
            "price": 529,
            "inStock": true,
            "foodType": "veg",
            "sortOrder": 1,
            "addonGroupIds": [
                "450102"
            ]
        },
        {
            "id": "1695518",
            "name": "pan",
            "price": 129,
            "inStock": true,
            "foodType": "veg",
            "nutritionalInfo": {},
            "variantGroupIds": [
                "570072"
            ],
            "sortOrder": 1,
            "addonGroupIds": null
        },
        {
            "id": "2495518",
            "name": "Large",
            "price": 729,
            "inStock": true,
            "foodType": "veg",
            "addonGroupIds": null,
            "sortOrder": 0
        }
    ],
    "billComponents": {
        "charges": [
            {
                "id": "7795",
                "name": "Packing Charge",
                "description": "",
                "value": 20,
                "type": "FIXED",
                "fulfillmentModes": [
                    "delivery"
                ],
                "taxes": [
                    "12764"
                ]
            },
            {
                "id": "7796",
                "name": "Handling Charge",
                "description": "",
                "value": 30,
                "type": "FIXED",
                "fulfillmentModes": null,
                "taxes": [
                    "12763"
                ]
            }
        ],
        "taxes": [
            {
                "id": "12761",
                "name": "CGST",
                "description": "",
                "value": 2.5,
                "fulfillmentModes": null
            },
            {
                "id": "12762",
                "name": "SGST",
                "description": "",
                "value": 2.5,
                "fulfillmentModes": null
            },
            {
                "id": "12763",
                "name": "Delivery Charge Tax",
                "description": "",
                "value": 18,
                "fulfillmentModes": null
            },
            {
                "id": "12764",
                "name": "Packing Charge",
                "description": "",
                "value": 5,
                "fulfillmentModes": null
            },
            {
                "id": "12814",
                "name": "SGST",
                "description": "",
                "value": 2.5,
                "fulfillmentModes": null
            },
            {
                "id": "12815",
                "name": "CGST",
                "description": "",
                "value": 2.5,
                "fulfillmentModes": null
            }
        ]
    },
    "callbackUrl": "https://host.com/request-id"
}
  

Sample Response Body

200

{
    "message": "Menu published successfully",
}

400

{
    "message": "error message",
    "code" : "400"
}


Inventory Update

API to update the inventory details in Nutana Systems.

This endpoint can be used to update the inventory for items and options in the menu.

Request URL

POST/api/v1/inventory

Request Headers


HeaderDescription
AuthorizationBasic Auth

Request Body


ParameterTypeDescriptionRequired
restIdstringThe unique identifier for the restaurant.Yes
addOns array[string]List of add-on identifiers whose stock status needs to be updated.Yes
inStockbooleanIndicates the availability status. Example: true means available, false means out of stock. Applies to all specified items, variants, and add-ons.Yes
itemsarray[string]List of menu item identifiers whose stock status is changing.Yes
variantsarray[string]List of variant identifiers whose stock status needs an update.Yes
nextAvailableAtintegerA timestamp for when the out-of-stock food items will be restocked.

Sample Request Body

{
    "restId": "53349",
    "addOns": [
        "1595275"
    ],
    "inStock": false,
    "items": [
        "701172"
    ],
    "variants": [
        "1595518"
    ],
    "nextAvailableAt": 1717209600
}

Sample Response Body

200

{
    "message": "Item Inventory updated successfully"
}

400

{
    "error": "error message"
}


Order Management

Order Relay

API to relay the information of a new order placed by the end user on Nutana System to POS provider.

Request URL

POST/api/v1/order/

Request Headers


HeaderDescription
key<Key>

Request Body


ParameterTypeDescriptionRequired
orderInfo Order Info ObjectThe orderInfo object holds the key details about the order itself, such as the order ID, restaurant ID, order type (e.g., delivery, takeaway), and charges like subtotal, taxes, and total. It also includes information like payment mode, preparation time, and delivery mode.Yes
paymentPayment ObjectThe payment object outlines the payment details for the order, including the method of payment (e.g., cash, card, UPI), the payment status (e.g., paid, unpaid), and amounts (paid, balance).Yes
customerCustomer ObjectThe customer object contains personal details about the customer placing the order, such as their first name and last name. This helps identify the customer.Yes
items Item ObjectThe item object provides detailed information about the individual menu items in the order, including the item ID, name, quantity, price, and associated charges or instructions.
Yes

Order Info Object

ParameterTypeDescriptionRequired
orderIdstringThe unique identifier for the order.Yes
restIdstringThe unique identifier for the restaurant.Yes
instructionstringSpecial instructions provided by the customer. For example, "Please make it extra spicy".No
statusstringThe current status of the order.
ENUM: “placed”
Yes
subTotalfloatThe subtotal amount of the order. This is the total price of the items excluding taxes and chargesYes
totalPackingChargefloatTotal charge for packing collected
totalTaxesfloatThe total tax amountYes
createdAtintThe Unix timestamp when the order was placed.Yes
totalfloatThe total amount after adding taxes and charges.
total = subtotal + charges + taxes
Yes
deliveryModestringThe mode of delivery. Possible values:
ENUM: “self_delivery”, “delivery”

Payment Object

ParameterTypeDescriptionRequired
modestringThe mode of payment used. For example, "online".Yes
statusstringThe current payment status. Possible values: "paid"Yes
amountPaidfloatThe amount paid by the customer. For example, 500.00 rupees.Yes

Customer Object

ParameterTypeDescriptionRequired
firstNamestringThe customer's first name. For example, "John".Yes
lastName stringThe customer's last name. For example, "Doe".Yes

Item Object

ParameterTypeDescriptionRequired
itemIdstringThe unique identifier for the item.Yes
namestringThe name of the item. For example, "Chicken Biryani".Yes
quantityintegerThe quantity of the item. For example, 2.Yes
unitPricefloatThe price per unit of the item. For example, 250.00 rupees. Yes
taxesarray[Taxes Object]The tax details for the item.Yes
charges array[Charges Object]Additional charges applicable for the item.Yes
instructionstringSpecial instructions for the item. For example, “Extra Spicy”.No
variantsarray[Variants Object]The variant details for the item (e.g., size or type).Optional Condition
addOnsarray[Add On Object]Add Ons that can be associated with the food item.Optional Condition

Variants Object

ParameterTypeDescriptionRequired
idstringThe unique identifier for the variant.Yes
namestringThe name of the variant. For example, "Large".
unitPricefloatThe price of the variant. For example, 100.00 rupees.Yes
variantsarray[Variants Object]List of Nested variant details.Optional Condition
addOns array[Add On Object]List of Additional Add Ons associated with the variant.Optional Condition

Add On Object

ParameterTypeDescriptionRequired
idstringThe unique identifier for the add-on.Yes
namestringThe name of the add-on. For example, "Extra Cheese".Yes
unitPrice floatThe price of the add-on. For example, 50.00 rupees.Yes

Taxes Object

ParameterTypeDescriptionRequired
titlestringThe name of the tax. For example, "SGST".Yes
valuefloatThe tax amount. For example, 25.00 rupees.Yes
percentage floatThe tax percentage. For example, 2.50.Yes
liabilityOnstringrestaurant or aggregatorYes

Charges Object

ParameterTypeDescriptionRequired
titlestringThe name of the charge. For example, "Delivery Charge".Yes
value floatThe amount of the charge. For example, 30.00 rupees. Yes
liability_onstringrestaurant or aggregatorYes

Sample Request Body

{
  "orderInfo": {
    "orderId": "ORD123456",
    "restId": "REST1001",
    "instruction": "Make it spicy",
    "status": "placed",
    "subTotal": 500.0,
    "totalPackingCharge": 20.0,
    "totalTaxes": 45.0,
    "createdAt": 1717046400,
    "total": 565.0,
    "deliveryMode": "delivery"
  },
  "payment": {
    "mode": "online",
    "status": "paid",
    "amountPaid": 565.0
  },
  "customer": {
    "firstName": "John",
    "lastName": "Doe"
  },
  "items": [
    {
      "itemId": "ITEM001",
      "name": "Chicken Biryani",
      "quantity": 2,
      "unitPrice": 250.0,
      "instruction": "Extra Spicy",
      "taxes": [
        {
          "title": "SGST",
          "value": 12.5,
          "percentage": 2.5,
          "liability_on": "restaurant"
        },
        {
          "title": "CGST",
          "value": 12.5,
          "percentage": 2.5,
          "liability_on": "restaurant"
        }
      ],
      "charges": [
        {
          "title": "Packing Charge",
          "value": 10.0,
          "liability_on": "restaurant"
        }
      ],
      "variants": [
        {
          "id": "VAR001",
          "name": "Family Pack",
          "unitPrice": 100.0,
          "variants": [],
          "addOns": [
            {
              "id": "ADDON001",
              "name": "Extra Raita",
              "unitPrice": 20.0
            }
          ]
        }
      ],
      "addOns": [
        {
          "id": "ADDON002",
          "name": "Extra Salad",
          "unitPrice": 15.0
        }
      ]
    }
  ]
}

Sample Response Body

200

{
    "message": "Order Details successfully communicated."
}

400

{
    "error": "error message"
}


Order Status Exchange

API to exchange the order status between the Nutana system and downstream system. Both system will expose status APIs to exchange status of the order

Request URL

POST/api/v1/order-status

Request Headers


HeaderDescription
key<Key>

Request Body


ParameterTypeDescriptionRequired
orderId stringNutana orderIdYes
restId stringresturant id
statusstringContains the new status of the order.
Allowed values: RESTAURANT_ACCEPTED, RESTAURANT_CANCELLED, CUSTOMER_CANCELLED, FOOD_READY
Yes
reasonstringA custom message explaining why the order was canceledNo

Sample Request Body

{
  "orderId": "b7hi36eg",
  "restId": "10454115",
  "status": "cancelled",
  "reason": "item_out_of_stock"
}

Sample Response Body

200

{
    "message": "Order Status exchanged successfully"
}

400

{
    "message": "error message"
}


Rider Management

Rider Status Update

API for updating the order delivery status from Nutana Systems.

Request URL

POST/<upstream-host>/api/v1/rider-status


Request Body


ParameterTypeDescriptionRequired
orderId stringUnique identifier for the order for which the rider status is being updated.Yes
statusstringThe current status of the rider for the respective order. Allowed values: RIDER_ASSIGNED, RIDER_AT_STORE, OUT_FOR_DELIVERY, REACHED_DROP_LOCATION, DELIVERED.Yes
riderDetailsRider Details ObjectAn array containing rider information. Each object includes the rider's name and phone number.Yes

Rider Details Object

ParameterTypeDescriptionRequired
namestringThe name of the assigned rider. For example, "Ram" is the name of the delivery executive handling the order.Yes
phonestringThe phone number of the rider. For example, "98******10" refers to the contact number of the assigned delivery executive.Yes

Sample Request Body

{
  "orderId": "10454115",
  "status": "OUT-FOR-DELIVERY",
  "riderDetails": {
    "name": "Ram",
    "phone": "9******210"
  }
}

Sample Response Body

200

{
    "message": "Delivery Status updated successfully."
}

400

{
    "error": "error message"
}

Store Management

Store Status

API to enable/disable a store on Nutana Systems.

Request URL

POST/api/v1/store-status

Request Headers


HeaderDescription
key<Key>

Request Body


ParameterTypeDescriptionRequired
restIdstringUnique identifier of the restaurant for which status needs to be updated.Yes
orderingEnabledbooleanThis indicates the current status of the Restaurant (whether it is accepting new orders or not). For example, true indicates that Restaurant is open for new orders.Yes
nextAvailableAtintUnix timestamp (in seconds) No
reasonstringreason for store closureNo

Sample Request Body

{
    "restId": "b7hi36eg",
    "orderingEnabled": true
}

Sample Response Body

200

{
    "message": "Restaurant status successfully updated."
}

400

{
    "error": "error message"
}