Skip to content

Latest commit

 

History

History
1056 lines (919 loc) · 43.8 KB

paymentLink.md

File metadata and controls

1056 lines (919 loc) · 43.8 KB

Payment Links

Create payment link

Request #1 Standard Payment Link

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("amount",1000);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",true);
paymentLinkRequest.put("first_min_partial_amount",100);
paymentLinkRequest.put("expire_by",1691097057);
paymentLinkRequest.put("reference_id","TS1989");
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("reminder_enable",true);
JSONObject notes = new JSONObject();
notes.put("policy_name","Jeevan Bima");
paymentLinkRequest.put("notes",notes);
paymentLinkRequest.put("callback_url","https://example-callback-url.com/");
paymentLinkRequest.put("callback_method","get");
              
PaymentLink payment = instance.paymentLink.create(paymentLinkRequest);

Request #2 UPI Payment Link

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("upi_link",true);
paymentLinkRequest.put("amount",1000);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",true);
paymentLinkRequest.put("first_min_partial_amount",100);
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("reminder_enable",true);
JSONObject notes = new JSONObject();
notes.put("policy_name","Jeevan Bima");
paymentLinkRequest.put("notes",notes);

PaymentLink payment = instance.paymentLink.create(paymentLinkRequest);

Parameters:

Name Type Description
upi_link* boolean boolean Must be set to true // to creating UPI Payment Link only
amount* integer Amount to be paid using the Payment Link.
currency string A three-letter ISO code for the currency in which you want to accept the payment. For example, INR.
accept_partial boolean Indicates whether customers can make partial payments using the Payment Link. Possible values: true - Customer can make partial payments. false (default) - Customer cannot make partial payments. // UPI Payment Link is not supported partial payment
description string A brief description of the Payment Link
first_min_partial_amount integer Minimum amount, in currency subunits, that must be paid by the customer as the first partial payment.
reference_id string Reference number tagged to a Payment Link.
customer object All parameters listed here are supported
expire_by integer Timestamp, in Unix, at which the Payment Link will expire. By default, a Payment Link will be valid for six months from the date of creation.
notify object sms or email (boolean)
notes object Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”
callback_url string If specified, adds a redirect URL to the Payment Link. Once customers completes the payment, they are redirected to the specified URL.
callback_method string If callback_url parameter is passed, callback_method must be passed with the value get.
reminder_enable boolean Used to send reminders for the Payment Link. Possible values is true or false

Response: For create payment link response please click here


Fetch all payment link

JSONObject params = new JSONObject();
params.put("reference_id","TS1989");
        
List<PaymentLink> paymentlink = instance.paymentLink.fetchAll(params);

Parameters:

Name Type Description
payment_id string Unique identifier of the payment associated with the Payment Link.
reference_id string The unique reference number entered by you while creating the Payment Link.

Response: For fetch all payment link response please click here


Fetch specific payment link

String paymentLinkId = "plink_FMbhpT6nqDjDei";

PaymentLink payment = instance.paymentLink.fetch(paymentLinkId);

Parameters:

Name Type Description
paymentLinkId* string Unique identifier of the Payment Link.

Response:

For fetch specific payment link response please click here


Update payment link

String paymentLinkId = "plink_FMbhpT6nqDjDei";

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("reference_id","TS35");
paymentLinkRequest.put("expire_by",1653347540);
paymentLinkRequest.put("reminder_enable",true);
JSONObject notes = new JSONObject();
notes.put("policy_name","Jeevan Bima");
paymentLinkRequest.put("notes",notes);
              
PaymentLink paymentlink = instance.paymentLink.edit(paymentId,paymentLinkRequest);

Parameters:

Name Type Description
paymentLinkId* string The unique identifier of the Payment Link that needs to be updated.
accept_partial boolean Indicates whether customers can make partial payments using the Payment Link. Possible values: true - Customer can make partial payments. false (default) - Customer cannot make partial payments.
reference_id string Adds a unique reference number to an existing link.
expire_by integer Timestamp, in Unix format, when the payment links should expire.
notes string object Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, "note_key": "Beam me up Scotty”.

