Object

Overview of the Buy Now Pay Later APIs response object.

1. Check Eligibility

Shown below is a sample response for a Check Eligibility API using the Pay Later method.

{
  "txn_eligibility": true,
  "metadata": {
    "credit_limit_available_in_paise": "0",
    "installments": [
      {
        "serial_no": 1,
        "amount_in_paise": 1134,
        "due_date": "2025-06-30"
      },
      {
        "serial_no": 2,
        "amount_in_paise": 1133,
        "due_date": "2025-07-21"
      },
      {
        "serial_no": 3,
        "amount_in_paise": 1133,
        "due_date": "2025-08-21"
      }
    ]
  }
}

The table below lists the various parameters returned in the payments response object.

ParameterTypeDescription
txn_eligibilitybooleanPay Later Eligibility status.

Possible values:
  • true: When the customer is eligible for Pay Later option.
  • false: When the customer is not eligible for Pay Later option.
metadataobjectAn object that contains the credit limit meta information.

Learn more about our metadata child object.

Metadata [Child Object]

The table below lists the various parameters in the metadata child object. This object is part of the check eligibility response object.

ParameterTypeDescription
credit_limit_available_in_paisestringThe running line of credit limit available is Paisa.
  • Minimum value: 100 (₹1)
  • Maximum value: 100 (₹10 lakh).
Example: 100
installmentsarray of objectsAn array of objects that contains the installment details.

Learn more about our installments child object.

Note: This installments array of object is returned only for SIMPL3

Installments [Child Object]

The table below lists the various parameters in the installments child object. This object is part of the metadata object.

ParameterTypeDescription
serial_nointegerInstalment number in series.

Example: 1
amount_in_paiseintegerThe running line of credit limit available is Paisa.
  • Minimum value: 100 (₹1)
  • Maximum value: 100 (₹10 lakh).
Example: 100
due_datestringThe due date by when the instalment must be paid.

Example: 2025-08-21

Format: YYYY-MM-DD

2. Payment Object

Shown below is a sample response for a Create Payment API using the Pay Later method.

{
  "data": {
    "order_id": "v1-250708064524-aa-Zd1J9Y",
    "merchant_order_reference": "efe43c72-acef-43ba-a3cf-c712ca183ffe",
    "type": "CHARGE",
    "status": "PENDING",
    "merchant_id": "106974",
    "order_amount": {
      "value": 100,
      "currency": "INR"
    },
    "notes": "Text description of order",
    "pre_auth": false,
    "part_payment": false,
    "allowed_payment_methods": [
      "CARD",
      "NETBANKING",
      "CREDIT_EMI",
      "UPI",
      "WALLET",
      "DEBIT_EMI",
      "BNPL",
      "CARDLESS_EMI"
    ],
    "purchase_details": {
      "customer": {
        "email_id": "[email protected]",
        "first_name": "joe",
        "last_name": "kumar",
        "customer_id": "192212",
        "mobile_number": "192192883",
        "country_code": "91",
        "billing_address": {
          "address1": "H.No 15, Sector 17",
          "pincode": "61232112",
          "city": "CHANDIGARH",
          "state": "PUNJAB",
          "country": "INDIA"
        },
        "shipping_address": {
          "address1": "H.No 15, Sector 17",
          "address2": "string",
          "address3": "string",
          "pincode": "144001123",
          "city": "CHANDIGARH",
          "state": "PUNJAB",
          "country": "INDIA"
        },
        "is_edit_customer_details_allowed": false
      },
      "merchant_metadata": {
        "key1": "value1",
        "key2": "value2"
      }
    },
    "payments": [
      {
        "id": "v1-250708064524-aa-Zd1J9Y-bn-a",
        "merchant_payment_reference": "2f2c63e5-c623-4a9f-8b43-67dbd721fa38",
        "status": "PENDING",
        "payment_amount": {
          "value": 100,
          "currency": "INR"
        },
        "payment_method": "BNPL",
        "payment_option": {
          "bnpl_data": {
            "mobile": "9315829629",
            "bnpl_pay_code": "LAZYPAY"
          }
        },
        "acquirer_data": {
          "approval_code": "",
          "acquirer_reference": "TXN1679652",
          "rrn": "",
          "is_aggregator": true,
          "acquirer_name": "LAZYPAY_BNPL"
        },
        "created_at": "2025-07-08T06:45:26.763Z",
        "updated_at": "2025-07-08T06:45:35.111Z"
      }
    ],
    "created_at": "2025-07-08T06:45:24.813Z",
    "updated_at": "2025-07-08T06:45:35.112Z",
    "integration_mode": "SEAMLESS",
    "payment_retries_remaining": 9,
    "is_mcc_transaction": false
  }
}

