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:This API enables crediting of the wallet using Collect request.

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 Data type Mandatory/Optional
payeeVPA VPA of the payee/merchant receiving the payment. String Mandatory
payerVPA VPA of the payer/customer initiating the payment. String Mandatory
payerName Name of the payer. String Mandatory
txnAmount Transaction amount in INR
Amount > 0 . It must Not be NULL. E.g. - 1 - 100000
String Mandatory
merchantType Merchant category (AGGREGATE, DIRECT) String Mandatory
paymentMode Type of UPI transaction It must Not be NULL. (VPA) String Mandatory
channelId Channel initiating the request (WEBUSER, ANDROID,IOS) String Mandatory
clientRefId Unique reference ID
regexp = "^[A-Za-z0-9]{10,19}$" Must be between 10 to 19 characters.
String Mandatory
expiryTime Expiry Time (1-30) Integer Mandatory
txnNote Note or remark for the transaction. Max size 50 String Mandatory
mobilenumber Valid registered mobile number Integer Mandatory
geoCode Latitude and longitude of the current location of the user String Mandatory
deviceId MAC ID of the device of the user String Mandatory
deviceIp IP Address of the user's device String Mandatory
deviceType MOBILE or WEB) String Mandatory
location Location of the user(City State and Country) String Mandatory
app Name of the app from which the user is performing transaction e.g. PhonePe, paytm or GPay String Mandatory
os Operating System of the user's environment String Mandatory
capability Capability String Mandatory
telecom Operator network company i.e. AIRTEL or JIO String Mandatory
simNo SIM Number of the User String Mandatory
payerCode Payer Code of the User String Mandatory
paramA To be used as per user's need. String Optional
paramB To be used as per user's need. String Optional
paramC To be used as per user's need. String Optional

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
amount Transaction amount in INR String
status Overall transaction status String
statusDesc Description of transaction status String
paymentState Current payment state (INITIATED, SUCCESS, FAILED) String
payeeVPA Payee’s Virtual Payment Address String
payerVPA Payer’s Virtual Payment Address String
qrData UPI QR payload (null for Collect) string
intentData UPI Intent payload (null for Collect) string
statusCode System Status Code String
clientRefId Client reference ID provided by merchant 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.