Response:

For updating payment link response please click here


Cancel a payment link

String PaymentLinkId = "plink_FMbhpT6nqDjDei";

PaymentLink paymentlink = instance.paymentLink.cancel(paymentLinkId);

Parameters:

Name Type Description
paymentLinkId* string Unique identifier of the Payment Link.

Response:

For canceling payment link response please click here

Send notification

String paymentLinkId = "plink_FMbhpT6nqDjDei";

String medium = "email";

PaymentLink paymentlink = instance.paymentLink.notifyBy(paymentLinkId,medium);

Parameters:

Name Type Description
paymentLinkId* string Unique identifier of the Payment Link that should be resent.
medium* string sms/email,Medium through which the Payment Link must be resent. Allowed values are:

Response:

{
    "success": true
}

Transfer payments received using payment links

        JSONObject paymentLinkRequest = new JSONObject();
        paymentLinkRequest.put("amount",1000);
        paymentLinkRequest.put("currency","INR");
        paymentLinkRequest.put("accept_partial",false);
        paymentLinkRequest.put("reference_id","#aasasw8");
        paymentLinkRequest.put("description","Payment for policy no #23456");
        JSONObject customer = new JSONObject();
        customer.put("name","+919999999999");
        customer.put("contact","Gaurav Kumar");
        customer.put("email","gaurav.kumar@example.com");
        paymentLinkRequest.put("customer",customer);
        JSONObject notify = new JSONObject();
        notify.put("sms",true);
        notify.put("email",true);
        paymentLinkRequest.put("notify",notify);
        paymentLinkRequest.put("reminder_enable",true);

        JSONObject options = new JSONObject();
        List<Object> transfers = new ArrayList<>();

        JSONObject transferParams = new JSONObject();
        transferParams.put("account","acc_I0QRP7PpvaHhpB");
        transferParams.put("amount",500);
        transferParams.put("currency","INR");
        JSONObject notes = new JSONObject();
        notes.put("branch","Acme Corp Bangalore North");
        notes.put("name","Bhairav Kumar");
        transferParams.put("notes",notes);
        List<Object> linkedAccountNotes = new ArrayList<>();
        linkedAccountNotes.add("branch");
        transferParams.put("linked_account_notes",linkedAccountNotes);
        transfers.add(transferParams);
        JSONObject order = new JSONObject();
        order.put("transfer",transfers);
        options.put("order",order);
        paymentLinkRequest.put("options",options);
              
PaymentLink payment = instance.paymentLink.create(paymentLinkRequest);

Parameters:

Name Type Description
amount* integer Amount to be paid using the Payment Link.
options* object All parameters listed here are supported

Response:

{
  "accept_partial": false,
  "amount": 1500,
  "amount_paid": 0,
  "callback_method": "",
  "callback_url": "",
  "cancelled_at": 0,
  "created_at": 1596526969,
  "currency": "INR",
  "customer": {
    "contact": "+919999999999",
    "email": "gaurav.kumar@example.com",
    "name": "Gaurav Kumar"
  },
  "deleted_at": 0,
  "description": "Payment for policy no #23456",
  "expire_by": 0,
  "expired_at": 0,
  "first_min_partial_amount": 0,
  "id": "plink_FMbhpT6nqDjDei",
  "notes": null,
  "notify": {
    "email": true,
    "sms": true
  },
  "payments": null,
  "reference_id": "#aasasw8",
  "reminder_enable": true,
  "reminders": [],
  "short_url": "https://rzp.io/i/ORor1MT",
  "source": "",
  "source_id": "",
  "status": "created",
  "updated_at": 1596526969,
  "user_id": ""
}

