# Create Realtime Payment Link

You need to create a 'pay link' to receive fiat payments through Ninjapay payment plugin. 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://api.ninjapay.me/webextension/api/v1/fiat/realtime-payment-link/link

```

**Parameters**

* type : `String` - Type of link we are generating (1 for payment link, 2 for subscription) (required)
* title:  `String` - Title of the payment link(required)
* amount: `Number` - Amount to be paid (required)
* allow\_partial\_payment : `Boolean` - User can make partial payment to your link
* single\_use : Boolean - Payment is single use or not
* currency: `String` - Currency of your amount
* redirect\_url: `String` - what url will be redirecting after payment success
* cust\_email: `String` - Pass email of customer
* cust\_full\_name: `String` - Pass name of customer
* ask\_during\_payment: `string` - Link will ask customer details, if you dont pass here
* only\_phone: `String` - Ask only phone number.
* phone\_code: `String` - Phone number code of custmer.
* only\_email: `String` - Phone number of customer without phone code.
* cust\_phone: `String` - Phone number of customer without phone code
* only\_phone: `String` - Link will only ask customer's email
* is\_sms: `Boolean` - You will get SMS alert after payment
* is\_whatsapp: `Boolean` - You will get message on whatsapp regarding payment
* is\_invoice\_generate: `Boolean` : Invoice generation will be given after payment or not
* enable\_upi\_qr: `Boolean` - Upi link will be coming in response
* include\_order\_id\_in\_redirect: `Boolean` - order id will be added in redirect url, mus pass redirect url
* cust\_reference\_id: `String` - Id you can pass your custom reference id
* include\_cust\_ref\_in\_payment\_link: `Boolean` -Include customer reference in the payment link
* cust\_thanks\_msg: `String` - Message shown to customer after payment
* custom\_logo\_url: `String` - Your personalise logo
* custom\_pay\_text: `String` :- Text shown to customer during payment
* tnc: `String` - Terms and conditions
* reference\_notes: `String` - Reference note
* expiry\_id: `String` - Pass Id according to expire time setting
* webhook : `String`- Webhook url on which you want to send payment link updates
* reference\_order\_id: `String`- User side order id to attach to orders.
* allow\_tips: `Boolean`- Tips field show to customer or not.

Other info

* If no `expiry_id`  is passed then link will be having no expiry date
* if `include_order_id_in_redirect` is passed to true then you need to pass redirection url also
* If `cust_phone` is passed, you also need  to pass `phone_code(country phone number codes)` .
* We can only pass max 1 lakh amount If `allow_partial_payment`  is false

### Request body

{% code fullWidth="true" %}

```json

Body (application/json)
{
    "type": "1",
    "template_id": "null",
    "title": "title of paymeny link",
    "currency": "INR",
    "amount": 1,
    "allow_partial_payment": false,
    "single_use": false,
    "cust_phone": "8302280166",
    "cust_email": "example.com",
    "cust_full_name": "dummy name",
    "ask_during_payment": false,
    "only_phone": false,
    "phone_code": "+91",
    "only_email": false,
    "link_expiry": null,
    "is_sms": false,
    "is_whatsapp": false,
    "is_invoice_generate": false,
    "enable_upi_qr": false,
    "include_order_id_in_redirect": false,
    "cust_reference_id": "",
    "include_cust_ref_in_payment_link": false,
    "redirect_url": "",
    "cust_thanks_msg": "",
    "custom_logo_url": "",
    "custom_pay_text": "",
    "tnc": "",
    "reference_notes": "",
    "expiry_id": null,
    "allow_tips":false,
    "webhook":"",
    "reference_order_id":""    
}
```

{% endcode %}

#### **Other info**

| Parameters | Input options                                                                       |
| ---------- | ----------------------------------------------------------------------------------- |
| type       | <p>Type of the payment link- </p><p>1 -> payment link<br>2 -> Subscription link</p> |
|            |                                                                                     |

#### **Response**

```json

{
    "status": true,
    "data": {
        "link_id": "RTLSpvmCCWL5YbgoQIy1uKO", // id of this payment link
        "super_order_id": "FT_RTPL_SOeK5pKhG51kOcMYaNNGTL", 
        "qr_base64": "", // base 64 image of qr if qr customise is been done
        "pay_link": "", // upi link for direct payment
        "expiry_date": "2024-08-06 08:52:11", // expiry of invoice
        "order_id": "FT_RTPL_SOTbKI1uC7uYfGMvDvOAw9" // 
    },
    "message": "Payment link created successful"
}
```

### 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 **webhook**.

#### Callback Response

```json
{
    "STATUS":"",  // 
    "ORDER_ID":"",
    "CURRENCY":"",
    "RESP_MSG":"",
    "PAYMENT_MODE":"",
    "TXN_ID":"",
    "AMOUNT":"",
    "CUS_REF_ID":"",
    "TXN_DATE":"",
    "CHECKSUMHASH":"",
    "REFERENCE_ORDER_ID":""
}
```

#### **Code Example**

{% code overflow="wrap" %}

```javascript

const options = {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'API_KEY'
  },
  body: '{"amount":10,"title":"sample_description","reference_order_id":"myperosnalid","webhook":"https://yourwebhook.com" }'
};

fetch('https://api.ninjapay.me/webextension/api/v1/fiat/realtime-payment-link/link', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
  
```

{% endcode %}
