# Zomato

Aggregator code: `zomato`

1. **Hybrid Logistics** — Zomato gives the flexibility to choose *self (merchant driven delivery)* and *partner* delivery to their merchants. It is termed **Hybrid Logistics**. This toggle of enabling the Hybrid Logistics to be done at Zomato end. Later, the control of enabling/disabling the logistics will be taken care of from Atlas Dashboard. If a merchant has opted for Hybrid Logistics, then POS Partners have to make sure the *"delivery\_type"* information from the Order Relay payload is shown on the POS screen. If this attribute value is set to,
   * *"self"* — the merchant has to deliver the order.
   * *"partner"* — Zomato delivers the order.
2. **Order Types** — Zomato has 2 order/fulfilment types — *"delivery"* and *"pickup"*. This information can be seen inside the *"order\_type"* attribute in the Order Relay Payload.
3. **Tags** — Zomato has the concept of Item Tags. Associating the correct [*Tags*](https://pos-support.urbanpiper.com/support/solutions/articles/82000888899) to an item provides more clarity on the dish's taste/cuisine/exclusivity.
4. **Charges** — Charges can be configured on an Item or Order Subtotal level. If the Charge is applied on an order Sub-Total level *i.e, "applicable\_on": "order.order\_subtotal"*, it has to be a *Percentage* Charge. Charges on an Item level *i.e, "applicable\_on": "item. quantity for Fixed and "applicable\_on": "item.price" for Percentage.* More than one charge cannot be associated on an order Sub-Total level to each store. If you don't specify any "*applicable\_on*" field for a *fixed* charge value, by default, the charges will be on order sub-total level.
5. **Title** — No two items should have the same *"name"* value. Zomato doesn't consider the numeric digits present in the item name as a character. Hence, keeping Chicken 65 and Chicken 95 will treat as the same item name at Zomato end. The menu sync will fail.
6. **Category Timing Groups** — The Timing Groups associated with Categories should have timings ending with **XX:00** or **XX:30**. If a Category Timing Group is configured for only Monday, by default, the same Timing Group will be applied to the rest of the days in a week for that category. You can explicitly specify if there are any changes required for other days in a week.
7. **Zomato Rider OTP** — The last 4 digits of the customer phone in the Order Relay payload will be the Rider OTP.
8. **Rider Body Temperature, Mask Check** and **Request Additional Rider** — To keep the Zomato Safety Tags for your merchants, ensure you pass this information. Also, check with brand Zomato PoC to enable the outlets to receive the RBT and Mask check information. If this is not enabled at the Zomato end, the requests will fail. If the order payload contains the information of a bulk order then the additional rider can be requested using the [*Feature Actions*](https://api-docs.urbanpiper.com/downstream/api/) API.
9. **Cancellation Reasons** — When the orders are cancelled, passing the cancellation reasons is mandatory.
10. **Charges Title** — Based on applicability, the title of charges must be passed as *Packaging Charge* and *Delivery Charge (in case of self-delivery).* But in the order payload, the packaging charges shall have a title value of "Restaurant Packaging Charge".
11. **Taxes Title** — Based on applicability, the title of taxes must be one of these - *CGST, SGST, Municipality, Kerala*.
12. **Nested Option Groups** — Nested Option Groups and Nested Options support are available in Zomato. Currently, 2 levels of nested option groups are supported for option.
13. **QVM** — For QVM items, keep "included\_platforms" with only the "zomato" value. Only for QVM items, the markup prices should be specified.
14. **Nutritional Information** — Passing the nutritional information for every item is mandatory. The complete list of Nutritional values is mentioned in the [Add/Update Menu](https://api-partner-docs.urbanpiper.com/v/api-documentation/endpoints/menu/add-update-menu) API.
15. **Goods and Services** — For packaged-good items, the tag value *"packaged-good"* must be associated with an item. For non-packaged-good items, no need to assign any tag.
16. **Taxes on Charges** — Configuring the taxes on charges is supported through the Atlas dashboard. This functionality is not available through [Add/Update Menu](https://api-partner-docs.urbanpiper.com/v/api-documentation/endpoints/menu/add-update-menu) API.
17. **Order Return Flow** — The Zomato riders can return the orders to the stores after dispatched state only when Zomato cancels the order. The OTP shared by the rider must be validated by the restaurant before accepting the returned order. The rider OTP to be validated will be made available in the [Rider Status Update](https://api-partner-docs.urbanpiper.com/v/api-documentation/endpoints/order-management/rider-status-update) webhook.
18. **Bag Return Flow** — Zomato generates OTP for a merchant that has to be shared with the delivery rider when the rider returns the bag to the merchant after the delivery of an order. The rider OTP to be validated will be made available in the [Rider Status Update](https://api-partner-docs.urbanpiper.com/v/api-documentation/endpoints/order-management/rider-status-update) webhook.
19. **Store On/Off** — Store On/Off functionality is supported.
20. **Item On/Off** — Item On/Off functionality is supported.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://api-docs.urbanpiper.com/downstream/aggregator-constraints/zomato.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
