Overview of the UPI payment response object.

Shown below is a sample response of a Create Payments API through payment method as UPI.

{
  "data": {
    "order_id": "v1-240820090251-aa-xwuI7J",
    "merchant_order_reference": "8200c7f7-4490-4970-b6bb-40ffa05d47e5",
    "type": "CHARGE",
    "status": "PENDING",
    "challenge_url": "upi://pay?mode=04&pa=pinelabs.24092@hdfcbank&pn=Pine%20Test&mc=6012&cu=INR&am=1.00&tr=68706&tn=Payment%20for%20v1",
    "merchant_id": "110047",
    "order_amount": {
      "value": 100,
      "currency": "INR"
    },
    "pre_auth": false,
    "callback_url": "https://sample-callback-url",
    "purchase_details": {
      "customer": {
        "email_id": "[email protected]",
        "first_name": "Kevin",
        "last_name": "Bob",
        "customer_id": "192212",
        "mobile_number": "9876543210",
        "billing_address": {
          "address1": "H.No 15, Sector 17",
          "address2": "",
          "address3": "",
          "pincode": "61232112",
          "city": "CHANDIGARH",
          "state": "PUNJAB",
          "country": "INDIA"
        },
        "shipping_address": {
          "address1": "H.No 15, Sector 17",
          "address2": "",
          "address3": "",
          "pincode": "144001123",
          "city": "CHANDIGARH",
          "state": "PUNJAB",
          "country": "INDIA"
        }
      },
      "merchant_metadata": {
        "key1": "DD",
        "key2": "XOF"
      }
    },
    "payments": [
      {
        "id": "v1-240820090251-aa-xwuI7J-up-6",
        "status": "PENDING",
        "payment_amount": {
          "value": 100,
          "currency": "INR"
        },
        "payment_method": "UPI",
        "payment_option": {
          "upi_details": {
            "txn_mode": "COLLECT",
            "payer": {
              "vpa": "kevinbob@example"
            }
          },
          "acquirer_data": {
            "approval_code": "",
            "acquirer_reference": "",
            "rrn": "",
            "is_aggregator": true
          },
          "created_at": "2024-08-20T09:02:51.265554Z",
          "updated_at": "2024-08-20T09:03:01.208440Z"
        }
      }
    ],
    "created_at": "2024-08-20T09:02:51.265548Z",
    "updated_at": "2024-08-20T09:03:01.208437Z"
  }
}
{
  "data": {
    "order_id": "v1-240820090251-aa-xwuI7J",
    "merchant_order_reference": "8200c7f7-4490-4970-b6bb-40ffa05d47e5",
    "type": "CHARGE",
    "status": "PENDING",
    "challenge_url": "upi://pay?mode=04&pa=pinelabs.24092@hdfcbank&pn=Pine%20Test&mc=6012&cu=INR&am=1.00&tr=68706&tn=Payment%20for%20v1",
    "merchant_id": "110047",
    "order_amount": {
      "value": 100,
      "currency": "INR"
    },
    "pre_auth": false,
    "callback_url": "https://sample-callback-url",
    "purchase_details": {
      "customer": {
        "email_id": "[email protected]",
        "first_name": "Kevin",
        "last_name": "Bob",
        "customer_id": "192212",
        "mobile_number": "9876543210",
        "billing_address": {
          "address1": "H.No 15, Sector 17",
          "address2": "",
          "address3": "",
          "pincode": "61232112",
          "city": "CHANDIGARH",
          "state": "PUNJAB",
          "country": "INDIA"
        },
        "shipping_address": {
          "address1": "H.No 15, Sector 17",
          "address2": "",
          "address3": "",
          "pincode": "144001123",
          "city": "CHANDIGARH",
          "state": "PUNJAB",
          "country": "INDIA"
        }
      },
      "merchant_metadata": {
        "key1": "DD",
        "key2": "XOF"
      }
    },
    "payments": [
      {
        "id": "v1-240820090251-aa-xwuI7J-up-6",
        "status": "PENDING",
        "payment_amount": {
          "value": 100,
          "currency": "INR"
        },
        "payment_method": "UPI",
        "payment_option": {
          "upi_details": {
            "txn_mode": "INTENT"
          }
        },
        "acquirer_data": {
          "approval_code": "",
          "acquirer_reference": "",
          "rrn": "",
          "is_aggregator": true
        },
        "created_at": "2024-08-20T09:02:51.265548Z",
        "updated_at": "2024-08-20T09:03:01.208437Z"
      }
    ],
    "created_at": "2024-08-20T09:02:51.265548Z",
    "updated_at": "2024-08-20T09:03:01.208437Z"
  }
}

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-5757575757-aa-hU1rUd
merchant_order_referencestringUnique identifier entered while creating a order.
  • Minimum length: 1 character.
  • Maximum length: 50 characters.
Example: 82d57572-057c-4826-5775-385a52150554
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 the checkout page.
merchant_idstringUnique identifier of the merchant in Plural database.

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

Learn more about our order_amount child object.
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.
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
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-07-09T07:57:08.022056Z
updated_atstringThe ISO 8601 UTC Timestamp, when the order response object is updated.

Example: 2024-07-09T07:57:08.022065Z

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: 100000000 (₹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.
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
mobile_numberstringCustomer's mobile number.
  • Minimum length: 9 character.
  • Maximum length: 20 characters.
Example: 9876543210
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-5206071124-aa-mpLhF3-cc-l
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
Example: CARD
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.
capture_dataobjectAn object that contains the details of the capture data.

Learn more about our capture_data child object.

Note: The presence of the key-value pairs against this object depends on the pre-authorization type.
created_atstringThe ISO 8601 UTC Timestamp, when the create order request was received by Plural.

Example: 2024-08-20T09:02:51.265554Z
updated_atstringThe ISO 8601 UTC Timestamp, when the order response object is updated.

Example: 2024-08-20T09:03:01.208440Z

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
upi_detailsobjectAn object that contains the upi details.

Learn more about our upi_details child object.

UPI Details [Child Object]

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

ParameterTypeDescription
txn_modestringType of UPI transaction.

Accepted values:
  • COLLECT
  • INTENT
Example: COLLECT
payerobjectAn object that contains the payer details.

Learn more about our payer child object.

Note: Mandatory for UPI collect only.

Payer [Child Object]

The table below lists the various parameters in the payer child object. This object is part of the upi_details object.

ParameterTypeDescription
vpastringVPA handle of your customer from whom you want to accept payment.
  • Minimum length: 2 characters.
  • Maximum length: 256 characters
Example: kevinbob@example

Supported characters:
  • A-Z
  • a-z
  • 0-9
  • @
  • $

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.

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

Capture Data [Child Object]

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

ParameterTypeDescription
merchant_capture_referencestringUnique identifier passed while creating the capture payment request.

Example: 5742ef1e-4606-4c11-5757-705f4d415b6d
capture_amountobjectAn object that contains the capture amount details.

Learn more about our capture_amount child object.
created_atstringThe ISO 8601 UTC Timestamp, when the amount 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 capture_data object.

ParameterTypeDescription
valueintegerThe transaction amount is Paisa.
  • Minimum value: 100 (₹1).
  • Maximum value: 100000000 (₹10 lakh).
Example: 100
currencystringType of currency.

Example: INR