The table below lists the various parameters returned in the payments response object.

ParameterTypeDescription
order_idstringUnique identifier of the order in the Plural database.

Example: v1-241108065317-aa-zqaZCr
merchant_order_referencestringUnique identifier entered while creating a order.
  • Minimum length: 1 character.
  • Maximum length: 50 characters.
Example: d1bc3469-672b-478f-b935-b385dda1a3a0
typestringPayment type.

Possible values:
  • CHARGE
  • REFUND
statusstringOrder status.

Possible values:
  • CREATED: When the order is successfully created.
  • PENDING: When the order is linked against a payment request.
  • PROCESSED: When the payment is received successfully.
  • AUTHORIZED: Only when pre_auth is true. When the payment is ready for authorization.
  • CANCELLED: When the payment gets cancelled.
  • ATTEMPTED: When the payment is unsuccessful due to incorrect OTP. You can retry OTP verification until the payment gets failed.
  • FAILED: Payment acceptance failed for reasons such as cancel transactions, maximum retries for OTP verification etc.
  • FULLY_REFUNDED: When the payment is completely refunded.
  • PARTIALLY_REFUNDED: When the partial refund is successful.
challenge_urlstringUse the generated challenge_url URL to navigate your users to the checkout page.
merchant_idstringUnique identifier of the merchant in Plural database.

Example: 123456
order_amountobjectAn object that contains the order amount details.

Learn more about our order_amount child object.
notesstringThe note you want to show against an order.

Example: Order1
pre_authbooleanThe pre-authorization type.

Possible values:
  • true: When pre-authorization is needed.
  • false: When pre-authorization is not required.
Example: false

Learn more about our pre-authorization..

Note: Pre authorization is not supported for Net Banking.
allowed_payment_methodsarray of stringsThe type of payment methods you want to offer your customers to accept payments.

Accepted values:
  • CARD
  • UPI
  • POINTS
  • NETBANKING
  • WALLET
  • CREDIT_EMI
  • DEBIT_EMI
  • BNPL
Example: BNPL

Note: Before selecting a payment method, ensure it is configured for you.
notesstringThe note you want to show against an order.

Example: Order1
callback_urlstringUse this URL to redirect your customers to specific success or failure pages based on the order or product details.

Example: https\://sample-callback-url
failure_callback_urlstringThe URL specifically used to redirect customers to a failure page based on the order or product details.

Example: https://sample-failure-callback-url

Note:
  • If the failure_callback_url is not provided, customers will be redirected to the callback_url for both successful and failed transactions.
  • If the failure_callback_url is provided, the callback_url will be used exclusively for successful transactions, while the failure_callback_url will be used for failed transactions.
  • If neither URL is provided, the default URL configured during merchant onboarding will be used.
purchase_detailsobjectAn object that contains the purchase details.

Learn more about our purchase_details child object.

Note: The presence of the key-values pairs in this object depends on the Input request.
paymentsarray of objectsAn array of object that contains the payment details.

Learn more about our payments child object.

Note: Payments response object can vary based on the payment methods and payment status.
created_atstringThe ISO 8601 UTC Timestamp, when the create order request was received by Plural.

Example: 2024-11-08T06:53:17.603Z
updated_atstringThe ISO 8601 UTC Timestamp, when the order response object is updated.

Example: 2024-11-08T06:53:33.272Z
integration_modestringType of integration.