Offers on payment links

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("amount",3400);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",false);
paymentLinkRequest.put("reference_id","#aasasw8");
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("notify",notify);
paymentLinkRequest.put("reminder_enable",false);
JSONObject options = new JSONObject();
List<Object> offerParams = new ArrayList<>();
offerParams.add("offer_JTUADI4ZWBGWur");
offerParams.add("offer_F4WJHqvGzw8dWF");
JSONObject order = new JSONObject();
order.put("offers",offerParams);
options.put("order",order);
paymentLinkRequest.put("options",options);
              
PaymentLink payment = instance.paymentLink.create(paymentLinkRequest);

Parameters:

Name Type Description
amount* integer Amount to be paid using the Payment Link.
currency string A three-letter ISO code for the currency in which you want to accept the payment. For example, INR.
description string A brief description of the Payment Link
reference_id string AReference number tagged to a Payment Link.
customer object All parameters listed here are supported
expire_by integer Timestamp, in Unix, at which the Payment Link will expire. By default, a Payment Link will be valid for six months from the date of creation.
notify object sms or email (boolean)
options* object All parameters listed here are supported

Response:

{
  "accept_partial": false,
  "amount": 3400,
  "amount_paid": 0,
  "cancelled_at": 0,
  "created_at": 1600183040,
  "currency": "INR",
  "customer": {
    "contact": "+919999999999",
    "email": "gaurav.kumar@example.com",
    "name": "Gaurav Kumar"
  },
  "description": "Payment for policy no #23456",
  "expire_by": 0,
  "expired_at": 0,
  "first_min_partial_amount": 0,
  "id": "plink_FdLt0WBldRyE5t",
  "notes": null,
  "notify": {
    "email": true,
    "sms": true
  },
  "payments": null,
  "reference_id": "#425",
  "reminder_enable": false,
  "reminders": [],
  "short_url": "https://rzp.io/i/CM5ohDC",
  "status": "created",
  "user_id": ""
}

Managing reminders for payment links

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("amount",3400);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",true);
paymentLinkRequest.put("reference_id","#aasasw8");
paymentLinkRequest.put("first_min_partial_amount",100);
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("notify",notify);
paymentLinkRequest.put("reminder_enable",false);
              
PaymentLink payment = instance.paymentLink.create(paymentLinkRequest);

Parameters:

Name Type Description
amount* integer Amount to be paid using the Payment Link.
accept_partial boolean Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments.
currency string A three-letter ISO code for the currency in which you want to accept the payment. For example, INR.
description string A brief description of the Payment Link
customer object name, email, contact
expire_by integer Timestamp, in Unix, at which the Payment Link will expire. By default, a Payment Link will be valid for six months from the date of creation.
notify object sms or email (boolean)
reminder_enable boolean To disable reminders for a Payment Link, pass reminder_enable as false

Response:

{
  "amount": 340000,
  "amount_due": 340000,
  "amount_paid": 0,
  "billing_end": null,
  "billing_start": null,
  "cancelled_at": null,
  "comment": null,
  "created_at": 1592579126,
  "currency": "INR",
  "currency_symbol": "",
  "customer_details": {
    "billing_address": null,
    "contact": "9900990099",
    "customer_contact": "9900990099",
    "customer_email": "gaurav.kumar@example.com",
    "customer_name": "Gaurav Kumar",
    "email": "gaurav.kumar@example.com",
    "gstin": null,
    "id": "cust_F4WNtqj1xb0Duv",
    "name": "Gaurav Kumar",
    "shipping_address": null
  },
  "customer_id": "cust_F4WNtqj1xb0Duv",
  "date": 1592579126,
  "description": "Salon at Home Service",
  "email_status": null,
  "entity": "invoice",
  "expire_by": 1608390326,
  "expired_at": null,
  "first_payment_min_amount": 0,
  "gross_amount": 340000,
  "group_taxes_discounts": false,
  "id": "inv_F4WfpZLk1ct35b",
  "invoice_number": null,
  "issued_at": 1592579126,
  "line_items": [],
  "notes": [],
  "order_id": "order_F4WfpxUzWmYOTl",
  "paid_at": null,
  "partial_payment": false,
  "payment_id": null,
  "receipt": "5757",
  "reminder_enable": false,
  "short_url": "https://rzp.io/i/vitLptM",
  "sms_status": null,
  "status": "issued",
  "tax_amount": 0,
  "taxable_amount": 0,
  "terms": null,
  "type": "link",
  "user_id": "",
  "view_less": true
}

