Seamless Checkout Integration Steps
Learn how you can integrate with Plural APIs to start accepting payments and distributing settlements to your merchants.
Follow the below steps to integrate Split Settlements with Plural seamless checkout APIs in your application.
Note
- Ensure you store your Client ID and Secret in your Backend securely.
- Integrate our APIs on your backend system.
- We strictly recommend not to call our APIs from the frontend.
1. [Prerequisite] Generate Token
Integrate our Generate Token API in your backend servers to generate the access token. Use the token generated to authenticate Plural APIs.
Below are the sample requests and response for the Generate Token API.
curl --location 'https://pluraluat.v2.pinepg.in/api/auth/v1/token' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--data '
{
"client_id": "a17ce30e-f88e-4f81-ada1-c3b4909ed232",
"client_secret": "fgwei7egyhuggwp39w8rh",
"grant_type": "client_credentials"
}
'
curl --location 'https://api.pluralpay.in/api/auth/v1/token' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--data '
{
"client_id": "a17ce30e-f88e-4f81-ada1-c3b4909ed232",
"client_secret": "fgwei7egyhuggwp39w8rh",
"grant_type": "client_credentials"
}
'
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"expires_in": 3600
}
Click here for request and response parameter information.
The table below lists the request parameters of our Generate Token API.
Parameter | Type | Description |
---|---|---|
client_id required | string |
Unique client identifier in the Plural database. Example: a17ce30e-f88e-4f81-ada1-c3b4909ed232 Note: The Onboarding team has provided you with this information as part of the onboarding process. |
client_secret required | string |
Unique client secret key provided while onboarding. Example: fgwei7egyhuggwp39w8rh Note: The Onboarding team has provided you with this information as part of the onboarding process. |
grant_type required | string |
The grant type to generate an access token. Accepted value: client_credentials
|
The table below lists the response parameters of our Generate Token API.
Parameter | Type | Description |
---|---|---|
access_token | string |
The access token generated by the system. • Minimum length: 1 character. • Maximum length: 8192 characters. Example: eyJhbGciOiJIUzI1NiIsIn Note: Use this token in the authorization headers to authenticate Plural APIs. |
expires_at | string |
Access duration timestamp. Example: 2024-06-28T13:26:06.909140Z
|
Refer to our Generate Token API documentation to learn more.
2. Create Order
To create an Order, use our Create Order API, for authentication use the generated access token in the headers of the API request.
Below are the sample requests and response for a Create Order API.
curl --location 'https://pluraluat.v2.pinepg.in/api/pay/v1/orders' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json' \
--data '
{
"merchant_order_reference":"1578609owyihy",
"order_amount":{
"value":50000,
"currency":"INR"
},
"pre_auth":false,
"allowed_payment_methods":[
"CARD",
"UPI",
"NETBANKING",
"POINTS",
"WALLET"
],
"purchase_details":{
"customer":{
"email_id":"[email protected]",
"first_name":"Kevin",
"last_name":"Bob",
"customer_id":"192212",
"mobile_number":"9876543210",
"shipping_address":{
"address1":"H.No 15, Sector 17",
"address2":"",
"address3":"",
"pincode":"144001123",
"city":"CHANDIGARH",
"state":"PUNJAB",
"country":"INDIA"
}
},
"merchant_metadata":{
"key1":"DD",
"key2":"XOF"
},
"split_info":{
"split_type":"AMOUNT",
"split_details":[
{
"split_merchant_id":"1324",
"merchant_settlement_reference":"kshjhfk",
"amount":{
"value":30000,
"currency":"INR"
},
"on_hold":true
},
{
"split_merchant_id":"1233",
"amount":{
"value":20000,
"currency":"INR"
},
"on_hold":false
}
]
}
}
}
'
curl --location 'https://api.pluralpay.in/api/pay/v1/orders' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json' \
--data '
{
"merchant_order_reference":"1578609owyihy",
"order_amount":{
"value":50000,
"currency":"INR"
},
"pre_auth":false,
"allowed_payment_methods":[
"CARD",
"UPI",
"NETBANKING",
"POINTS",
"WALLET"
],
"purchase_details":{
"customer":{
"email_id":"[email protected]",
"first_name":"Kevin",
"last_name":"Bob",
"customer_id":"192212",
"mobile_number":"9876543210",
"shipping_address":{
"address1":"H.No 15, Sector 17",
"address2":"",
"address3":"",
"pincode":"144001123",
"city":"CHANDIGARH",
"state":"PUNJAB",
"country":"INDIA"
}
},
"merchant_metadata":{
"key1":"DD",
"key2":"XOF"
},
"split_info":{
"split_type":"AMOUNT",
"split_details":[
{
"split_merchant_id":"1324",
"merchant_settlement_reference":"kshjhfk",
"amount":{
"value":30000,
"currency":"INR"
},
"on_hold":true
},
{
"split_merchant_id":"1233",
"amount":{
"value":20000,
"currency":"INR"
},
"on_hold":false
}
]
}
}
}
'
{
"data":{
"order_id":"v1-241118074845-aa-wduUQF",
"merchant_order_reference":"3595f435-b1c5-4a60-a98c-9cf39ee3dc07",
"type":"CHARGE",
"status":"CREATED",
"merchant_id":"108272",
"order_amount":{
"value":50000,
"currency":"INR"
},
"pre_auth":false,
"allowed_payment_methods":[
"CARD",
"UPI",
"NETBANKING",
"POINTS",
"WALLET"
],
"purchase_details":{
"customer":{
"email_id":"[email protected]",
"first_name":"Kevin",
"last_name":"Bob",
"customer_id":"192212",
"mobile_number":"9876543210",
"billing_address":{
},
"shipping_address":{
"address1":"H.No 15, Sector 17",
"address2":"",
"address3":"",
"pincode":"144001123",
"city":"CHANDIGARH",
"state":"PUNJAB",
"country":"INDIA"
}
},
"merchant_metadata":{
"key1":"DD",
"key2":"XOF"
},
"split_info":{
"split_type":"AMOUNT",
"split_details":[
{
"split_merchant_id":"1324",
"split_settlement_id":"v1-241118074845-aa-wduUQF-ss-b",
"merchant_settlement_reference":"kshjhfk",
"amount":{
"value":30000,
"currency":"INR"
},
"on_hold":true,
"status":"HOLD",
"updated_at":"2024-11-18T07:48:45.324Z"
},
{
"split_merchant_id":"1233",
"split_settlement_id":"v1-241118074845-aa-wduUQF-ss-r",
"amount":{
"value":20000,
"currency":"INR"
},
"on_hold":false,
"status":"RELEASED",
"updated_at":"2024-11-18T07:48:45.324Z"
}
]
}
},
"created_at":"2024-11-18T07:48:45.324336Z",
"updated_at":"2024-11-18T07:48:45.324348Z",
"integration_mode":"SEAMLESS"
}
}
Click here for request and response parameter information.
The table below lists the request parameters of our create order API.
Parameter | Type | Description |
---|---|---|
merchant_order_reference required | string |
Enter a unique identifier for the order request.
1234567890 Supported characters:
|
order_amount required | object |
An object that contains the transaction amount details. Learn more about the order_amount child object.
|
pre_auth | boolean |
The pre-authorization type. Possible values:
|
allowed_payment_methods | array of strings |
The type of payment methods you want to offer customers. Accepted values:
Note: Ensure it is configured for you. |
notes | string |
Note to show against an order. Example: Order1
|
callback_url | string |
URL to redirect customers based on order details. Example: https://sample-callback-url
|
purchase_details | object |
An object that contains purchase details. Learn more about the purchase_details child object.
|
Order Amount [Child Object]
The table below lists the various parameters in the order_amount
child object. This object is part of the create order
request object.
Parameter | Type | Description |
---|---|---|
value required | integer |
Transaction amount in Paisa.
1000
|
currency required | string |
Type of currency. Example: INR
|
Purchase Details [Child Object]
The table below lists the various parameters in the purchase_details
child object. This object is part of the create order
request object.
Parameter | Type | Description |
---|---|---|
customer | object |
An object that contains the customer details. Learn more about the customer child object. |
merchant_metadata | object |
An object of key-value pair that can be used to store additional information. Example: "key1": "DD" |
split_info | object |
An object that contains the split information details. Learn more about the split_info child object. |
Customer [Child Object]
The table below lists the various parameters in the customer
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
email_id | string |
Customer's email address.
[email protected] |
first_name | string |
Customer's first name.
Kevin |
last_name | string |
Customer's last name.
Bob |
customer_id | string |
Unique identifier of the customer in the Plural database.
123456 |
mobile_number | string |
Customer's mobile number.
9876543210 |
billing_address | object |
An object that contains the details of the billing address. Learn more about our billing_address child object. |
shipping_address | object |
An object that contains the shipping address details. Learn more about our shipping_address child object. |
Billing Address [Child Object]
The table below lists the various parameters in the billing_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's billing address1.
10 Downing Street Westminster London |
address2 | string | Customer's billing address2.
Oxford Street Westminster London |
address3 | string | Customer's billing address3.
Baker Street Westminster London |
pincode | string | Pincode of the billing address.
51524036 |
city | string | City of the billing address.
Westminster |
state | string | State of the billing address.
Westminster |
country | string | Country of the billing address.
London |
Shipping Address [Child Object]
The table below lists the various parameters in the shipping_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's shipping address1.
10 Downing Street Westminster London |
address2 | string | Customer's shipping address2.
Oxford Street Westminster London |
address3 | string | Customer's shipping address3.
Baker Street Westminster London |
pincode | string | Pincode of the shipping address.
51524036 |
city | string | City of the shipping address.
Westminster |
state | string | State of the shipping address.
Westminster |
country | string | Country of the shipping address.
London |
Split Information [Child Object]
The table below lists the various parameters in the split_info
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
split_type required | string |
Type of split. Example: Amount |
split_details | array of objects |
An array of objects that contains the split details. Learn more about split_details child object. |
Split Details [Child Object]
The table below lists the various parameters in the split_details
child object. This is part of the split_info
object.
Parameter | Type | Description |
---|---|---|
split_merchant_id required | string |
Partner merchant ID. Example: 123456 |
merchant_settlement_reference required | string |
Unique identifier entered while creating an order in split.
5206071124-aa-mpLhF3-cc-l |
amount required | object |
An object that contains the split amount details. Learn more about amount child object. |
on_hold required | boolean |
Indicate whether the settlement is on hold for future release. Accepted values:
|
Amount [Child Object]
The table below lists the various parameters in the amount child object. This object is part of the split_details object.
Parameter | Type | Description |
---|---|---|
value required | integer |
The split amount is Paisa.
100 |
currency required | string |
Type of currency. Example: INR |
The table below lists the various parameters returned in the Create Order API response objects.
Parameter | Type | Description |
---|---|---|
order_id | string |
Unique identifier of the order in the Plural database.
v1-5757575757-aa-hU1rUd |
merchant_order_reference | string |
Unique identifier entered while creating an order.
82d57572-057c-4826-5775-385a52150554 |
type | string |
Payment type. Possible values:
|
status | string |
Order status. Possible values:
|
merchant_id | string |
Unique identifier of the merchant in the Plural database. Example: 123456 |
order_amount | object |
An object that contains the transaction amount details. Learn more about our order_amount child object. |
notes | string |
The note you want to show against an order. Example: Order1 |
pre_auth | boolean |
The pre-authorization type. Possible values:
false |
allowed_payment_methods | array of strings |
The type of payment methods you want to offer customers. Accepted values:
CARD Note: Before selecting a payment method, ensure it is configured for you. |
callback_url | string |
URL to redirect customers to success or failure pages. Example: https://sample-callback-url |
purchase_details | object |
An object that contains the purchase details. Learn more about the purchase_details child object.Note: The presence of the object key-values depends on the Input request. |
payments | array of objects |
An array of objects that contains the payment details. Note: Payment object is returned only for the orders linked with a payment. |
created_at | string |
The ISO 8601 UTC Timestamp when the order request was received. Example: 2024-07-09T07:57:08.022Z |
updated_at | string |
The ISO 8601 UTC Timestamp when the order object was updated. Example: 2024-07-09T07:57:08.022Z |
integration_mode | string> |
Type of integration. Example: SEAMLESS
|
payment_retries_remaining | integer> |
Number of retry attempts left. Example: 9
|
Order Amount [Child Object]
The table below lists the various parameters in the order_amount
child object. This object is part of the Create Order API
response object.
Parameter | Type | Description |
---|---|---|
value | integer |
Transaction amount in Paisa.
1000
|
currency | string |
Type of currency. Example: INR
|
Purchase Details [Child Object]
The table below lists the various parameters in the purchase_details
child object. This object is part of the Create Order API
response object.
Parameter | Type | Description |
---|---|---|
customer | object |
An object that contains the customer details. Learn more about the customer child object. |
merchant_metadata | object |
An object of key-value pair that can be used to store additional information. Example: "key1": "DD" |
split_info | object |
An object that contains the split information details. Learn more about our split_info child object. |
Customer [Child Object]
The table below lists the various parameters in the customer
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
email_id | string |
Customer's email address.
[email protected] |
first_name | string |
Customer's first name.
Kevin |
last_name | string |
Customer's last name.
Bob |
customer_id | string |
Unique identifier of the customer in the Plural database.
123456 |
country_code | string |
Country code of the mobile number. Example: 91 |
mobile_number | string |
Customer's mobile number.
9876543210 |
billing_address | object |
An object that contains the details of the billing address. Learn more about our billing_address child object. |
shipping_address | object |
An object that contains the shipping address details. Learn more about our shipping_address child object. |
Billing Address [Child Object]
The table below lists the various parameters in the billing_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's billing address1.
10 Downing Street Westminster London |
address2 | string | Customer's billing address2.
Oxford Street Westminster London |
address3 | string | Customer's billing address3.
Baker Street Westminster London |
pincode | string | Pincode of the billing address.
51524036 |
city | string | City of the billing address.
Westminster |
state | string | State of the billing address.
Westminster |
country | string | Country of the billing address.
London |
Shipping Address [Child Object]
The table below lists the various parameters in the shipping_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's shipping address1.
10 Downing Street Westminster London |
address2 | string | Customer's shipping address2.
Oxford Street Westminster London |
address3 | string | Customer's shipping address3.
Baker Street Westminster London |
pincode | string | Pincode of the shipping address.
51524036 |
city | string | City of the shipping address.
Westminster |
state | string | State of the shipping address.
Westminster |
country | string | Country of the shipping address.
London |
Split Information [Child Obejct]
The table below lists the various parameters in the split_info
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
split_type | string |
Type of split. Example: Amount
|
split_details | array of objects |
An array of objects that contains the split details. Learn more about our split_details child object.
|
Split Details [Child Object]
The table below lists the various parameters in the split_details
child object. This is part of the split_info
object.
Parameter | Type | Description |
---|---|---|
split_merchant_id | string |
Partner merchant ID. Example: 123456
|
split_settlement_id | string |
Unique identifier of the split settlement in the Plural database.
71124-aa-mpLhF3-cc-l Note: Use this Settlement ID to initiate a release settlement using our Release Settlement API. |
amount | object |
An object that contains the split amount details. Learn more about the amount child object. |
on_hold | boolean |
Indicates whether the settlement is on hold for future release. Accepted values:
|
status | string |
Split Settlement status. Possible values:
|
updated_at | string |
The ISO 8601 UTC Timestamp, when the split order was created by Plural. Example: 2024-07-09T07:57:08.022Z
|
Amount [Child Object]
The table below lists the various parameters in the amount
child object. This object is part of the split_details
object.
Parameter | Type | Description |
---|---|---|
value | integer |
The split amount in Paisa.
100
|
currency | string |
Type of currency. Example: INR
|
Refer to our Create Order API documentation to learn more.
3. Create Payment
To create a payment, use our Create Payment API, use the order_id
returned in the response of a Create Order API to link the payment against an order.
Below are the sample requests and sample response for Card Payment API.
curl --location 'https://pluraluat.v2.pinepg.in/api/pay/v1/orders/{order_id}/payments' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json' \
--data '
{
"payments": [
{
"merchant_payment_reference": "008cf04b-a770-4777-854e-b1e6c1230609",
"payment_method": "CARD",
"payment_amount": {
"value": 1100,
"currency": "INR"
},
"payment_option": {
"card_details": {
"name": "Anil Reddy",
"card_number": "4111111111111111",
"cvv": "272",
"expiry_month": "04",
"expiry_year": "2029",
"registered_mobile_number": "9876543210"
}
}
}
]
}
'
curl --location 'https://api.pluralpay.in/api/pay/v1/orders/{order_id}/payments' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json' \
--data '
{
"payments": [
{
"merchant_payment_reference": "008cf04b-a770-4777-854e-b1e6c1230609",
"payment_method": "CARD",
"payment_amount": {
"value": 1100,
"currency": "INR"
},
"payment_option": {
"card_details": {
"name": "Anil Reddy",
"card_number": "4111111111111111",
"cvv": "272",
"expiry_month": "04",
"expiry_year": "2029",
"registered_mobile_number": "9876543210"
}
}
}
]
}
'
{
"data":{
"order_id":"v1-4405071524-aa-qlAtAf",
"merchant_order_reference":"112345",
"type":"CHARGE",
"status":"PENDING",
"challenge_url":"https://api.pluralpay.in/web/auth/landing/?token=S50%2B0lOoYHlA03j3y8Of4%2BZEzhD8MuFFLKP6NXx9uiaBBXlNhpCRA4wqkPd%2Bs9eRz7H",
"merchant_id":"123456",
"order_amount":{
"value":1100,
"currency":"INR"
},
"pre_auth":false,
"allowed_payment_methods":[
"CARD",
"UPI",
"NETBANKING",
"POINTS",
"WALLET"
],
"notes":"order1",
"purchase_details":{
"customer":{
"email_id":"[email protected]",
"first_name":"Kevin",
"last_name":"Bob",
"customer_id":"123456",
"mobile_number":"9876543210",
"billing_address":{
"address1":"10 Downing Street Westminster London",
"address2":"Oxford Street Westminster London",
"address3":"Baker Street Westminster London",
"pincode":"51524036",
"city":"Westminster",
"state":"Westminster",
"country":"London"
},
"shipping_address":{
"address1":"10 Downing Street Westminster London",
"address2":"Oxford Street Westminster London",
"address3":"Baker Street Westminster London",
"pincode":"51524036",
"city":"Westminster",
"state":"Westminster",
"country":"London"
}
},
"merchant_metadata":{
"key1":"value1",
"key2":"value2"
},
"split_info":{
"split_type":"AMOUNT",
"split_details":[
{
"split_merchant_id":"123456",
"split_settlement_id":"v1-241118174248-aa-81BMcH-ss-b",
"merchant_settlement_reference":"kshjhfk",
"amount":{
"value":20000,
"currency":"INR"
},
"on_hold":false,
"status":"RELEASED",
"updated_at":"2024-11-18T07:49:38.212311Z"
},
{
"split_merchant_id":"234567",
"split_settlement_id":"v1-241118174248-aa-81BMcH-ss-r",
"amount":{
"value":30000,
"currency":"INR"
},
"on_hold":false,
"status":"RELEASED",
"updated_at":"2024-11-18T07:48:45.324348Z"
}
]
}
},
"payments":[
{
"id":"v1-5307071124-aa-dmkVNf-cc-c",
"merchant_payment_reference":"008cf04b-a770-4777-854e-b1e6c1230609",
"status":"PENDING",
"payment_amount":{
"value":1100,
"currency":"INR"
},
"payment_method":"CARD",
"payment_option":{
"card_data":{
"card_type":"CREDIT",
"network_name":"VISA",
"issuer_name":"KOTAK",
"card_category":"CONSUMER",
"country_code":"IND",
"token_txn_type":"ALT_TOKEN"
}
},
"created_at":"2024-07-11T07:53:43.358Z",
"updated_at":"2024-07-11T07:56:18.044Z"
}
],
"created_at":"2024-07-11T07:53:43.358Z",
"updated_at":"2024-07-11T07:56:18.044Z"
}
}
Click here for request and response parameter information.
Path Parameter
The table below lists the path parameters of our Create Card Payment API.
Parameter | Type | Description |
---|---|---|
order_id required | string |
Unique identifier of the order in the Plural database. Example: v1-5757575757-aa-hU1rUd |
Request Parameters
The table below lists the request parameters of our Create Card Payment API.
Parameter | Type | Description |
---|---|---|
Payments required | array of objects |
An array of objects that contains the payment details. Learn more about our payments child object |
Payments [Child Object]
The table below lists the various parameters in the payments
child object. This object is part of the create card payment
request object.
Parameter | Type | Description |
---|---|---|
merchant_payment_reference required | string |
Unique Payment Reference id sent by merchant. Example: 008cf04b-a770-4777-854e-b1e6c1230609 |
payment_method required | string |
Type of payment method you want to use to accept a payment. Accepted value: CARD Example: CARD
|
payment_amount required | object |
An object that contains the details of the payment amount. Learn more about our payment_amount child object. |
payment_option required | object |
An object that contains the details of the payment options. Learn more about our payment_option child object. |
Payment Amount [Child Object]
The table below lists the various parameters in the payment_amount
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
value required | integer |
The payment amount is Paisa.
100 |
currency required | string |
Type of currency. Example: INR |
Payment Option [Child Object]
The table below lists the various parameters in the payment_option
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
card_details | object | An object that contains the card details. Learn more about the card_details child object. |
Card Details [Child Object]
The table below lists the various parameters in the card_details child object. This object is part of the payment_option object.
Parameter | Type | Description |
---|---|---|
name required | string | Name on the card.
Kevin |
card_number required | string | Card Number.
123456789012 |
cvv required | string | Card Verification Value [CVV] of the card.
123 Supported characters: 0-9 |
expiry_month required | string | Card expiry month. Has to be 2 digits. Example: 08 Supported characters: 0-9 |
expiry_year required | string | Card expiry year. Has to be 4 digits. Example: 2024 Supported characters: 0-9 |
registered_mobile_number | string | Card registered mobile number.
9876543210 Supported characters: 0-9 |
save | boolean | Save card transaction status. Possible values:
|
The table below lists the various parameters returned in the Create Payment response objects.
Parameter | Type | Description |
---|---|---|
order_id | string |
Unique identifier of the order in the Plural database.
v1-5757575757-aa-hU1rUd |
merchant_order_reference | string |
Unique identifier entered while creating an order.
82d57572-057c-4826-5775-385a52150554 |
type | string |
Payment type. Possible values:
|
status | string |
Order status. Possible values:
|
challenge_url | string |
Use the generated challenge_url URL to navigate your users the checkout page. |
merchant_id | string |
Unique identifier of the merchant in the Plural database. Example: 123456 |
order_amount | object |
An object that contains the transaction amount details. Learn more about our order_amount child object. |
notes | string |
The note you want to show against an order. Example: Order1 |
pre_auth | boolean |
The pre-authorization type. Possible values:
false |
allowed_payment_methods | array of strings |
The type of payment methods you want to offer customers. Accepted values:
CARD Note: Before selecting a payment method, ensure it is configured for you. |
purchase_details | object |
An object that contains the purchase details. Learn more about the purchase_details child object.Note: The presence of the object key-values depends on the Input request. |
payments | array of objects |
An array of objects that contains the payment details. Learn more about the payments child object.Note: Payment object is returned only for the orders linked with a payment. |
created_at | string |
The ISO 8601 UTC Timestamp when the order request was received. Example: 2024-07-09T07:57:08.022Z |
updated_at | string |
The ISO 8601 UTC Timestamp when the order object was updated. Example: 2024-07-09T07:57:08.022Z |
Order Amount [Child Object]
The table below lists the various parameters in the order_amount
child object. This object is part of the create order
request object.
Parameter | Type | Description |
---|---|---|
value | integer |
Transaction amount in Paisa.
1000
|
currency | string |
Type of currency. Example: INR
|
Purchase Details [Child Object]
The table below lists the various parameters in the purchase_details
child object. This object is part of the create order
request object.
Parameter | Type | Description |
---|---|---|
customer | object |
An object that contains the customer details. Learn more about the customer child object. |
merchant_metadata | object |
An object of key-value pair that can be used to store additional information. Example: "key1": "DD" |
split_info | object |
An object that contains the split information details. Learn more about the split_info child object. |
Customer [Child Object]
The table below lists the various parameters in the customer
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
email_id | string |
Customer's email address.
[email protected] |
first_name | string |
Customer's first name.
Kevin |
last_name | string |
Customer's last name.
Bob |
customer_id | string |
Unique identifier of the customer in the Plural database.
123456 |
mobile_number | string |
Customer's mobile number.
9876543210 |
billing_address | object |
An object that contains the details of the billing address. Learn more about our billing_address child object. |
shipping_address | object |
An object that contains the shipping address details. Learn more about our shipping_address child object. |
Billing Address [Child Object]
The table below lists the various parameters in the billing_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's billing address1.
10 Downing Street Westminster London |
address2 | string | Customer's billing address2.
Oxford Street Westminster London |
address3 | string | Customer's billing address3.
Baker Street Westminster London |
pincode | string | Pincode of the billing address.
51524036 |
city | string | City of the billing address.
Westminster |
state | string | State of the billing address.
Westminster |
country | string | Country of the billing address.
London |
Shipping Address [Child Object]
The table below lists the various parameters in the shipping_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's shipping address1.
10 Downing Street Westminster London |
address2 | string | Customer's shipping address2.
Oxford Street Westminster London |
address3 | string | Customer's shipping address3.
Baker Street Westminster London |
pincode | string | Pincode of the shipping address.
51524036 |
city | string | City of the shipping address.
Westminster |
state | string | State of the shipping address.
Westminster |
country | string | Country of the shipping address.
London |
Split Information [Child Object]
The table below lists the various parameters in the split_info
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
split_type | string |
Type of split. Example: Amount |
split_details | array of objects |
An array of objects that contains the split details. Learn more about split_details child object. |
Split Details [Child Object]
The table below lists the various parameters in the split_details
child object. This is part of the split_info
object.
Parameter | Type | Description |
---|---|---|
split_merchant_id | string |
Partner merchant ID. Example: 123456 |
merchant_settlement_reference | string |
Unique identifier entered while creating an order in split.
5206071124-aa-mpLhF3-cc-l |
amount | object |
An object that contains the split amount details. Learn more about amount child object. |
on_hold | boolean |
Indicate whether the settlement is on hold for future release. Accepted values:
|
status | string |
Split Settlement status. Possible values:
|
updated_at | string |
The ISO 8601 UTC Timestamp, when the payment response object is updated. Example: 2024-07-11T06:59:38.260Z |
Amount [Child Object]
The table below lists the various parameters in the amount
child object. This object is part of the split_details
object.
Parameter | Type | Description |
---|---|---|
value | integer |
Transaction amount in Paisa.
1000
|
currency | string |
Type of currency. Example: INR
|
Payments [Child Object]
The table below lists the various parameters in the payments
child object. This object is part of the payments
sample response object.
Parameter | Type | Description |
---|---|---|
id | string |
Unique identifier of the payment in the Plural database.
v1-5206071124-aa-mpLhF3-cc-l |
merchant_payment_reference | string |
A unique Payment Reference id sent by merchant. Example: 008cf04b-a770-4777-854e-b1e6c1230609 |
status | string |
Payment status. Possible values:
PENDING : When the create payment API request is successfully received by Plural.PENDING |
payment_amount | object |
An object that contains the details of the payment amount. Learn more about our payment_amount child object. |
payment_method | string |
Type of payment method. Accepted values:
CARD |
payment_option | object |
An object that contains the details of the payment options. Learn more about our payment_option child object. |
acquirer_data | object |
An object that contains the details of the acquirer data. Learn more about our acquirer_data child object. |
created_at | string |
The ISO 8601 UTC Timestamp, when the create payment request was received by Plural. Example: 2024-07-11T06:52:12.484Z |
updated_at | string |
The ISO 8601 UTC Timestamp, when the payment response object is updated. Example: 2024-07-11T06:59:38.260Z |
Payment Amount [Child Object]
The table below lists the various parameters in the payment_amount
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
value | integer |
The transaction amount is Paisa.
100 |
currency | string |
Type of currency. Example: INR |
Payment Option [Child Object]
The table below lists the various parameters in the payment_option
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
card_data | object |
An object that contains the card details. Learn more about our card_data child object. |
Card Data [Child Object]
The table below lists the various parameters in the card_data
child object. This object is part of the payment_option
object.
Parameter | Type | Description |
---|---|---|
card_type | string |
Type of card. Possible values:
CREDIT |
network_name | string |
Card network providers. Example: VISA |
issuer_name | string |
Card issuer entity. Example: HDFC |
card_category | string |
The card category type. Possible values:
|
country_code | string |
Card issuer's country. Example: IND |
token_txn_type | string |
Transaction token type. Possible values:
ALT_TOKEN |
Acquirer Data [Child Object]
The table below lists the various parameters in the acquirer_data
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
approval_code | string |
Authorization code returned from acquirer against the payment. Example: 030376 |
acquirer_reference | string |
Unique reference returned from acquirer for the payment. Example: 202455840588334 |
rrn | string |
Retrieval reference number returned from acquirer for the payment. Example: 419335023601 |
is_aggregator | boolean |
The selected aggregator model type. Accepted values:
|
Refer to our Create Payment API documentation to learn more.
Note:
- To manage settlements effectively, use the Release Settlement API to hold or release settlements for an order based on your requirements.
- You can only Release a Settlement when the order status is
PROCESSED
.
4. Manage Settlement
4.1. Release Settlement
Use this API to initiate a full or partial settlement against an order.
Important:
- For partial settlements, specify the desired settlement amount in the
release_amount
object.- When settling partial payment, you must also initiate a refund request for the remaining amount, setting the status flag to
DO_NOT_RECOVER
as only single partial settlement is allowed on a split.- To refund the partially/full settled split amount, initiate a refund request with the status flag set to
Blank
.
Below is a sample requests and response for Release Settlement API.
curl --request PATCH \
--url https://pluraluat.v2.pinepg.in/api/pay/v1/orders/orderId/settlementId/settlementId/release \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json' \
--data '
{
"release_amount": {
"value": 20000,
"currency": "INR"
}
}
'
curl --request PATCH \
--url https://api.pluralpay.in/api/pay/v1/orders/orderId/settlementId/settlementId/release \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json' \
--data '
{
"release_amount": {
"value": 20000,
"currency": "INR"
}
}
'
{
"data": {
"order_id": "v1-250513055632-aa-rjIIWX",
"merchant_order_reference": "bc2ddc75-eebb-452c-a034-ba9a836ddf17",
"type": "CHARGE",
"status": "PROCESSED",
"merchant_id": "111370",
"order_amount": {
"value": 21000,
"currency": "INR"
},
"pre_auth": false,
"allowed_payment_methods": [
"CARD",
"UPI",
"NETBANKING",
"POINTS",
"WALLET"
],
"notes": "order1",
"purchase_details": {
"customer": {
"email_id": "[email protected]",
"first_name": "Kevin",
"last_name": "Bob",
"customer_id": "192212",
"country_code": "91",
"mobile_number": "9876543210",
"billing_address": {},
"shipping_address": {
"address1": "H.No 15, Sector 17",
"address2": "",
"address3": "",
"pincode": "144001123",
"city": "CHANDIGARH",
"state": "PUNJAB",
"country": "INDIA"
},
"is_edit_customer_details_allowed": false
},
"merchant_metadata": {
"key1": "DD",
"key2": "XOF"
},
"split_info": {
"split_type": "AMOUNT",
"split_details": [
{
"split_merchant_id": "111370",
"split_settlement_id": "v1-250513055632-aa-rjIIWX-ss-f",
"amount": {
"value": 10000,
"currency": "INR"
},
"on_hold": false,
"status": "RELEASED",
"updated_at": "2025-05-13T05:58:15.960Z",
"release_amount": {
"value": 10000,
"currency": "INR"
}
},
{
"split_merchant_id": "111370",
"split_settlement_id": "v1-250513055632-aa-rjIIWX-ss-g",
"amount": {
"value": 2000,
"currency": "INR"
},
"on_hold": true,
"status": "HOLD",
"updated_at": "2025-05-13T05:56:32.655Z"
},
{
"split_merchant_id": "111370",
"split_settlement_id": "v1-250513055632-aa-rjIIWX-ss-h",
"amount": {
"value": 8000,
"currency": "INR"
},
"on_hold": true,
"status": "HOLD",
"updated_at": "2025-05-13T05:56:32.655Z"
},
{
"split_merchant_id": "111370",
"split_settlement_id": "v1-250513055632-aa-rjIIWX-ss-i",
"amount": {
"value": 500,
"currency": "INR"
},
"on_hold": true,
"status": "HOLD",
"updated_at": "2025-05-13T05:56:32.655Z"
},
{
"split_merchant_id": "111370",
"split_settlement_id": "v1-250513055632-aa-rjIIWX-ss-j",
"amount": {
"value": 500,
"currency": "INR"
},
"on_hold": false,
"status": "RELEASED",
"updated_at": "2025-05-13T05:56:32.655Z"
}
]
}
},
"payments": [
{
"id": "v1-250513055632-aa-rjIIWX-cc-a",
"merchant_payment_reference": "d1ec1a52-45fb-47be-bd7a-0e0d930f26b8",
"status": "PROCESSED",
"payment_amount": {
"value": 21000,
"currency": "INR"
},
"payment_method": "CARD",
"payment_option": {
"card_data": {
"card_type": "CREDIT",
"network_name": "VISA",
"issuer_name": "HDFC",
"card_category": "",
"country_code": "IND",
"token_txn_type": "ALT_TOKEN",
"last4_digit": "1091",
"is_native_otp_eligible": true
}
},
"acquirer_data": {
"approval_code": "831000",
"acquirer_reference": "7471158294616880303814",
"rrn": "513205569234",
"is_aggregator": true
},
"created_at": "2025-05-13T05:56:56.703Z",
"updated_at": "2025-05-13T05:57:10.422Z"
}
],
"created_at": "2025-05-13T05:56:32.655Z",
"updated_at": "2025-05-13T05:58:15.963Z",
"integration_mode": "SEAMLESS",
"payment_retries_remaining": 9
}
}
Click here for request and response parameter information.
Path Parameter
The table below lists the path parameter of our Release Settlement API.
Parameter | Type | Description |
---|---|---|
order_id required | string |
Unique identifier of the order in the Plural database.
Example: v1-5757575757-aa-hU1rUd
|
settlement_Id required | string |
Unique identifier of the split settlement in the Plural database. Example: v1-241118174248-aa-81BMcH-ss-b
|
Body Parameter
The table below lists the Body parameter of our Release Settlement API.
Parameter | Type | Description |
---|---|---|
release_amount | object |
An object that contains the release amount details. Learn more about our release_amount child object. |
Release Amount [Child Object]
The table below lists the various parameters in the release_amount
child object. This object is part of the Release Settlement API
request object.
Parameter | Type | Description |
---|---|---|
value required | integer |
Transaction amount in Paisa.
1100
|
currency required | string |
Type of currency. Example: INR
|
The table below lists the various parameters returned in the Release Settlement API response objects.
Parameter | Type | Description |
---|---|---|
order_id | string |
Unique identifier of the order in the Plural database.
v1-5757575757-aa-hU1rUd |
merchant_order_reference | string |
Unique identifier entered while creating an order.
82d57572-057c-4826-5775-385a52150554 |
type | string |
Payment type. Possible values:
|
status | string |
Order status. Possible values:
|
merchant_id | string |
Unique identifier of the merchant in the Plural database. Example: 123456 |
order_amount | object |
An object that contains the transaction amount details. Learn more about our order_amount child object. |
notes | string |
The note you want to show against an order. Example: Order1 |
pre_auth | boolean |
The pre-authorization type. Possible values:
false |
allowed_payment_methods | array of strings |
The type of payment methods you want to offer customers. Accepted values:
CARD Note: Before selecting a payment method, ensure it is configured for you. |
callback_url | string |
URL to redirect customers to success or failure pages. Example: https://sample-callback-url |
purchase_details | object |
An object that contains the purchase details. Learn more about the purchase_details child object.Note: The presence of the object key-values depends on the Input request. |
payments | array of objects |
An array of objects that contains the payment details. Learn more about the payments child object.Note: Payment object is returned only for the orders linked with a payment. |
created_at | string |
The ISO 8601 UTC Timestamp when the order request was received. Example: 2024-07-09T07:57:08.022Z |
updated_at | string |
The ISO 8601 UTC Timestamp when the order object was updated. Example: 2024-07-09T07:57:08.022Z |
integration_mode | string> |
Type of integration. Example: SEAMLESS
|
payment_retries_remaining | integer> |
Number of retry attempts left. Example: 9
|
Order Amount [Child Object]
The table below lists the various parameters in the order_amount
child object. This object is part of the Release Settlement API
response object.
Parameter | Type | Description |
---|---|---|
value | integer |
Transaction amount in Paisa.
1000
|
currency | string |
Type of currency. Example: INR
|
Purchase Details [Child Object]
The table below lists the various parameters in the purchase_details
child object. This object is part of the Release Settlement API
response object.
Parameter | Type | Description |
---|---|---|
customer | object |
An object that contains the customer details. Learn more about the customer child object. |
merchant_metadata | object |
An object of key-value pair that can be used to store additional information. Example: "key1": "DD" |
split_info | object |
An object that contains the split information details. Learn more about our split_info child object. |
Customer [Child Object]
The table below lists the various parameters in the customer
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
email_id | string |
Customer's email address.
[email protected] |
first_name | string |
Customer's first name.
Kevin |
last_name | string |
Customer's last name.
Bob |
customer_id | string |
Unique identifier of the customer in the Plural database.
123456 |
country_code | string |
Country code of the mobile number. Example: 91 |
mobile_number | string |
Customer's mobile number.
9876543210 |
billing_address | object |
An object that contains the details of the billing address. Learn more about our billing_address child object. |
shipping_address | object |
An object that contains the shipping address details. Learn more about our shipping_address child object. |
is_edit_customer_details_allowed | boolean |
Status of the customer details edit options. Possible values:
|
Billing Address [Child Object]
The table below lists the various parameters in the billing_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's billing address1.
10 Downing Street Westminster London |
address2 | string | Customer's billing address2.
Oxford Street Westminster London |
address3 | string | Customer's billing address3.
Baker Street Westminster London |
pincode | string | Pincode of the billing address.
51524036 |
city | string | City of the billing address.
Westminster |
state | string | State of the billing address.
Westminster |
country | string | Country of the billing address.
London |
Shipping Address [Child Object]
The table below lists the various parameters in the shipping_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's shipping address1.
10 Downing Street Westminster London |
address2 | string | Customer's shipping address2.
Oxford Street Westminster London |
address3 | string | Customer's shipping address3.
Baker Street Westminster London |
pincode | string | Pincode of the shipping address.
51524036 |
city | string | City of the shipping address.
Westminster |
state | string | State of the shipping address.
Westminster |
country | string | Country of the shipping address.
London |
Split Information [Child Obejct]
The table below lists the various parameters in the split_info
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
split_type | string |
Type of split. Example: Amount
|
split_details | array of objects |
An array of objects that contains the split details. Learn more about our split_details child object.
|
Split Details [Child Object]
The table below lists the various parameters in the split_details
child object. This is part of the split_info
object.
Parameter | Type | Description |
---|---|---|
split_merchant_id | string |
Partner merchant ID. Example: 123456
|
split_settlement_id | string |
Unique identifier of the split settlement in the Plural database.
71124-aa-mpLhF3-cc-l Note: Use this Settlement ID to initiate a release settlement using our Release Settlement API. |
amount | object |
An object that contains the split amount details. Learn more about the amount child object. |
on_hold | boolean |
Indicates whether the settlement is on hold for future release. Accepted values:
|
status | string |
Split Settlement status. Possible values:
|
updated_at | string |
The ISO 8601 UTC Timestamp, when the split order was created by Plural. Example: 2024-07-09T07:57:08.022Z
|
release_amount | object |
An object that contains the release amount details.
Learn more about the release_amount child object.
|
Amount [Child Object]
The table below lists the various parameters in the amount
child object. This object is part of the split_details
object.
Parameter | Type | Description |
---|---|---|
value | integer |
The split amount in Paisa.
100
|
currency | string |
Type of currency. Example: INR
|
Release Amount [Child Object]
The table below lists the various parameters in the release_amount
child object. This object is part of the split_details
object.
Parameter | Type | Description |
---|---|---|
value | integer |
The split amount in Paisa.
100
|
currency | string |
Type of currency. Example: INR
|
Payments [Child Object]
The table below lists the various parameters in the payments
child object. This object is part of the Release Settlement API
response object.
Parameter | Type | Description |
---|---|---|
id | string |
Unique identifier of the payment in the Plural database.
v1-5206071124-aa-mpLhF3-cc-l |
merchant_payment_reference | string |
A unique Payment Reference id sent by merchant. Example: 008cf04b-a770-4777-854e-b1e6c1230609 |
status | string |
Payment status. Possible values:
PENDING : When the create payment API request is successfully received by Plural.PENDING |
payment_amount | object |
An object that contains the details of the payment amount. Learn more about our payment_amount child object. |
payment_method | string |
Type of payment method. Accepted values:
CARD |
payment_option | object |
An object that contains the details of the payment options. Learn more about our payment_option child object. |
acquirer_data | object |
An object that contains the details of the acquirer data. Learn more about our acquirer_data child object. |
created_at | string |
The ISO 8601 UTC Timestamp, when the create payment request was received by Plural. Example: 2024-07-11T06:52:12.484Z |
updated_at | string |
The ISO 8601 UTC Timestamp, when the payment response object is updated. Example: 2024-07-11T06:59:38.260Z |
Payment Amount [Child Object]
The table below lists the various parameters in the payment_amount
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
value | integer |
The transaction amount is Paisa.
100 |
currency | string |
Type of currency. Example: INR |
Payment Option [Child Object]
The table below lists the various parameters in the payment_option
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
card_data | object |
An object that contains the card details. Learn more about our card_data child object. |
Card Data [Child Object]
The table below lists the various parameters in the card_data
child object. This object is part of the payment_option
object.
Parameter | Type | Description |
---|---|---|
card_type | string |
Type of card. Possible values:
CREDIT |
network_name | string |
Card network providers. Example: VISA |
issuer_name | string |
Card issuer entity. Example: HDFC |
card_category | string |
The card category type. Possible values:
|
country_code | string |
Card issuer's country. Example: IND |
token_txn_type | string |
Transaction token type. Possible values:
ALT_TOKEN |
last4_digit | string |
Last four digit of the card. Example: 1091 |
is_native_otp_eligible | boolean |
Eligibility status of the native OTP flow. Example: true |
Acquirer Data [Child Object]
The table below lists the various parameters in the acquirer_data
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
approval_code | string |
Authorization code returned from acquirer against the payment. Example: 030376 |
acquirer_reference | string |
Unique reference returned from acquirer for the payment. Example: 202455840588334 |
rrn | string |
Retrieval reference number returned from acquirer for the payment. Example: 419335023601 |
is_aggregator | boolean |
The selected aggregator model type. Accepted values:
|
Refer to our Release Settlement API documentation to learn more.
4.2. Cancel Settlement
Use this API to cancel a settlement against an order.
Below is a sample requests and response for Cancel Settlement API.
curl --request PATCH \
--url https://pluraluat.v2.pinepg.in/api/pay/v1/orders/orderId/settlementId/settlementId/cancel \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json'
curl --request PATCH \
--url https://api.pluralpay.in/api/pay/v1/orders/orderId/settlementId/settlementId/cancel \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json'
{
"data": {
"order_id": "v1-250513090438-aa-WoJ9px",
"merchant_order_reference": "a4df17c9-a37c-4b24-b825-04c6f28b9145",
"type": "CHARGE",
"status": "PARTIALLY_CAPTURED",
"merchant_id": "112434",
"order_amount": {
"value": 21000,
"currency": "INR"
},
"pre_auth": true,
"purchase_details": {
"customer": {
"country_code": "91",
"billing_address": {},
"shipping_address": {},
"is_edit_customer_details_allowed": false
},
"split_info": {
"split_type": "AMOUNT",
"split_details": [
{
"split_merchant_id": "112434",
"split_settlement_id": "v1-250513090438-aa-WoJ9px-ss-f",
"amount": {
"value": 10000,
"currency": "INR"
},
"on_hold": true,
"status": "HOLD",
"updated_at": "2025-05-13T09:04:38.495Z"
},
{
"split_merchant_id": "112434",
"split_settlement_id": "v1-250513090438-aa-WoJ9px-ss-g",
"amount": {
"value": 2000,
"currency": "INR"
},
"on_hold": true,
"status": "HOLD",
"updated_at": "2025-05-13T09:04:38.495Z"
},
{
"split_merchant_id": "112434",
"split_settlement_id": "v1-250513090438-aa-WoJ9px-ss-h",
"amount": {
"value": 8000,
"currency": "INR"
},
"on_hold": false,
"status": "CANCELLED",
"updated_at": "2025-05-13T09:16:36.890Z"
},
{
"split_merchant_id": "112434",
"split_settlement_id": "v1-250513090438-aa-WoJ9px-ss-i",
"amount": {
"value": 500,
"currency": "INR"
},
"on_hold": true,
"status": "HOLD",
"updated_at": "2025-05-13T09:04:38.495Z"
},
{
"split_merchant_id": "112434",
"split_settlement_id": "v1-250513090438-aa-WoJ9px-ss-j",
"amount": {
"value": 500,
"currency": "INR"
},
"on_hold": false,
"status": "RELEASED",
"updated_at": "2025-05-13T09:04:38.495Z"
}
]
}
},
"payments": [
{
"id": "v1-250513090438-aa-WoJ9px-cc-a",
"merchant_payment_reference": "ce2e7dd6-b6b0-4763-8650-44637dc7fee1",
"status": "PROCESSED",
"payment_amount": {
"value": 21000,
"currency": "INR"
},
"payment_method": "CARD",
"payment_option": {
"card_data": {
"card_type": "CREDIT",
"network_name": "VISA",
"issuer_name": "HDFC",
"card_category": "",
"country_code": "IND",
"token_txn_type": "ALT_TOKEN",
"last4_digit": "1091",
"is_native_otp_eligible": true
}
},
"acquirer_data": {
"approval_code": "831000",
"acquirer_reference": "7471271731696698003813",
"rrn": "513309573407",
"is_aggregator": false
},
"capture_data": [
{
"merchant_capture_reference": "6fb491a4-a22e-4a11-a1e6-94a442e27721",
"capture_amount": {
"value": 20000,
"currency": "INR"
},
"created_at": "2025-05-13T09:06:11.865Z"
}
],
"created_at": "2025-05-13T09:05:08.764Z",
"updated_at": "2025-05-13T09:06:13.915Z"
}
],
"created_at": "2025-05-13T09:04:38.495Z",
"updated_at": "2025-05-13T09:16:36.893Z",
"integration_mode": "SEAMLESS",
"payment_retries_remaining": 9
}
}
Click here for request and response parameter information.
Path Parameter
The table below lists the path parameter of our Cancel Settlement API.
Parameter | Type | Description |
---|---|---|
order_id required | string |
Unique identifier of the order in the Plural database.
Example: v1-5757575757-aa-hU1rUd
|
settlement_Id required | string |
Unique identifier of the split settlement in the Plural database. Example: v1-241118174248-aa-81BMcH-ss-b
|
The table below lists the various parameters returned in the Cancel Settlement API response objects.
Parameter | Type | Description |
---|---|---|
order_id | string |
Unique identifier of the order in the Plural database.
v1-5757575757-aa-hU1rUd |
merchant_order_reference | string |
Unique identifier entered while creating an order.
82d57572-057c-4826-5775-385a52150554 |
type | string |
Payment type. Possible values:
|
status | string |
Order status. Possible values:
|
merchant_id | string |
Unique identifier of the merchant in the Plural database. Example: 123456 |
order_amount | object |
An object that contains the transaction amount details. Learn more about our order_amount child object. |
notes | string |
The note you want to show against an order. Example: Order1 |
pre_auth | boolean |
The pre-authorization type. Possible values:
false |
allowed_payment_methods | array of strings |
The type of payment methods you want to offer customers. Accepted values:
CARD Note: Before selecting a payment method, ensure it is configured for you. |
callback_url | string |
URL to redirect customers to success or failure pages. Example: https://sample-callback-url |
purchase_details | object |
An object that contains the purchase details. Learn more about the purchase_details child object.Note: The presence of the object key-values depends on the Input request. |
payments | array of objects |
An array of objects that contains the payment details. Learn more about the payments child object.Note: Payment object is returned only for the orders linked with a payment. |
created_at | string |
The ISO 8601 UTC Timestamp when the order request was received. Example: 2024-07-09T07:57:08.022Z |
updated_at | string |
The ISO 8601 UTC Timestamp when the order object was updated. Example: 2024-07-09T07:57:08.022Z |
integration_mode | string> |
Type of integration. Example: SEAMLESS
|
payment_retries_remaining | integer> |
Number of retry attempts left. Example: 9
|
Order Amount [Child Object]
The table below lists the various parameters in the order_amount
child object. This object is part of the Cancel Settlement API
response object.
Parameter | Type | Description |
---|---|---|
value | integer |
Transaction amount in Paisa.
1000
|
currency | string |
Type of currency. Example: INR
|
Purchase Details [Child Object]
The table below lists the various parameters in the purchase_details
child object. This object is part of the Cancel Settlement API
response object.
Parameter | Type | Description |
---|---|---|
customer | object |
An object that contains the customer details. Learn more about the customer child object. |
merchant_metadata | object |
An object of key-value pair that can be used to store additional information. Example: "key1": "DD" |
split_info | object |
An object that contains the split information details. Learn more about our split_info child object. |
Customer [Child Object]
The table below lists the various parameters in the customer
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
email_id | string |
Customer's email address.
[email protected] |
first_name | string |
Customer's first name.
Kevin |
last_name | string |
Customer's last name.
Bob |
customer_id | string |
Unique identifier of the customer in the Plural database.
123456 |
country_code | string |
Country code of the mobile number. Example: 91 |
mobile_number | string |
Customer's mobile number.
9876543210 |
billing_address | object |
An object that contains the details of the billing address. Learn more about our billing_address child object. |
shipping_address | object |
An object that contains the shipping address details. Learn more about our shipping_address child object. |
is_edit_customer_details_allowed | boolean |
Status of the customer details edit options. Possible values:
|
Billing Address [Child Object]
The table below lists the various parameters in the billing_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's billing address1.
10 Downing Street Westminster London |
address2 | string | Customer's billing address2.
Oxford Street Westminster London |
address3 | string | Customer's billing address3.
Baker Street Westminster London |
pincode | string | Pincode of the billing address.
51524036 |
city | string | City of the billing address.
Westminster |
state | string | State of the billing address.
Westminster |
country | string | Country of the billing address.
London |
Shipping Address [Child Object]
The table below lists the various parameters in the shipping_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's shipping address1.
10 Downing Street Westminster London |
address2 | string | Customer's shipping address2.
Oxford Street Westminster London |
address3 | string | Customer's shipping address3.
Baker Street Westminster London |
pincode | string | Pincode of the shipping address.
51524036 |
city | string | City of the shipping address.
Westminster |
state | string | State of the shipping address.
Westminster |
country | string | Country of the shipping address.
London |
Split Information [Child Obejct]
The table below lists the various parameters in the split_info
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
split_type | string |
Type of split. Example: Amount
|
split_details | array of objects |
An array of objects that contains the split details. Learn more about our split_details child object.
|
Split Details [Child Object]
The table below lists the various parameters in the split_details
child object. This is part of the split_info
object.
Parameter | Type | Description |
---|---|---|
split_merchant_id | string |
Partner merchant ID. Example: 123456
|
split_settlement_id | string |
Unique identifier of the split settlement in the Plural database.
71124-aa-mpLhF3-cc-l Note: Use this Settlement ID to initiate a release settlement using our Release Settlement API. |
amount | object |
An object that contains the split amount details. Learn more about the amount child object. |
on_hold | boolean |
Indicates whether the settlement is on hold for future release. Accepted values:
|
status | string |
Split Settlement status. Possible values:
|
updated_at | string |
The ISO 8601 UTC Timestamp, when the split order was created by Plural. Example: 2024-07-09T07:57:08.022Z
|
Amount [Child Object]
The table below lists the various parameters in the amount
child object. This object is part of the split_details
object.
Parameter | Type | Description |
---|---|---|
value | integer |
The split amount in Paisa.
100
|
currency | string |
Type of currency. Example: INR
|
Payments [Child Object]
The table below lists the various parameters in the payments
child object. This object is part of the Cancel Settlement API
response object.
Parameter | Type | Description |
---|---|---|
id | string |
Unique identifier of the payment in the Plural database.
v1-5206071124-aa-mpLhF3-cc-l |
merchant_payment_reference | string |
A unique Payment Reference id sent by merchant. Example: 008cf04b-a770-4777-854e-b1e6c1230609 |
status | string |
Payment status. Possible values:
PENDING : When the create payment API request is successfully received by Plural.PENDING |
payment_amount | object |
An object that contains the details of the payment amount. Learn more about our payment_amount child object. |
payment_method | string |
Type of payment method. Accepted values:
CARD |
payment_option | object |
An object that contains the details of the payment options. Learn more about our payment_option child object. |
acquirer_data | object |
An object that contains the details of the acquirer data. Learn more about our acquirer_data child object. |
capture_data | object |
An object that contains the details of the capture data. Learn more about our capture_data child object. |
created_at | string |
The ISO 8601 UTC Timestamp, when the create payment request was received by Plural. Example: 2024-07-11T06:52:12.484Z |
updated_at | string |
The ISO 8601 UTC Timestamp, when the payment response object is updated. Example: 2024-07-11T06:59:38.260Z |
Payment Amount [Child Object]
The table below lists the various parameters in the payment_amount
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
value | integer |
The transaction amount is Paisa.
100 |
currency | string |
Type of currency. Example: INR |
Payment Option [Child Object]
The table below lists the various parameters in the payment_option
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
card_data | object |
An object that contains the card details. Learn more about our card_data child object. |
Card Data [Child Object]
The table below lists the various parameters in the card_data
child object. This object is part of the payment_option
object.
Parameter | Type | Description |
---|---|---|
card_type | string |
Type of card. Possible values:
CREDIT |
network_name | string |
Card network providers. Example: VISA |
issuer_name | string |
Card issuer entity. Example: HDFC |
card_category | string |
The card category type. Possible values:
|
country_code | string |
Card issuer's country. Example: IND |
token_txn_type | string |
Transaction token type. Possible values:
ALT_TOKEN |
last4_digit | string |
Last four digit of the card. Example: 1091 |
is_native_otp_eligible | boolean |
Eligibility status of the native OTP flow. Example: true |
Acquirer Data [Child Object]
The table below lists the various parameters in the acquirer_data
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
approval_code | string |
Authorization code returned from acquirer against the payment. Example: 030376 |
acquirer_reference | string |
Unique reference returned from acquirer for the payment. Example: 202455840588334 |
rrn | string |
Retrieval reference number returned from acquirer for the payment. Example: 419335023601 |
is_aggregator | boolean |
The selected aggregator model type. Accepted values:
|
Capture Data [Child Object]
The table below lists the various parameters in the capture_data
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
merchant_capture_reference | string |
Unique identifier passed while creating the capture payment request.
5742ef1e-4606-4c11-5757-705f4d415b6d |
capture_amount | object |
An object that contains the capture amount details. Learn more about our capture_amount child object. |
created_at | string |
The ISO 8601 UTC Timestamp, when the amount is captured. Example: 2024-07-11T11:52:12.484105Z |
Capture Amount [Child Object]
The table below lists the various parameters in the Capture_amount
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
value | integer |
The transaction amount is Paisa.
100 |
currency | string |
Type of currency. Example: INR |
Refer to our Cancel Settlement API documentation to learn more.
Note:
- To refund the full split amount, it is mandatory to call the Create Refund API. This request should include the details of the cancelled split and set the status parameter to
DO_NOT_RECOVER
.
4.3. Create Refund
Use this API to initiate a refund against a split settlement order.
Below is a sample requests and response for Create Refund API.
curl --request POST \
--url https://pluraluat.v2.pinepg.in/api/pay/v1/refunds/{order_id} \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json' \
--data '
{
"merchant_order_reference": "692dc197-9264-45e6-bb74-95f2cc8608f8",
"order_amount": {
"value": "21000",
"currency": "INR"
},
"merchant_metadata": {
"key1": "DD",
"key2": "XOF"
},
"split_info": {
"split_type": "AMOUNT",
"split_details": [
{
"parent_order_split_settlement_id": "v1-250513063000-aa-UBAnaE-ss-g",
"split_merchant_id": 117320,
"merchant_settlement_reference": "692dc197-9264-45e6-bb74-95f2cc8608f9",
"amount": {
"value": "20000",
"currency": "INR"
},
"status": "DO_NOT_RECOVER"
}
]
}
}
'
curl --request POST \
--url https://api.pluralpay.in/api/pay/v1/refunds/{order_id} \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
--header 'Content-Type: application/json' \
--header 'Request-ID: c17ce30f-f88e-4f81-ada1-c3b4909ed235' \
--header 'Request-Timestamp: 2024-07-09T07:57:08.022Z' \
--header 'accept: application/json' \
--data '
{
"merchant_order_reference": "692dc197-9264-45e6-bb74-95f2cc8608f8",
"order_amount": {
"value": "21000",
"currency": "INR"
},
"merchant_metadata": {
"key1": "DD",
"key2": "XOF"
},
"split_info": {
"split_type": "AMOUNT",
"split_details": [
{
"parent_order_split_settlement_id": "v1-250513063000-aa-UBAnaE-ss-g",
"split_merchant_id": 117320,
"merchant_settlement_reference": "692dc197-9264-45e6-bb74-95f2cc8608f9",
"amount": {
"value": "20000",
"currency": "INR"
},
"status": "DO_NOT_RECOVER"
}
]
}
}
'
{
"data": {
"order_id": "v1-250226115026-aa-JO3YTv",
"parent_order_id": "v1-250226114507-aa-tDpkuP",
"merchant_order_reference": "merchant-reference-r4y",
"type": "REFUND",
"status": "PROCESSED",
"merchant_id": "122743",
"order_amount": {
"value": 21000,
"currency": "INR"
},
"purchase_details": {
"customer": {
"country_code": "91",
"billing_address": {},
"shipping_address": {},
"is_edit_customer_details_allowed": false
},
"merchant_metadata": {
"key1": "value1",
"key2": "value2"
},
"split_info": {
"split_type": "AMOUNT",
"split_details": [
{
"parent_order_split_settlement_id": "v1-250513063000-aa-UBAnaE-ss-g",
"split_merchant_id": 117230,
"split_settlement_id": "v1-5312042524-aa-0YO29z-ss-a",
"merchant_settlement_reference": "ref1",
"amount": {
"value": 21000,
"currency": "INR"
},
"status": "DO_NOT_RECOVER"
}
]
}
},
"payments": [
{
"id": "v1-250226115026-aa-JO3YTv-cc-a",
"status": "PROCESSED",
"payment_amount": {
"value": 21000,
"currency": "INR"
},
"payment_method": "CARD",
"acquirer_data": {
"approval_code": "",
"acquirer_reference": "7405706270796283203814",
"rrn": "",
"is_aggregator": true,
"acquirer_name": "Cyber_Source_AXIS"
},
"offer_data": {},
"created_at": "2025-02-26T11:50:26.351Z",
"updated_at": "2025-02-26T11:50:27.718Z"
}
],
"created_at": "2025-02-26T11:50:26.352Z",
"updated_at": "2025-02-26T11:50:27.718Z",
"integration_mode": "SEAMLESS",
"payment_retries_remaining": 10
}
}
Click here for request and response parameter information.
Path Parameter
The table below lists the path parameter of our Refund Settlement API.
Parameter | Type | Description |
---|---|---|
order_id required | string |
Unique identifier of the order in the Plural database.
Example: v1-5757575757-aa-hU1rUd
|
Body Parameter
The table below lists the Body parameter of our Refund Settlement API.
Parameter | Type | Description |
---|---|---|
merchant_order_reference required | string |
Enter a unique identifier for the order request.
1234567890 Supported characters:
|
order_amount required | object |
An object that contains the transaction amount details. Learn more about the order_amount child object.
|
merchant_metadata | object |
An object of key-value pair that can be used to store additional information. Example: "key1": "DD" |
split_info | object |
An object that contains the split information details. Learn more about our split_info child object. |
Order Amount [Child Object]
The table below lists the various parameters in the order_amount
child object. This object is part of the Refund Settlement API
request object.
Parameter | Type | Description |
---|---|---|
value | integer |
Transaction amount in Paisa.
1000
|
currency | string |
Type of currency. Example: INR
|
Split Information [Child Obejct]
The table below lists the various parameters in the split_info
child object. This object is part of the Refund Settlement API
request object.
Parameter | Type | Description |
---|---|---|
split_type required | string |
Type of split. Example: Amount
|
split_details | array of objects |
An array of objects that contains the split details. Learn more about our split_details child object.
|
Split Details [Child Object]
The table below lists the various parameters in the split_details
child object. This is part of the split_info
object.
Parameter | Type | Description |
---|---|---|
parent_order_split_settlement_id required | string |
Unique identifier of the parent split settlement in the Plural database.
v1-250513063000-aa-UBAnaE-ss-g |
split_merchant_id required | string |
Unique identifier of the merchant in the Plural database. Example: 123456
|
merchant_settlement_reference required | string |
Unique identifier entered while creating a order in split.
asdf-1234-qwer-5678 |
amount required | object |
An object that contains the split amount details. Learn more about the amount child object. |
status | string |
Indicate whether the settlement is to be recovered or not. Accepted values:
|
Amount [Child Object]
The table below lists the various parameters in the amount
child object. This object is part of the split_info
object.
Parameter | Type | Description |
---|---|---|
value required | integer |
Transaction amount in Paisa.
1000
|
currency required | string |
Type of currency. Example: INR
|
The table below lists the various parameters returned in the Refund Settlement API response objects.
Parameter | Type | Description |
---|---|---|
order_id | string |
Unique identifier of the order in the Plural database.
v1-5757575757-aa-hU1rUd |
parent_order_id | string |
Unique identifier of the parent order in the Plural database.
v1-250226114507-aa-tDpkuP |
merchant_order_reference | string |
Unique identifier entered while creating an order.
82d57572-057c-4826-5775-385a52150554 |
type | string |
Payment type. Possible values:
|
status | string |
Order status. Possible values:
|
merchant_id | string |
Unique identifier of the merchant in the Plural database. Example: 123456 |
order_amount | object |
An object that contains the transaction amount details. Learn more about our order_amount child object. |
purchase_details | object |
An object that contains the purchase details. Learn more about the purchase_details child object.Note: The presence of the object key-values depends on the Input request. |
payments | array of objects |
An array of objects that contains the payment details. Learn more about the payments child object.Note: Payment object is returned only for the orders linked with a payment. |
created_at | string |
The ISO 8601 UTC Timestamp when the order request was received. Example: 2024-07-09T07:57:08.022Z |
updated_at | string |
The ISO 8601 UTC Timestamp when the order object was updated. Example: 2024-07-09T07:57:08.022Z |
integration_mode | string> |
Type of integration. Example: SEAMLESS
|
payment_retries_remaining | integer> |
Number of retry attempts left. Example: 9
|
Order Amount [Child Object]
The table below lists the various parameters in the order_amount
child object. This object is part of the Refund Settlement API
response object.
Parameter | Type | Description |
---|---|---|
value | integer |
Transaction amount in Paisa.
1000
|
currency | string |
Type of currency. Example: INR
|
Purchase Details [Child Object]
The table below lists the various parameters in the purchase_details
child object. This object is part of the Refund Settlement API
response object.
Parameter | Type | Description |
---|---|---|
customer | object |
An object that contains the customer details. Learn more about the customer child object. |
merchant_metadata | object |
An object of key-value pair that can be used to store additional information. Example: "key1": "DD" |
split_info | object |
An object that contains the split information details. Learn more about our split_info child object. |
Customer [Child Object]
The table below lists the various parameters in the customer
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
email_id | string |
Customer's email address.
[email protected] |
first_name | string |
Customer's first name.
Kevin |
last_name | string |
Customer's last name.
Bob |
customer_id | string |
Unique identifier of the customer in the Plural database.
123456 |
country_code | string |
Country code of the mobile number. Example: 91 |
mobile_number | string |
Customer's mobile number.
9876543210 |
billing_address | object |
An object that contains the details of the billing address. Learn more about our billing_address child object. |
shipping_address | object |
An object that contains the shipping address details. Learn more about our shipping_address child object. |
is_edit_customer_details_allowed | boolean |
Status of the customer details edit options. Possible values:
|
Billing Address [Child Object]
The table below lists the various parameters in the billing_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's billing address1.
10 Downing Street Westminster London |
address2 | string | Customer's billing address2.
Oxford Street Westminster London |
address3 | string | Customer's billing address3.
Baker Street Westminster London |
pincode | string | Pincode of the billing address.
51524036 |
city | string | City of the billing address.
Westminster |
state | string | State of the billing address.
Westminster |
country | string | Country of the billing address.
London |
Shipping Address [Child Object]
The table below lists the various parameters in the shipping_address
child object. This is part of the customer
object.
Parameter | Type | Description |
---|---|---|
address1 | string | Customer's shipping address1.
10 Downing Street Westminster London |
address2 | string | Customer's shipping address2.
Oxford Street Westminster London |
address3 | string | Customer's shipping address3.
Baker Street Westminster London |
pincode | string | Pincode of the shipping address.
51524036 |
city | string | City of the shipping address.
Westminster |
state | string | State of the shipping address.
Westminster |
country | string | Country of the shipping address.
London |
Split Information [Child Obejct]
The table below lists the various parameters in the split_info
child object. This is part of the purchase_details
object.
Parameter | Type | Description |
---|---|---|
split_type | string |
Type of split. Example: Amount
|
split_details | array of objects |
An array of objects that contains the split details. Learn more about our split_details child object.
|
Split Details [Child Object]
The table below lists the various parameters in the split_details
child object. This is part of the split_info
object.
Parameter | Type | Description |
---|---|---|
parent_order_split_settlement_id | string |
Unique identifier of the parent split settlement in the Plural database.
v1-250513063000-aa-UBAnaE-ss-g |
split_merchant_id | string |
Unique identifier of the merchant in the Plural database. Example: 123456
|
split_settlement_id | string |
Unique identifier of the split settlement in the Plural database.
71124-aa-mpLhF3-cc-l Note: Use this Settlement ID to initiate a release settlement using our Release Settlement API. |
merchant_settlement_reference | string |
Unique identifier entered while creating a order in split.
asdf-1234-qwer-5678 |
amount | object |
An object that contains the split amount details. Learn more about the amount child object. |
status | string |
Indicate whether the settlement is to be recovered or not.
Possible values:
|
Amount [Child Object]
The table below lists the various parameters in the amount
child object. This object is part of the split_details
object.
Parameter | Type | Description |
---|---|---|
value | integer |
The split amount in Paisa.
100
|
currency | string |
Type of currency. Example: INR
|
Payments [Child Object]
The table below lists the various parameters in the payments
child object. This object is part of the Cancel Settlement API
response object.
Parameter | Type | Description |
---|---|---|
id | string |
Unique identifier of the payment in the Plural database.
v1-5206071124-aa-mpLhF3-cc-l |
status | string |
Payment status. Possible values:
PENDING : When the create payment API request is successfully received by Plural.PENDING |
payment_amount | object |
An object that contains the details of the payment amount. Learn more about our payment_amount child object. |
payment_method | string |
Type of payment method. Accepted values:
CARD |
acquirer_data | object |
An object that contains the details of the acquirer data. Learn more about our acquirer_data child object. |
created_at | string |
The ISO 8601 UTC Timestamp, when the create payment request was received by Plural. Example: 2024-07-11T06:52:12.484Z |
updated_at | string |
The ISO 8601 UTC Timestamp, when the payment response object is updated. Example: 2024-07-11T06:59:38.260Z |
Payment Amount [Child Object]
The table below lists the various parameters in the payment_amount
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
value | integer |
The transaction amount is Paisa.
100 |
currency | string |
Type of currency. Example: INR |
Acquirer Data [Child Object]
The table below lists the various parameters in the acquirer_data
child object. This object is part of the payments
object.
Parameter | Type | Description |
---|---|---|
approval_code | string |
Authorization code returned from acquirer against the payment. Example: 030376 |
acquirer_reference | string |
Unique reference returned from acquirer for the payment. Example: 202455840588334 |
rrn | string |
Retrieval reference number returned from acquirer for the payment. Example: 419335023601 |
is_aggregator | boolean |
The selected aggregator model type. Accepted values:
|
Refer to our Create Refund API documentation to learn more.
5. Handle Payment
In create payment API response we return a challenge_url
, use this challenge url to navigate your customers to the checkout page to accept payment.
Note:
- On successful payment we send the webhook event
ORDER_AUTHORIZED
and the status of the payment is updated toauthorized
.- You can capture or cancel an order only when the order status is
authorized
.
5.1 Store Payment Details on Your Server
On a successful and failed payment, we return the following fields to the return url.
- We recommend you to store the payment details on your server.
- You must validate the authenticity of the payment details returned. You can authenticate by verifying the signature.
{
"order_id": "v1-4405071524-aa-qlAtAf",
"payment_status": "AUTHORIZED",
"signature": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
}
{
"order_id": "v1-4405071524-aa-qlAtAf",
"payment_status": "AUTHORIZED",
"error_code": "USER_AUTHENTICATION_REQUIRED",
"error_message": "Consumer Authentication Required",
"signature": "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
}
5.2 Verify Payment Signature
Ensure you follow this as a mandatory step to verify the authenticity of the details returned to the checkout form for successful payments.
Follow the below steps to verify the signature.
- Create a signature on your server using the following parameters using the SHA256 algorithm.
order_id
: Unique Identifier generated for an order request on Plural database.payment_status
: Payment status.error_code
: Short code for the error returned.error_message
: Corresponding error message for the code.secret_key
: The Onboarding team has provided you with this information as part of the onboarding process.
Use the below sample code to construct HashMap signature using the SHA256 algorithm.
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
public class hash {
public static void main(String[] args) {
// Test the GenerateHash method
String input = "<string>";
String secretKey = "<secret_key>"; // Example key in hex
String hash = GenerateHash(input, secretKey);
System.out.println("Generated Hash: " + hash);
}
public static String GenerateHash(String input, String strSecretKey) {
String strHash = "";
try {
if (!isValidString(input) || !isValidString(strSecretKey)) {
return strHash;
}
byte[] convertedHashKey = new byte[strSecretKey.length() / 2];
for (int i = 0; i < strSecretKey.length() / 2; i++) {
convertedHashKey[i] =
(byte)Integer.parseInt(strSecretKey.substring(i * 2, (i*2)+2),16); //hexNumber radix
}
strHash = hmacDigest(input.toString(), convertedHashKey,
"HmacSHA256");
} catch (Exception ex) {
strHash = "";
}
return strHash.toUpperCase();
}
private static String hmacDigest(String msg, byte[] keyString, String algo) {
String digest = null;
try {
SecretKeySpec key = new SecretKeySpec(keyString, algo);
Mac mac = Mac.getInstance(algo);
mac.init(key);
byte[] bytes = mac.doFinal(msg.getBytes("UTF-8"));
StringBuffer hash = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(0xFF & bytes[i]);
if (hex.length() == 1) {
hash.append('0');
}
hash.append(hex);
}
digest = hash.toString();
} catch (UnsupportedEncodingException e) {
// logger.error("Exception occured in hashing the pine payment gateway request"+e);
} catch (InvalidKeyException e) {
// logger.error("Exception occured in hashing the pine payment gateway request"+e);
} catch (NoSuchAlgorithmException e) {
// logger.error("Exception occured in hashing the pine payment gateway request"+e);
}
return digest;
}
public static boolean isValidString(String str){
if(str != null && !"".equals(str.trim())){
return true;
}
return false;
}
}
Note:
To create a request string, format the key-value pairs of data returned to the return URL. The pairs are separated by
&
and arranged in ascending order based on a lexicographical comparison of the keys.
Shown below is a example to create a request string.
"key1=value1&key2=value2", ["order_id=random_order_id&status=AUTHORIZED"]
"key1=value1&key2=value2&key3=value3&key4=value4", ["error_code=USER_AUTHENTICATION_FAILED&error_message=Consumer Authentication required&order_id=<order_id>&status=FAILED"]
- If the signature generated on your server matches the Plural signature returned in the return URL, it confirms that the payment details are from Plural.
- Capture the status returned on your database. Once the payment status is
AUTHORIZED
you can either capture or cancel an order.
To Know Your Payment Status
To check your payment status, you can either rely on Webhook events or use our Get Orders APIs for real-time updates.
- Webhook Notification: We send Webhook notifications on the successful payment or any changes to the payments object. Refer to our Webhooks documentation to learn more.
- Get Orders API: Use our Get Orders API to know the real time status of the payment. Refer to our Manage Orders documentation to learn more.
Refunds
Plural processes refund directly to the customer's original payment method to prevent chargebacks.
Refer to our Refunds documentation to learn more.
Updated 1 day ago