# Overview

There has been a constant surge in the number of aggregators facilitating online ordering for restaurants which has led to a genuine problem statement - how would brands manage various aggregators from one single system? The answer to this is the integration of POS/ERP systems with UrbanPiper as a middle layer to serve as a single medium to facilitate critical operational workflows between the restaurant and the upstream platforms.

Upstream for UrbanPiper are the Food Delivery Companies/Food Aggregators ( Example: Swiggy, Talabat, Deliveroo, etc ) as they are the new revenue sources for the business in the online ordering ecosystem while downstream refers to restaurant POS/ERPs/TILL/Billing Systems who help restaurants manage the day to day business operations. With us in the middle layer and an established integration with POS partners, there is a significant value that is created in the form of fulfilling orders, managing the menu and having control over the availability of inventory and stores - all of them from the POS. These aspects (order relay and status update, menu management, item and store availability control) mark the scope of the integration.

{% hint style="info" %}
The integration makes the POS one stop shop to manage all operational aspects of a business associated with it which in turn heavily boosts the operational efficiency of the brands.
{% endhint %}

![Sequence Diagram for the Integration Touch-points](/files/16NcQjwuGvhOpwBhmQRL)

To give you a holistic picture of the integration, we have put together a snapshot below which should help you understand the key aspects of the integration.

In order to help you navigate your way through the integration chronologically, we have listed the major touch-points for the same below:

1. **Create/Update Store** - As a POS you are required to create the stores of a brand in UrbanPiper. This is the essential component in UrbanPiper where the menu for a store in POS will be pushed.
2. **Menu Push** - Once the store is created, POS has to create and assign the menu to the store which should be available for ordering. The menu consists of Category, Item, Option Group, Option, Tax and Charge. The inclusion of entities such as Option Group, Option, Tax and Charge in a menu can vary depending on the menu available for the store.
3. **Order Management**
   * **Order Relay** - Receive orders from aggregators directly to the POS through the webhook endpoint configured in UrbanPiper.
   * **Order Status Update** - Send status updates on orders for fulfilment and receive the status updates on orders from aggregators through the webhook endpoint configured in UrbanPiper.
   * **Rider Status and Information** - Receive rider details and rider status updates (if applicable) for the order through the webhook endpoint configured in UrbanPiper.
4. **Item Actions** - toggle on/off any item or option(s) of an item.
5. **Store Actions** - toggle on/off (or snooze/unsnooze) a store as required operationally.

We will now take you through the details required in the integration, including the above touch-points. The following pages should help you with the workflow of the integration. The technical details with respect to each of the API endpoints and the webhooks are specified in a detailed way in the API Documentation. At any point of time in your journey of integration, if you would need any assistance, please do not hesitate to reach out to POS Support Team at `pos.support@urbanpiper.com`.


---

# 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/getting-started/overview.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.