Rename labels in checkout section

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("amount",1000);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",true);
paymentLinkRequest.put("reference_id","#aasasw8");
paymentLinkRequest.put("first_min_partial_amount",100);
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("notify",notify);
paymentLinkRequest.put("reminder_enable",true);

JSONObject options = new JSONObject();
JSONObject notes = new JSONObject();
notes.put("branch","Acme Corp Bangalore North");
notes.put("name","Bhairav Kumar");

JSONObject partialPayment = new JSONObject();
partialPayment.put("min_amount_label","Minimum Money to be pai");
partialPayment.put("partial_amount_label","Pay in parts");
partialPayment.put("partial_amount_description","Pay at least ₹100");
partialPayment.put("full_amount_label","Pay the entire amount");
JSONObject checkout = new JSONObject();
checkout.put("partial_payment",partialPayment);
options.put("checkout",checkout);
paymentLinkRequest.put("options",options);
              
PaymentLink payment = instance.paymentLink.create(paymentLinkRequest);

Parameters:

Name Type Description
amount* integer Amount to be paid using the Payment Link.
accept_partial boolean Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments.
currency string A three-letter ISO code for the currency in which you want to accept the payment. For example, INR.
description string A brief description of the Payment Link
customer object name, email, contact
expire_by integer Timestamp, in Unix, at which the Payment Link will expire. By default, a Payment Link will be valid for six months from the date of creation.
notify object sms or email (boolean)
reminder_enable boolean To disable reminders for a Payment Link, pass reminder_enable as false
options* object All parameters listed here are supported

Response:

{
  "accept_partial": true,
  "amount": 1000,
  "amount_paid": 0,
  "callback_method": "",
  "callback_url": "",
  "cancelled_at": 0,
  "created_at": 1596193199,
  "currency": "INR",
  "customer": {
    "contact": "+919999999999",
    "email": "gaurav.kumar@example.com",
    "name": "Gaurav Kumar"
  },
  "deleted_at": 0,
  "description": "Payment for policy no #23456",
  "expire_by": 0,
  "expired_at": 0,
  "first_min_partial_amount": 100,
  "id": "plink_FL4vbXVKfW7PAz",
  "notes": null,
  "notify": {
    "email": true,
    "sms": true
  },
  "payments": null,
  "reference_id": "#42321",
  "reminder_enable": true,
  "reminders": [],
  "short_url": "https://rzp.io/i/F4GC9z1",
  "source": "",
  "source_id": "",
  "status": "created",
  "updated_at": 1596193199,
  "user_id": ""
}

Change Business name

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("amount",1000);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",true);
paymentLinkRequest.put("reference_id","#aasasw8");
paymentLinkRequest.put("first_min_partial_amount",100);
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("notify",notify);
paymentLinkRequest.put("reminder_enable",true);

JSONObject options = new JSONObject();
JSONObject notes = new JSONObject();
notes.put("branch","Acme Corp Bangalore North");
notes.put("name","Bhairav Kumar");

JSONObject checkout = new JSONObject();
checkout.put("name","Lacme Corp");
options.put("checkout",checkout);
paymentLinkRequest.put("options",options);
              
PaymentLink payment = instance.paymentLink.create(paymentLinkRequest);

Parameters:

Name Type Description
amount* integer Amount to be paid using the Payment Link.
currency string A three-letter ISO code for the currency in which you want to accept the payment. For example, INR.
accept_partial boolean Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments.
first_min_partial_amount integer Minimum amount, in currency subunits, that must be paid by the customer as the first partial payment.
description string A brief description of the Payment Link
customer object name, email, contact
notify object sms or email (boolean)
reminder_enable boolean To disable reminders for a Payment Link, pass reminder_enable as false
options* object All parameters listed here are supported

