# 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}`
