> For the complete documentation index, see [llms.txt](https://docs.pagsmile.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pagsmile.com/reference/payin/submit-a-payin/india/upi.md).

# UPI

## **Payin by UPI**

<mark style="color:green;">`POST`</mark> `https://gateway-test.pagsmile.com/trade/pay`

This endpoint allows you to submit a payin by UPI in India.

#### Headers

| Name                                            | Type   | Description                                |
| ----------------------------------------------- | ------ | ------------------------------------------ |
| Content-Type<mark style="color:red;">\*</mark>  | string | application/json; chartset=UTF-8           |
| Authorization<mark style="color:red;">\*</mark> | string | Basic Base($app\_*id:$security\_*&#x6B;ey) |

#### Request Body

| Name                                                | Type   | Description                                                          |
| --------------------------------------------------- | ------ | -------------------------------------------------------------------- |
| app\_id<mark style="color:red;">\*</mark>           | string | <p>created app's id at dashboard</p><p>- Max. 32 chars -</p>         |
| method<mark style="color:red;">\*</mark>            | string | Fixed value: UPI                                                     |
| out\_trade\_no<mark style="color:red;">\*</mark>    | string | <p>ID given by the merchant in their system<br>- Max. 64 chars -</p> |
| notify\_url<mark style="color:red;">\*</mark>       | string | Where Pagsmile will send notification to                             |
| timestamp<mark style="color:red;">\*</mark>         | string | <p>yyyy-MM-dd HH:mm:ss<br>- Max. 19 chars -</p>                      |
| order\_amount<mark style="color:red;">\*</mark>     | string | <p>payment amount<br>1 - 100,000.00</p><p>(Only Integer) -</p>       |
| order\_currency<mark style="color:red;">\*</mark>   | string | Fixed value: INR                                                     |
| subject<mark style="color:red;">\*</mark>           | string | <p>payment reason or item title</p><p>- Max. 128 chars -</p>         |
| content<mark style="color:red;">\*</mark>           | string | <p>payment reason detail or item detail</p><p>- Max. 255 chars -</p> |
| buyer\_id<mark style="color:red;">\*</mark>         | string | merchant user's id                                                   |
| customer.name<mark style="color:red;">\*</mark>     | string | User's name                                                          |
| customer.email<mark style="color:red;">\*</mark>    | string | User's email                                                         |
| customer.phone<mark style="color:red;">\*</mark>    | string | User's phone                                                         |
| address.zip\_code<mark style="color:red;">\*</mark> | string | <p>User's ZIP/postal code</p><p>-5 digits -</p>                      |

{% tabs %}
{% tab title="200 submit successfully" %}

```
{
    "code":"10000",
    "msg":"Success",
    "prepay_id":"SzdyUX****88D23cBF",
    "trade_no":"2026***5788",
    "out_trade_no":"out_trade_no_151****375",
    "web_url":"",
    "pay_url":"upi://pay?pa=smileOne****PIIntent",
    "trade_status":"PROCESSING"
}
```

{% endtab %}

{% tab title="400 duplicate out\_trade\_no" %}

```
{
    "code": "40002",
    "msg": "Business Failed",
    "sub_code": "duplicate-out_trade_no",
    "sub_msg": "out_trade_no is duplicate"
}
```

{% endtab %}
{% endtabs %}

### Example

```
curl --location --request POST 'https://gateway-test.pagsmile.com/trade/pay' \
--header 'Authorization: Basic MTYyNTgyOTIxNDUzMTY2Mzg6UGFnc21pbGVfc2tfZDUwMWQ1ZGNkNTI5OGQ5N2MwNmUzYjI4YjA2OWZjZmY3NDU5ZjY2NzNiMjFjMTFlYTY3NDM5MDgzOTZkOTYxNQ==' \
--header 'Content-Type: application/json' \
--data-raw '{
  "app_id": "162****043",
  "out_trade_no": "out_trade_no_151**375",
  "method": "UPI",
  "order_currency": "INR",
  "order_amount": "123",
  "subject": "pagsmile test",
  "content": "pagsmile test",
  "timestamp": "2021-08-04 18:50:42",
  "notify_url": "http://demo.gemini-tiger.cn/callback/success",
  "buyer_id": "buyer_pix",
  "customer": {
   "name": "Testz",
   "email": "test@mail.com",
   "phone": "20109****01",
  },
  "address": {
    "zip_code": "303503"
  }
}'
```

{% hint style="info" %}
Note: **162\*\*\*\*\*\*\*\*\*\*\*\*38** is pagsmile's test app id for sandbox, and **MTYyNTgyOTIxNDUzMTY2Mzg6UGFnc21pbGVfc2tfZDUwMWQ1ZGNkNTI5OGQ5N2MwNmUzYjI4YjA2OWZjZmY3NDU5ZjY2NzNiMjFjMTFlYTY3NDM5MDgzOTZkOTYxNQ==** is authorization token associated with the test app id.
{% endhint %}

{% hint style="danger" %}
Please use your own **app\_id** and generate your own **authorization token** when testing.
{% endhint %}