Response:

{
  "accept_partial": true,
  "amount": 1000,
  "amount_paid": 0,
  "callback_method": "",
  "callback_url": "",
  "cancelled_at": 0,
  "created_at": 1596187657,
  "currency": "INR",
  "customer": {
    "contact": "+919999999999",
    "email": "gaurav.kumar@example.com",
    "name": "Gaurav Kumar"
  },
  "description": "Payment for policy no #23456",
  "expire_by": 0,
  "expired_at": 0,
  "first_min_partial_amount": 100,
  "id": "plink_FL3M2gJFs1Jkma",
  "notes": null,
  "notify": {
    "email": true,
    "sms": true
  },
  "payments": null,
  "reference_id": "#2234542",
  "reminder_enable": true,
  "reminders": [],
  "short_url": "https://rzp.io/i/at2OOsR",
  "source": "",
  "source_id": "",
  "status": "created",
  "updated_at": 1596187657,
  "user_id": ""
}

Prefill checkout fields

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("amount",1000);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",true);
paymentLinkRequest.put("reference_id","#aasasw8");
paymentLinkRequest.put("first_min_partial_amount",100);
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("notify",notify);
paymentLinkRequest.put("reminder_enable",true);

JSONObject options = new JSONObject();
JSONObject notes = new JSONObject();
notes.put("branch","Acme Corp Bangalore North");
notes.put("name","Bhairav Kumar");

JSONObject prefill = new JSONObject();
prefill.put("method","card");
prefill.put("card[name]","Gaurav Kumar");
prefill.put("card[number]","4111111111111111");
prefill.put("card[expiry]","12/21");
prefill.put("card[cvv]","123");
JSONObject checkout = new JSONObject();
checkout.put("prefill",prefill);
options.put("checkout",checkout);
paymentLinkRequest.put("options",options);
              
PaymentLink payment = instance.paymentLink.create(requestJson);

Parameters:

Name Type Description
amount* integer Amount to be paid using the Payment Link.
currency string A three-letter ISO code for the currency in which you want to accept the payment. For example, INR.
accept_partial boolean Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments.
first_min_partial_amount integer Minimum amount, in currency subunits, that must be paid by the customer as the first partial payment.
description string A brief description of the Payment Link
customer object name, email, contact
notify object sms or email (boolean)
reminder_enable boolean To disable reminders for a Payment Link, pass reminder_enable as false
options* object All parameters listed here are supported

Response: For prefill checkout fields response please click here


Customize payment methods

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("amount",1000);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",true);
paymentLinkRequest.put("reference_id","#aasasw8");
paymentLinkRequest.put("first_min_partial_amount",100);
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("notify",notify);
paymentLinkRequest.put("reminder_enable",true);

JSONObject options = new JSONObject();
JSONObject notes = new JSONObject();
notes.put("branch","Acme Corp Bangalore North");
notes.put("name","Bhairav Kumar");

JSONObject method = new JSONObject();
method.put("netbanking",1);
method.put("card",1);
method.put("upi",1);
method.put("wallet",1);
JSONObject checkout = new JSONObject();
checkout.put("method",method);
options.put("checkout",checkout);
paymentLinkRequest.put("options",options);
              
PaymentLink payment = instance.paymentLink.create(paymentLinkRequest);

Parameters:

Name Type Description
amount* integer Amount to be paid using the Payment Link.
currency string A three-letter ISO code for the currency in which you want to accept the payment. For example, INR.
accept_partial boolean Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments.
first_min_partial_amount integer Minimum amount, in currency subunits, that must be paid by the customer as the first partial payment.
description string A brief description of the Payment Link
customer object name, email, contact
notify object sms or email (boolean)
reminder_enable boolean To disable reminders for a Payment Link, pass reminder_enable as false
options* object All parameters listed here are supported

Response:

