> For the complete documentation index, see [llms.txt](https://api-docs.urbanpiper.com/downstream/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-docs.urbanpiper.com/downstream/api/endpoints/miscellaneous/zomato-feature-actions.md).

# Zomato Feature Actions

API to send the delivery rider's body temperature, mask check information, additional rider, and masked contact request. (Zomato specific)

This endpoint can be used to send the Rider Body Temperature(RBT), Rider Mask Check(RMC), request the additional rider, and request the customer's masked contact details for Zomato orders of a brand to our system. This API is used for both merchant’s self-delivery orders and partner-delivery orders of Zomato.

<details>

<summary>Sample cURL - Rider Body Temperature</summary>

```
curl --location --request POST 'https://pos-int.urbanpiper.com/external/api/v1/aggregator/zomato/feature-action/' \
--header 'Authorization: apikey testusername:testapikey' \
--header 'Content-Type: application/json' \
--data-raw '{
	"action": "rider_body_temp",
	"order_id": "1743910",
	"temp": 101.4,
	"Phone": "9999999999"
}'
```

</details>

<details>

<summary>Sample cURL - Rider Mask Check</summary>

```
curl --location --request POST 'https://pos-int.urbanpiper.com/external/api/v1/aggregator/zomato/feature-action/' \
--header 'Authorization: apikey ******:******' \
--header 'Content-Type: application/json' \
--data-raw '{
	"action": "rider_with_mask",
	"order_id": "1743910",
	"wearing_mask": true


}'
```

</details>

<details>

<summary>Sample cURL - Request Additional Rider</summary>

```
curl --location --request POST 'https://pos-int.urbanpiper.com/external/api/v1/aggregator/zomato/feature-action/' \
--header 'Authorization: apikey ******:******' \
--header 'Content-Type: application/json' \
--data-raw '{
	"action": "request_additional_rider",
	"order_id": "1743910"
}'
```

</details>

<details>

<summary>Sample cURL - Request Masked Contact Details</summary>

```
curl --location --request POST 'https://pos-int.urbanpiper.com/external/api/v1/aggregator/zomato/feature-action/' \
--header 'Authorization: apikey ******:******' \
--header 'Content-Type: application/json' \
--data-raw '{
	"action": "fetch_customer_data",
	"order_id": "1743910"
}'
```

</details>

<details>

<summary>Response</summary>

```
{
  "status": "success",
  "message": "Your request has been enqueued to be dispatched to Zomato"
}
```

</details>

#### Request URL

<mark style="color:green;">**POST**</mark> <mark style="color:orange;">`/external/api/v1/aggregator/zomato/feature-action/`</mark>

#### Request Headers

|                    Parameter                    | Value                                            |
| :---------------------------------------------: | ------------------------------------------------ |
| <mark style="color:red;">`Authorization`</mark> | API key-based auth header. Refer authentication. |

#### Request Parameters

|                    Parameter                   |   Type  | Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| :--------------------------------------------: | :-----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|    <mark style="color:red;">`action`</mark>    |  string | <p><code>"rider\_body\_temp"</code> — for Rider Body Temperature.<br><br> <code>"rider\_with\_mask"</code> — for Rider Mask Check.<br><br><code>"request\_additional\_rider"</code> — for requesting an additional rider. This should be requested only when the <a href="/downstream/api/endpoints/order-management/order-relay.md">Order Relay</a> payload contains <code>"is\_bulk\_order": true</code><br><br><code>"fetch\_customer\_data"</code> — for requesting the customer's masked contact details.</p> |
|   <mark style="color:red;">`order_id`</mark>   |  string | UrbanPiper Order ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|     <mark style="color:red;">`temp`</mark>     |  float  | <p>Rider Body Temperature in Fahrenheit.<br><br><em>Optional</em> when action is <code>"rider\_body\_temp"</code>, <code>"request\_additional\_rider"</code> , and <code>"fetch\_customer\_data"</code></p>                                                                                                                                                                                                                                                                                                        |
| <mark style="color:red;">`wearing_mask`</mark> | boolean | <p><code>true</code> - for rider wearing the mask <br><code>false</code> - for the rider not wearing the mask.<br><br><em>Optional</em> when action is <code>"rider\_body\_temp"</code>, <code>"request\_additional\_rider"</code> , and <code>"fetch\_customer\_data"</code></p>                                                                                                                                                                                                                                  |
|                     `phone`                    |  string | <p>10 digit phone number of Rider . <em>(Optional)</em><br><strong>Note:</strong> This should be passed only for self-delivery orders</p>                                                                                                                                                                                                                                                                                                                                                                          |

#### Response Parameters

| Parameter | Type   |                                                             Value                                                            |
| :-------: | ------ | :--------------------------------------------------------------------------------------------------------------------------: |
|  `status` | string | Set to `success` if the payload has been validated and queued. Will be set to `error` if any of the object validation fails. |
| `message` | string |          An explanatory message. In case of an error, it will specify the particular object that failed validation.          |

### Webhook Callback

External systems can be configured such that when a Feature Action is received on our platform, a real-time event will trigger a webhook, which in turn will make a POST request to the external system. After the workflow has been completed, the following response will be made as part of the callback.

**NOTE**: It is expected that the API endpoint to which this webhook makes a request returns a status code in the `2xx` series. Otherwise, the platform will mark the delivery as failed and retry later (based on the configured retrial scheme).

<details>

<summary>Webhook Payload</summary>

```
{
    "reference": "6cce5b0789d848c2a93255d3f33a2763",
    "order_id": 1337966,
    "customer_phone": "09999999999",
    "platform": "zomato",
    "action": "fetch_customer_data",
    "platform_order_id": 1180383
}
```

</details>

|      Parameter      |   Type  | Description                              |
| :-----------------: | :-----: | ---------------------------------------- |
|     `reference`     |  string | callback reference ID for the request.   |
|      `order_id`     | integer | UrbanPiper Order ID                      |
|   `customer_phone`  |  string | Customer phone number                    |
|      `platform`     |  string | Aggregator Platform name                 |
|       `action`      |  string | action value sent in the request payload |
| `platform_order_id` | integer | Aggragator platform order ID             |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://api-docs.urbanpiper.com/downstream/api/endpoints/miscellaneous/zomato-feature-actions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
