SendMoney
This api will be used for completing all P2P and P2M Payment scenarios. This includes
Incoming Intent Payment
Scan and Pay (UPI QR & Bharat QR)
P2P Pay (Vpa & Account+IFSC)
Payment to PSP merchant
Self Pay
The api can be invoked to process different types of payments. The transactionType key of request is used to identify the type of payment. Possible values are P2M_PAY, P2P_PAY, SELF_PAY, INTENT_PAY and SCAN_PAY. Depending on the payment type, some additional parameters need to be passed.
P2M_PAY is to be used for payment to a PSP merchant only. The payeeVpa should be a valid PSP generated vpa for the merchant.
INTENT_PAY and SCAN_PAY are used for the intent and qr scan transactions. Both UPI QR and Bharat QR codes are supported.
P2P_PAY is to be used for completing all other P2P payment scenarios. For direct to account transfers, payeeVpa should be of format <account-no>@<ifsc-code>.ifsc.npci like 12345@BankIFSC.ifsc.npci.
SELF_PAY is to be used for doing a self transfer between customer accounts having same vpa domain.
Below are some request parameters required to be handled specifically according to the payment scenario.
Will be shared while onboarding.
Will be shared while onboarding.
This is an epoch unix timestamp string. For example, 1496918882000. It can be used by us to invalidate older requests.
This is a signature over combination of headers, payload. Refer Signature Calculation section for more details.
application/json
application/json
Merchant generated unique profile id for customer
Constraints:Alphanumeric string with dot(.). Maximum length is 256.
Device fingerprint of the customer
Merchant generated id for the transaction
Constraints:35 characters alphanumeric
Unique id for the payer selected bank account
Constraints:bankAccountUniqueId in the response of Fetch Accounts api call
Unique id sent to UPI switch for the request
Constraints:35 character alphanumeric. Should always start with merchant prefix provided.
VPA of the customer to be used for payment
Constraints:something@handle
Any transaction summary
Constraints:50 characters, alphanumeric, space and hyphen
Vpa of the payee to whom money is being sent
Constraints:something@handle
Name of the payee
Constraints:String as returned in the Verify VPA API
Type of payment
Constraints:P2M_PAY, P2P_PAY, INTENT_PAY or SCAN_PAY
Unique id for the payee selected bank account for self transfer
Constraints:bankAccountUniqueId in the response of Fetch Accounts api call
Currency code
Constraints:String - INR
Defines the purpose code of the transaction
Encrypted credblock containing user mpin
Constraints:As returned by Common Library
Amount for transaction
Constraints:Numeric string with two decimals
Stringified JSON for udf parameters
Transaction reference id
Reference url for the intent transaction
Details for refUrl, whether it is 01 (Advertisement), 02(Invoice)
Merchant category code
Defines the initiation mode of the transaction
upiNumber of payee if transaction is done using UPI Number
Constraint : 8-10 digit Number
Lite Reference Number which is reference the number provided for the wallet linked with account number. This field is Mandatory for UPI Lite
This is the timestamp in GMT format which was sent to CL for generating ARQC credblock. This timestamp should be passed as it is which was passed to CL. This field is Mandatory for UPI Lite
Amount in base currency
Base currency
The consent type denotes the purpose for which the customer’s consent is being taken.This is for specific use cases as may be defined in future. This tag is not applicable for GST
The txnId of QR Validation request
Common Library Version of the UPI application clVersion
Constraints: Common Library Version of the UPI application (Mandatory for BioAuth payments)
PSP status of the API
Values: SUCCESS, FAILURE
PSP response code for the API
Values:Refer error code section
PSP response message for the API
Values:Refer error code section
Unique id for the merchant as passed in request headers
Unique id for the merchant channel as passed in request headers
Merchant generated unique profile id for customer as passed in the request
Merchant generated id for the transaction
Values:As passed in the request
Customer mobile number
Values:12 digits mobile number string
Customer vpa used for the payment
Values:As passed in the request
MCC for the payee
Merchant generated unique id for customer who received the payment. Only if it is an onus P2P transaction.
Name of the upi user who received the payment. Only if payment is done to a non A/C+IFSC vpa.
Vpa of the upi user who received the payment
Values: something@handle
Reference url for the intent transaction
Unique id for the selected bank account
Values: As passed in the request
Bank code of the account which was used
Values: Valid bank IIN
Masked account number of the account which was used
Values: XXXX123456
Amount for the payment
Values: As passed in the request
Type of payment
Values: As sent in request
Timestamp of when the transaction was attempted
Values:YYYY-MM-DDTHH:MM:SS+05:30
Transaction id returned by gateway
Response status returned by gateway
Values: SUCCESS, FAILURE
Reference id returned by the gateway
Response code returned by gateway
Response message for code returned by gateway
Response code returned by gateway
Response code returned by gateway
Response code returned by gateway
Response code returned by gateway
Account type of the customer who received the payment
Account's ifsc of the customer who received the payment
Account type of the customer who received the payment
Account type of the customer who received the payment
This comes from NPCI for all lite txns and it needs to be passed to CL. Only in Successful Response of UPI Lite
Udf parameters as passed in the request
Have questions?
- Need help? Contact support
- LLM? Read llms.txt

