INTENT Request:


Request Method :: POST
Description: The Intent API provides an intent link that can be integrated within any merchant application to initiate a payment. When a customer chooses to pay using this method, they are redirected via the intent link to a supported payment app, where they can complete the transaction through a seamless and secure flow. The intent link is generated for a specific amount mentioned in the request and is also time-bound. After the defined duration, the link will expire and cannot be used to complete the payment.

Headers


Content-Type: application/JSON
header_secrets:  To be shared during integration by ISU Team
pass_key:  To be shared during integration by ISU Team

Request Body Parameters

Parameters Description Min Length Max Length Data type Mandatory/Optional
payeeVPA Payee's VPA of Merchant for Payment Collection (e.g- 63705423781902@nsdl ) 1 100 String Mandatory
paymentMode Payment Mode (INTENT) 1 10 String Mandatory
txnAmount Transaction amount for which transaction is initiated Min: 1 Max: 100000.00 1 10 String Mandatory
channelId Channel Identifier Web: “WEBUSER” Android: “Android” 1 10 String Mandatory
txnNote Transaction Note 1 50 String Mandatory
clientRefId Unique client reference needs to be generated by partner/Merchant for each transaction 10 19 String Mandatory
merchantType Type of Merchant Default Value: AGGREGATE 1 10 String Mandatory
expiryTime Time in Minutes Min Time: 1 Max Time: 30 1 2 String Mandatory
mobilenumber Mobile Number of Customer 10 10 String Mandatory

Sample Request Body


Encrypted Sample Request Body


Response Body Parameters

Parameters Description Min Length Max Length Data type
amount Transaction amount for which the transaction is initiated 1 10 Integer
clientRefId Unique client reference ID needs to be generated by partner/Merchant for each new transaction 10 19 String
intentData UPI Intent URL (null for QR) NA Na string
payeeVPA Payee's VPA of Merchant for Payment Collection 1 100 String
payerVPA Payer’s UPI ID 1 100 String
paymentState State of the Payment 1 10 String
qrData Base64 Encoded QR Data, which needs to be converted into a QR to collect payment NA Na String
status Status of Transaction Initiation 1 10 String
statusCode Status Code 1 3 String
statusDesc Status Description 1 50 String
txnId Generated Transaction ID 18 58 string

Sample Response Body


SUCCESS:

 

SUCCESS(Encrypted):


FAILED:

Amount is blank:

Client Reference ID is blank:

Note:

Any missing or invalid mandatory field will generate a Failed response.

Status Codes

Status Status Code Description
INITIATED 0 Qr generated successfully
FAILED -1 QR generation failed due to invalid request

 

QR Request:


Request Method :: POST
Description: The Dynamic QR API is used to initiate a dynamic QR-based transaction. Upon initiation, the response will include a QR string in Base64 format. This string should be converted into a QR code image, which can then be presented to the customer for completing the payment. The QR is generated for a defined amount provided in the request and will remain valid only for a limited time. Once this time window expires, the QR becomes inactive and cannot be used for payment.

Headers


Content-Type: application/JSON
header_secrets:  To be shared during integration by ISU Team
pass_key:  To be shared during integration by ISU Team

Request Body Parameters

Parameters Description Min Length Max Length Data type Mandatory/Optional
payeeVPA Payee's VPA of Merchant for Payment Collection (e.g- 63705423781902@nsdl ) 1 100 String Mandatory
paymentMode Payment Mode (e.g., QR) 1 10 String Mandatory
txnAmount Transaction amount for which transaction is initiated Min: 1 Max: 100000.00 1 10 String Mandatory
channelId Channel Identifier Web: “WEBUSER” Android: “Android” 1 10 String Mandatory
txnNote Transaction Note 1 50 String Mandatory
clientRefId Unique client reference needs to be generated by partner/Merchant for each transaction 10 19 String Mandatory
merchantType Type of Merchant Default Value: AGGREGATE 1 10 String Mandatory
expiryTime Time in Minutes Min Time: 1 Max Time: 30 1 2 String Mandatory
mobilenumber Mobile Number of Customer 10 10 String Mandatory

Sample Request Body


Encrypted Sample Request Body


Response Body Parameters

Parameters Description Min Length Max Length Data type
amount Transaction amount for which the transaction is initiated 1 10 Integer
clientRefId Unique client reference ID needs to be generated by partner/Merchant for each new transaction 10 19 String
intentData UPI Intent URL (null for QR) NA Na string
payeeVPA Payee's VPA of Merchant for Payment Collection 1 100 String
payerVPA Payer’s UPI ID 1 100 String
paymentState State of the Payment 1 10 String
qrData Base64 Encoded QR Data, which needs to be converted into a QR to collect payment NA Na String
status Status of Transaction Initiation 1 10 String
statusCode Status Code 1 3 String
statusDesc Status Description 1 50 String
txnId Generated Transaction ID 18 58 string