Accepted values:
  • SEAMLESS
  • REDIRECT


Example: SEAMLESS
payment_retries_remainingintegerNumber of payment retries remaining.

Example: 9
is_mcc_transactionbooleanMCC transaction status.

Accepted values:
  • true
  • false

Order Amount [Child Object]

The table below lists the various parameters in the order_amount child object. This object is part of the payments sample response object.

ParameterTypeDescription
valueintegerThe transaction amount is Paisa.
  • Minimum value: 100 (₹1)
  • Maximum value: 100 (₹10 lakh).
Example: 100
currencystringType 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 payments sample response object.

ParameterTypeDescription
customerObjectAn object that contains the customer details.

Learn more about our customer child object.
is_edit_customer_details_allowedbooleanIndicates whether the customer is allowed to edit their details.

Possible values:
  • true: Customer can edit their personal details.
  • false: Customer cannot edit their personal details.
merchant_metadataobjectAn object of key-value pair that can be used to store additional information.

Example: "key1": "DD"

Customer [Child Object]

The table below lists the various parameters in the customer child object. This is part of the purchase_details object.

ParameterTypeDescription
email_idstringCustomer's email address.
  • Minimum length: 1 character.
  • Maximum length: 50 character.
Example: [email protected]
first_namestringCustomer's first name.
  • Minimum length: 1 character.
  • Maximum length: 50 characters.
Example: Kevin
last_namestringCustomer's last name.
  • Minimum length: 1 character.
  • Maximum length: 50 characters.
Example: Bob
customer_idstringUnique identifier of the customer in the Plural database.
  • Minimum length: 1 character.
  • Maximum length: 19 characters.
Example: 123456
country_codestringCountry code of the registered mobile number.

Example: 91
mobile_numberstringCustomer's mobile number.
  • Minimum length: 10 character.
  • Maximum length: 20 characters.
Example: 9876543210

Supported characters: 0-9
billing_addressobjectAn object that contains the details of the billing address.

Learn more about our billing_address child object.
shipping_addressobjectAn 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.

ParameterTypeDescription
address1stringCustomer's billing address1.
  • Maximum length: 100 characters.
Example: 10 Downing Street Westminster London
address2stringCustomer's billing address2.
  • Maximum length: 100 characters.
Example: Oxford Street Westminster London
address3stringCustomer's billing address3.
  • Maximum length: 100 characters.
Example: Baker Street Westminster London
pincodestringPincode of the billing address.
  • Maximum length: 10 characters.
Example: 51524036
citystringCity of the billing address.
  • Maximum length: 50 characters.
Example: Westminster
statestringState of the billing address.
  • Maximum length: 50 characters.
Example: Westminster
countrystringCountry of the billing address.
  • Maximum length: 50 characters.
Example: 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.

ParameterTypeDescription
address1stringCustomer's shipping address1.
  • Maximum length: 100 characters.
Example: 10 Downing Street Westminster London
address2stringCustomer's shipping address2.
  • Maximum length: 100 characters.
Example: Oxford Street Westminster London
address3stringCustomer's shipping address3.
  • Maximum length: 100 characters.
Example: Baker Street Westminster London
pincodestringPincode of the shipping address.
  • Maximum length: 10 characters.
Example: 51524036
citystringCity of the shipping address.
  • Maximum length: 50 characters.
Example: Westminster
statestringState of the shipping address.
  • Maximum length: 50 characters.
Example: Westminster
countrystringCountry of the shipping address.
  • Maximum length: 50 characters.
Example: London

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.

ParameterTypeDescription
idstringUnique identifier of the payment in the Plural database.
  • Maximum length: 50 characters.
Example: v1-241108065317-aa-zqaZCr-nb-T
merchant_order_referencestringA unique Payment Reference id sent by merchant.

Example: 008cf04b-a770-4777-854e-b1e6c1230609
statusstringPayment status.