{
  "accept_partial": true,
  "amount": 1000,
  "amount_paid": 0,
  "callback_method": "",
  "callback_url": "",
  "cancelled_at": 0,
  "created_at": 1596188371,
  "currency": "INR",
  "customer": {
    "contact": "+919999999999",
    "email": "gaurav.kumar@example.com",
    "name": "Gaurav Kumar"
  },
  "deleted_at": 0,
  "description": "Payment for policy no #23456",
  "expire_by": 0,
  "expired_at": 0,
  "first_min_partial_amount": 100,
  "id": "plink_FL3YbdvN2Cj6gh",
  "notes": null,
  "notify": {
    "email": true,
    "sms": true
  },
  "payments": null,
  "reference_id": "#543422",
  "reminder_enable": true,
  "reminders": [],
  "short_url": "https://rzp.io/i/wKiXKud",
  "source": "",
  "source_id": "",
  "status": "created",
  "updated_at": 1596188371,
  "user_id": ""
}

Set checkout fields as read-only

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("amount",1000);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",true);
paymentLinkRequest.put("reference_id","#aasasw8");
paymentLinkRequest.put("first_min_partial_amount",100);
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("notify",notify);
paymentLinkRequest.put("reminder_enable",true);

JSONObject options = new JSONObject();
JSONObject notes = new JSONObject();
notes.put("branch","Acme Corp Bangalore North");
notes.put("name","Bhairav Kumar");

JSONObject readonly = new JSONObject();
readonly.put("email",1);
readonly.put("contact",1);
JSONObject checkout = new JSONObject();
checkout.put("readonly",readonly);
options.put("checkout",checkout);
paymentLinkRequest.put("options",options);
              
PaymentLink payment = instance.paymentLink.create(requestJson);

Parameters:

Name Type Description
amount* integer Amount to be paid using the Payment Link.
currency string A three-letter ISO code for the currency in which you want to accept the payment. For example, INR.
accept_partial boolean Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments.
first_min_partial_amount integer Minimum amount, in currency subunits, that must be paid by the customer as the first partial payment.
description string A brief description of the Payment Link
customer object name, email, contact
notify object sms or email (boolean)
reminder_enable boolean To disable reminders for a Payment Link, pass reminder_enable as false
options* object Options to set contact and email as read-only fields on Checkout. Parent parameter under which the checkout and readonly child parameters must be passed.

Response:

{
  "accept_partial": true,
  "amount": 1000,
  "amount_paid": 0,
  "callback_method": "",
  "callback_url": "",
  "cancelled_at": 0,
  "created_at": 1596190845,
  "currency": "INR",
  "customer": {
    "contact": "+919999999999",
    "email": "gaurav.kumar@example.com",
    "name": "Gaurav Kumar"
  },
  "deleted_at": 0,
  "description": "Payment for policy no #23456",
  "expire_by": 0,
  "expired_at": 0,
  "first_min_partial_amount": 100,
  "id": "plink_FL4GA1t6FBcaVR",
  "notes": null,
  "notify": {
    "email": true,
    "sms": true
  },
  "payments": null,
  "reference_id": "#19129",
  "reminder_enable": true,
  "reminders": [],
  "short_url": "https://rzp.io/i/QVwUglR",
  "source": "",
  "source_id": "",
  "status": "created",
  "updated_at": 1596190845,
  "user_id": ""
}

Implement thematic changes in payment links checkout section

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("amount",1000);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",true);
paymentLinkRequest.put("reference_id","#aasasw8");
paymentLinkRequest.put("first_min_partial_amount",100);
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("notify",notify);
paymentLinkRequest.put("reminder_enable",true);

JSONObject options = new JSONObject();
JSONObject notes = new JSONObject();
notes.put("branch","Acme Corp Bangalore North");
notes.put("name","Bhairav Kumar");

JSONObject theme = new JSONObject();
theme.put("hide_topbar",true);
JSONObject checkout = new JSONObject();
checkout.put("theme",theme);
options.put("checkout",checkout);
paymentLinkRequest.put("options",options);
              
