# Create Payment Link

You need to create a 'pay link' to receive fiat payments through Ninjapay UPI payment gateway. A pay link contains <mark style="color:red;">Payment info</mark> added in the dashboard by the merchant(you), capable of accepting payments through the UPI protocol or bank transfers from customers.

#### **Method**

```

POST https://prod.ninjapay.me/uapi/v1/p2p/paymentLink/create

```

#### **Parameters**

```javascript

Body (application/json)
 {
  amount: int; // Add the amount in inr value
  purpose?: string; // You can add invoice number or payment notes here
  payment_mode?: string; // "upi" and "bank" supported currently. Default is "upi".
  payment_mode_type?: string; // "primary" and "secondary" supported currently. Default is "primary".
  callback_url?: string; // Your webhook url for getting response on successuful payment.
  success_url?: string; // Redirected to this after success from hosted checkout
  order_id?: string; 
  extra?: {} // You can add other extra details like customer name, etc.. here. 
}

```

#### **Other info**

| Parameters          | Input options          |
| ------------------- | ---------------------- |
| `payment_mode`      | `upi`, `bank`          |
| `payment_mode_type` | `primary`, `secondary` |

#### **Response**

```json
  {
      "link_id": 198660213997,
      "amount": 9362.67,
      "amount_currency": "INR",
      "purpose": "sample_description",
      "payment_mode": "bank"; // "upi" and "bank" supported currently.
      "payment_mode_type": "secondary"; // "primary" and "secondary" supported currently. 
      "created_at": 1661215876,
      "payment_link": "https://bit.ly/3H24Msg", // Hosted checkout url.
      "callback_url": string; // Your webhook url for getting response on successuful payment.
      "success_url": string; // Redirected to this after success from hosted checkout.
      "order_id": string; 
      "extra": {
          "customer_name": "nakamoto",
          "email": "sample@sample.com",
          "total_fee": "0.00 inr (18%)"
      },
      "upi_info": {
          "upi_id": "merchantupi@icici", // null if payment_mode is bank
      },
      "bank_info": {
          "account_number": 001001553534,
          "name": "Nanda Neeraj",
          "ifsc": "icic0000060",
          "bank_name": "icici",
          "address": "vizag, dwarakanagar branch, 530024",
          "swift": "merchantupi@icici"
      },
      "other_info": {
          "paytm": "mypaytmid"
      }
  }
```

### Payment Success Response

Upon successful payment, the Ninjapay platform sends the fiat amount to the provided UPI ID and gives a success response to the **callback\_url**.

#### Callback Response

```json

{
  "tid": int, // The transaction ID for the successful payment.
  "link_id": int, 
  "utr": string, // The utr number of the transaction added by payer or payment gateway.
  "payer_info": string, // The email or phone added by payer when paying.
}
```

#### **Code Example**

{% code overflow="wrap" %}

```javascript

const options = {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Authorization: 'API_KEY'
  },
  body: '{"amount":0.0018,"purpose":"sample_description","order_id":"21","callback_url":"https://yourwebhook.com"}'
};

fetch('https://prod.ninjapay.me/uapi/v1/p2p/paymentLink/create', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
  
```

{% endcode %}

You can use Ninjapay's native checkout experience by redirecting your user to the checkout endpoint:

`Production` - [https://checkout.ninjapay.me/](https://checkout.opennode.com/)`{link_id}`


---

# 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://ninjapay.gitbook.io/ninjapay-api-docs/how-to/api-reference-p2p/plugins/payment-links-p2p/create-payment-link.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.