Possible values:
  • PENDING: When the create payment API request is successfully received by Plural.
  • AUTHORIZED: Only when pre_auth is true. When the payment is ready for authorization.
  • CANCELLED: When the payment gets cancelled.
  • PROCESSED: When the payment is successfully received by Plural.
  • FAILED: When the payment fails, this can be for many reasons such as canceling payments, etc.
Example: PENDING
payment_amountobjectAn object that contains the details of the payment amount.

Learn more about our payment_amount child object.
payment_methodstringType of payment method.

Accepted values:
  • CARD
  • UPI
  • POINTS
  • NETBANKING
  • BNPL
Example: BNPL
payment_optionobjectAn object that contains the details of the payment options.

Learn more about our payment_option child object.
acquirer_dataobjectAn object that contains the details of the acquirer data.

Learn more about our acquirer_data child object.
error_detailobjectAn object that contains the error details.

Learn more about our error_detail child object.

Note: This object is returned only for the failed payment.
created_atstringThe ISO 8601 UTC Timestamp, when the create payment request was received by Plural.

Example: 2024-07-11T06:52:12.484Z
updated_atstringThe 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.

ParameterTypeDescription
valueintegerThe transaction amount is Paisa.
  • Minimum value: 100 (₹1).
  • Maximum value: 100000000 (₹10 lakh).
Example: 100
currencystringType 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.

ParameterTypeDescription
bnpl_detailsobjectAn object that contains the buy now pay later details.

Learn more about our bnpl_details child object.

BNPL Details [Child Object]

The table below lists the various parameters in the bnpl_details child object. This object is part of the payment_option object.

ParameterTypeDescription
mobilestringCustomer's mobile number.

Has to be a 10-digit mobile number without the country code.

Example: 9876543210
bnpl_pay_codestringPay Later service provide code.

Possible values:
  • LAZYPAY
  • SIMPL
  • SIMPL3
Example: LAZYPAY

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.

ParameterTypeDescription
approval_codestringAuthorization code returned from acquirer against the payment.

Example: 030376
acquirer_referencestringUnique reference returned from acquirer for the payment.

Example: 202455840588334
rrnstringRetrieval reference number returned from acquirer for the payment.

Example: 419335023601
is_aggregatorbooleanThe selected aggregator model type.

Accepted values:
  • true: Plural is responsible for settling funds related to this payment.
  • false: Plural is not responsible for settling funds related to this payment.
Note:
  • When the is_aggregator is set to true, Plural acts as the acquirer on behalf of merchants, receiving funds from banks into a designated "Nodal Account".
  • When the is_aggregator is set to false, the Merchant has a direct relationship with the bank and the responsibility for settlement of funds lies with both of those parties.
acquirer_namestringName of the acquirer.

Example: LAZYPAY_BNPL

Error Detail [Child Object]

The table below lists the various parameters in the error_detail child object. This object is part of the payments object.

ParameterTypeDescription
codestringThe error short Code.

Example: PAYMENT_DECLINED
messagestringError description explaining the why the error occured.

Example: Transaction declined due to insufficient balance

3. OTP Response Objects

Shown below are the sample responses through our OTP APIs.

{
  "status": "SUCCESS"
}
{
  "status": "SUCCESS",
  "meta_data": {
    "status": "SUCCESS",
    "otp_type": "m-otp",
    "attemptsRemaining": 1
  }
}

The table below lists the various parameters returned in our OTP APIs response object.

ParameterTypeDescription
statusstringOTP Verification status.

Possible values:
  • success: When the OTP is successfully submitted and the payment is initiated.
Note: The OTP submission status does not indicate the transaction status. To check the transaction status, use webhooks or the fetch order API.
meta_dataobjectAn object that contains the metadata information.

Learn more about the meta_data child object.

Metadata [Child Object]

The table below lists the various parameters in the metadata child object. This object is part of the OTP APIs response object.

ParameterTypeDescription
statusstringIndicates the result of the OTP initiation.

Example: success: means the operation was successful
otp_typestringSpecifies the type of OTP used.

Example: m-otp
attemptsRemainingintegerIndicates the number of OTP resend attempts remaining.

Example: 1

Note: If the attempts are exhausted, you need to re-initiate the payment.