PaymentLink payment = instance.paymentLink.create(paymentLinkRequest);

Parameters:

Name Type Description
amount* integer Amount to be paid using the Payment Link.
currency string A three-letter ISO code for the currency in which you want to accept the payment. For example, INR.
accept_partial boolean Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments.
first_min_partial_amount integer Minimum amount, in currency subunits, that must be paid by the customer as the first partial payment.
description string A brief description of the Payment Link
customer object name, email, contact
notify object sms or email (boolean)
reminder_enable boolean To disable reminders for a Payment Link, pass reminder_enable as false
options* object All parameters listed here are supported

Response:

{
  "accept_partial": true,
  "amount": 1000,
  "amount_paid": 0,
  "callback_method": "",
  "callback_url": "",
  "cancelled_at": 0,
  "created_at": 1596187814,
  "currency": "INR",
  "customer": {
    "contact": "+919999999999",
    "email": "gaurav.kumar@example.com",
    "name": "Gaurav Kumar"
  },
  "description": "Payment for policy no #23456",
  "expire_by": 0,
  "expired_at": 0,
  "first_min_partial_amount": 100,
  "id": "plink_FL3Oncr7XxXFf6",
  "notes": null,
  "notify": {
    "email": true,
    "sms": true
  },
  "payments": null,
  "reference_id": "#423212",
  "reminder_enable": true,
  "reminders": [],
  "short_url": "https://rzp.io/i/j45EmLE",
  "source": "",
  "source_id": "",
  "status": "created",
  "updated_at": 1596187814,
  "user_id": ""
}

Rename labels in payment details section

JSONObject paymentLinkRequest = new JSONObject();
paymentLinkRequest.put("amount",1000);
paymentLinkRequest.put("currency","INR");
paymentLinkRequest.put("accept_partial",true);
paymentLinkRequest.put("reference_id","#aasasw8");
paymentLinkRequest.put("first_min_partial_amount",100);
paymentLinkRequest.put("description","Payment for policy no #23456");
JSONObject customer = new JSONObject();
customer.put("name","+919999999999");
customer.put("contact","Gaurav Kumar");
customer.put("email","gaurav.kumar@example.com");
paymentLinkRequest.put("customer",customer);
JSONObject notify = new JSONObject();
notify.put("sms",true);
notify.put("email",true);
paymentLinkRequest.put("notify",notify);
paymentLinkRequest.put("reminder_enable",true);

JSONObject options = new JSONObject();
JSONObject notes = new JSONObject();
notes.put("branch","Acme Corp Bangalore North");
notes.put("name","Bhairav Kumar");

JSONObject partialPayment = new JSONObject();
partialPayment.put("min_amount_label","Minimum Money to be pai");
partialPayment.put("partial_amount_label","Pay in parts");
partialPayment.put("partial_amount_description","Pay at least ₹100");
partialPayment.put("full_amount_label","Pay the entire amount");
JSONObject checkout = new JSONObject();
checkout.put("partial_payment",partialPayment);
options.put("checkout",checkout);
paymentLinkRequest.put("options",options);
              
PaymentLink payment = instance.paymentLink.create(requestRequest);

Parameters:

Name Type Description
amount* integer Amount to be paid using the Payment Link.
currency string A three-letter ISO code for the currency in which you want to accept the payment. For example, INR.
accept_partial boolean Indicates whether customers can make partial payments using the Payment Link. Possible values:true - Customer can make partial payments.false (default) - Customer cannot make partial payments.
first_min_partial_amount integer Minimum amount, in currency subunits, that must be paid by the customer as the first partial payment.
description string A brief description of the Payment Link
customer object name, email, contact
notify object sms or email (boolean)
reminder_enable boolean To disable reminders for a Payment Link, pass reminder_enable as false
options* object All parameters listed here are supported

Response:

For rename labels in payment details section response please click here


PN: * indicates mandatory fields

For reference click here