Sample Response Body


SUCCESS:

 

SUCCESS(Encrypted):


FAILED:

Amount is missing:

Client Reference ID is missing:

Note:

Any missing or invalid mandatory field will generate a Failed response.

Status Codes

Status Status Code Description
INITIATED 0 Qr generated successfully
FAILED -1 QR generation failed due to invalid request

 

UPI Collect(VPA) API:


Request Method :: POST
Description: The UPI Collect (VPA) API enables merchants to initiate a collect (request-to-pay) transaction by sending a payment request to a payer’s UPI Virtual Payment Address (VPA). Once initiated, the payer approves or declines the request via their UPI application. This API is applicable for COLLECT payment mode and supports Web and Mobile channels.

Headers


Refer to above sample header

API Flow (High Level):

  1. Merchant initiates a UPI Collect request using the required Payee and Payer VPA details.
  2. System validates all request parameters.
  3. Upon successful validation, the collect request is forwarded to the payer’s UPI application.
  4. Transaction remains in INITIATED state until payer action(approve or declines the request).
  5. Final transaction status(SUCCESS/FAILED/EXPIRED) is updated via callback notification or transaction status APIs.

Request Body Parameters

Parameters Description Min Length Max Length Data type Mandatory/Optional
payeeVPA VPA of the payee/merchant receiving the payment. 3 255 String Mandatory
payerVPA VPA of the payer/customer initiating the payment. 3 255 String Mandatory
paymentMode Type of UPI transaction (COLLECT only) 2 7 String Mandatory
txnAmount Transaction amount in INR 1 10 String/Decimal Mandatory
channelId Channel initiating the request (WEBUSER, ANDROID, etc.) 3 10 String Mandatory
txnNote Note or remark for the transaction 1 50 String Mandatory
clientRefId Unique reference ID generated by merchant per transaction 10 19 String Mandatory
merchantType Merchant category (AGGREGATE, DIRECT) 3 10 String Mandatory
expiryTime Time in minutes after which the request expires (Min: 1, Max: 64800 – 45 days) 1 5 Integer Mandatory
merchantMobileNumber Merchant’s registered mobile number 10 10 Integer Mandatory
deviceGeoCode Device latitude and longitude (format: lat,long) 13 15 String Mandatory-Collect only
deviceLocation Device or merchant location (City, State, Country) 1 255 String Mandatory-Collect only
deviceCapability Device capability (FULL, LIMITED) 1 99 String Mandatory-Collect only
deviceTelecomOp erator Telecom operator name (Jio, Airtel, or NA) 1 99 String Mandatory-Collect only
deviceIp Device IP address (IPv4/IPv6 only) 7 45 String Mandatory-Collect only
deviceType Device type (MOB, WEB) 1 20 String Mandatory-Collect only
deviceId Unique device identifier (IMEI / UUID / hash) 1 35 String Mandatory-Collect only
deviceOs Device OS name/version (e.g., Android 14, iOS 18) 1 20 String Mandatory-Collect only
deviceApp Application name initiating the transaction 1 20 String Mandatory-Collect only

Notes:

  • Device-related parameters are not applicable for INTENT and QR payment modes.

Sample Request Body


Encrypted Sample Request Body


Response Body Parameters

Parameters Description Data type
txnId Unique transaction identifier generated by the system String
txnAmount Transaction amount in INR String
clientRefId Client reference ID provided by merchant string
payeeVPA Payee’s Virtual Payment Address String
payerVPA Payer’s Virtual Payment Address String
paymentMode Payment mode (COLLECT, INTENT, QR) String
paymentState Current payment state (INITIATED, SUCCESS, FAILED) String
status Overall transaction status String
statusCode System Status Code String
statusDesc Description of transaction status String
createTime Transaction creation timestamp (DD-MM-YYYY HH:MM:SS) string
updateTime Last transaction update timestamp (DD-MM-YYYY HH:MM:SS) string
intentData UPI Intent payload (null for Collect) string
qrData UPI QR payload (null for Collect) string

Sample Response Body


 

Encrypted:


Notes:

  • clientRefId must be unique per transaction.
  • Expired collect requests cannot be reused.
  • Final transaction status will be communicated via callback APIs or status enquiry APIs.
  • Merchants must ensure payer consent before initiating collect requests.

Security & Compliance:

  • All requests must be sent over HTTPS.
  • IP whitelisting and authentication mechanisms apply as per merchant onboarding.
  • Sensitive data must not be logged or stored in plain text.