API Test Keys
Make a Payment
POST/v1/payments/payClick to copy
Use this endpoint to make payments from a payer to a payee. The first step of making a payment is to capture the UPI PIN.
Is this page helpful?
Curl
1curl -X POST 'api.rzp.<bank>.com/v1/payments/pay' \2-u [YOUR_KEY_ID]:[YOUR_SECRET] \3-H "Content-type: application/json" \4-H "x-device-fingerprint: <device_fingerprint>" \5-H "x-device-fingerprint-timestamp: 1496918882000" \6-H "x-customer-reference: customer-id-from-customer" \7-d '{8"upi_transaction_id": "RZP1KuSUGrp2l6MmPuT0163789452QPAY02",9"reference_id": "RSKwpINfSkdEvtdxf",10"upi_initiation_mode": "00",11"upi_purpose_code": "00",12"upi_reference_url": "https://www.test.com",13"upi_reference_category": "00",14"device": {15"geocode": "1234.1213",16"ip": "198.1.1.1"17},18"currency": "INR",19"amount": 100,20"description": "UPI transaction",21"payer": {22"fundsource_id": "fs_Mock14charID"23},24"upi_credentials": {},25"payees": [26{27"vpa": "9560137963.stage@rzp"28}29]30}'
Response
1{2"entity":"upi.payment",3"upi_transaction_id":"RZPc2ed455b797e4add8392110cfc528acc",4"reference_id":"ord_somfv432nsa",5"upi_customer_reference_number":"804813039157",6"upi_reference_url":"https://www.test.com",7"upi_reference_category":"00",8"upi_initiation_mode":"00",9"upi_purpose_code":"00",10"currency":"INR",11"amount":10024,12"type":"pay | collect",13"description":"flight tickets",14"payer":{15"vpa":"gaurav.kumar@exampleupi",16"fundsource":{17"ifsc":"AXIS0000058",18"masked_account_number":"XXXXXXXXXXX3000"19},20"name":"Gaurav Kumar",21"mcc":"0000",22"upi_response_code":"00",23"upi_reversal_response_code":"string"24},25"payees":[26{27"vpa":"acme.corp@rzp",28"fundsource":{29"ifsc":"HDFC0000058",30"masked_account_number":"XXXXXXXXXXX6000"31},32"name":"AcmeCorp Pvt. Ltd.",33"mcc":"6765",34"upi_response_code":"00",35"upi_reversal_response_code":"string"36}37],38"status":"pending | success | failed",39"created_at":"1722317078"40}
Request Parameters
upi_transaction_id *
stringThe unique identifier of the transaction across all entities in UPI is created by the originator. In payments, the lifecycle starts from CL, so it is mandatory for the originator to create it. All further actions regarding this payment will be done using this ID.
Watch Out!
This value should be alphanumeric and a maximum of 35 characters are allowed. The value should start with a prefix given by NPCI to Switch.
reference_id stringIndicates the transaction ID used by businesses for their reference. It is used at the business level and not in the UPI ecosystem. This value should be alphanumeric and between 1 and 35 characters.
upi_initiation_mode enumIndicates the 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
00: Default - When no specific code is assigned or for general default scenarios.01: QR Code - For making payments by scanning a standard QR code.02: Secure QR Code - For payments that require additional security with QR codes.03: Bharat QR Code - For interoperable payments across various payment networks using Bharat QR.04: Intent - For payments initiated by an intent from an application or browser.05: Secure Intent - For payments initiated by a secure intent from an app or browser.06: NFC (Near Field Communication) - For contactless payments using NFC technology.07: BLE (Bluetooth) - For payments made through Bluetooth Low Energy technology.08: UHF (Ultra High Frequency) - For payments made using UHF technology, typically for toll payments.09: Aadhaar - For payments authenticated using an Aadhaar number and biometric verification.10: SDK (Software Development Kit) - For payments initiated through an SDK embedded in an app.11: UPI-Mandate - For setting up recurring payments or mandates using UPI.12: FIR (Foreign Inward Remittance) - For receiving remittances from foreign countries.13: QR Mandate - For setting up recurring payments using a QR code.14: BBPS - For making bill payments through the Bharat Bill Payment System.
upi_purpose_code enumThe 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
01: SEBI02: AMC03: Travel04: Hospitality05: Hospital06: Telecom07: Insurance08: Education09: Gifting10: BBPS11: Global UPI12: Metro ATM QR13: Non-metro ATM QR14: Standing Instruction15: Corporate disbursement
upi_reference_url *
stringIndicates a URL that, upon clicking, provides the customer with further transaction details such as bill details, bill copy, order copy, ticket details, and so on. When used, this URL should be related to the particular transaction and not be used to send unsolicited information irrelevant to the transaction.
upi_reference_category *
stringThe 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
00: NULL01: Advertisement02: Invoice
device *
objectThe device details.
Show child parameters (2)
currency *
string The currency of the amount. Here, it is INR.
amount *
integerThe amount in paise.
description stringThe description of the payment.
payer *
objectThe payer details.
Show child parameters (1)
upi_credentials *
objectEncrypted credentials as created by NPCI.
payees *
arrayThe payee details.
vpastringThe VPA of the payee.
Response Parameters
entitystring The entity type. Here, it is payment.
upi_transaction_idstringThe unique identifier of the transaction across all entities in UPI is created by the originator. In payments, the lifecycle starts from CL, so it is mandatory for the originator to create it. All further actions regarding this payment will be done using this ID.
Watch Out!
This value should be alphanumeric and a maximum of 35 characters are allowed. The value should start with a prefix given by NPCI to Switch.
reference_idstringIndicates the transaction ID used by merchants for their reference. It is used at the business level and not in the UPI ecosystem. This value should be alphanumeric and between 1 and 35 characters.
upi_customer_reference_numberstringIndicates the UPI customer reference number. This is present in bank account statements as UTR. Additionally, this ID is shared with customers on TPAPs.
upi_reference_urlstringIndicates a URL that, upon clicking, provides the customer with further transaction details such as bill details, bill copy, order copy, ticket details, and so on. When used, this URL should be related to the particular transaction and not be used to send unsolicited information irrelevant to the transaction.
upi_reference_categorystringThe 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
00: NULL01: Advertisement02: Invoice
upi_initiation_modeenumIndicates the 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
00: Default - When no specific code is assigned or for general default scenarios.01: QR Code - For making payments by scanning a standard QR code.02: Secure QR Code - For payments that require additional security with QR codes.03: Bharat QR Code - For interoperable payments across various payment networks using Bharat QR.04: Intent - For payments initiated by an intent from an application or browser.05: Secure Intent - For payments initiated by a secure intent from an app or browser.06: NFC (Near Field Communication) - For contactless payments using NFC technology.07: BLE (Bluetooth) - For payments made through Bluetooth Low Energy technology.08: UHF (Ultra High Frequency) - For payments made using UHF technology, typically for toll payments.09: Aadhaar - For payments authenticated using an Aadhaar number and biometric verification.10: SDK (Software Development Kit) - For payments initiated through an SDK embedded in an app.11: UPI-Mandate - For setting up recurring payments or mandates using UPI.12: FIR (Foreign Inward Remittance) - For receiving remittances from foreign countries.13: QR Mandate - For setting up recurring payments using a QR code.14: BBPS - For making bill payments through the Bharat Bill Payment System.
upi_purpose_codeenumThe 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
01: SEBI02: AMC03: Travel04: Hospitality05: Hospital06: Telecom07: Insurance08: Education09: Gifting10: BBPS11: Global UPI12: Metro ATM QR13: Non-metro ATM QR14: Standing Instruction15: Corporate disbursement
currencystring The currency of the amount. Here, it is INR.
amountintegerThe amount in paise.
typestringThe type of the payment. Possible values:
paycollect
descriptionstringThe description of the payment.
payerobjectThe payer details.
Show child parameters (6)
payeesobjectThe payee details.
Show child parameters (6)
statusstringThe status of the payment. Possible values:
createdinitiatedpendingsuccessfailed
created_atintegerThe UNIX timestamp of the payment creation.
Make a Payment
POST/v1/payments/payClick to copy
Use this endpoint to make payments from a payer to a payee. The first step of making a payment is to capture the UPI PIN.
Is this page helpful?
Request Parameters
upi_transaction_id *
stringThe unique identifier of the transaction across all entities in UPI is created by the originator. In payments, the lifecycle starts from CL, so it is mandatory for the originator to create it. All further actions regarding this payment will be done using this ID.
Watch Out!
This value should be alphanumeric and a maximum of 35 characters are allowed. The value should start with a prefix given by NPCI to Switch.
reference_id stringIndicates the transaction ID used by businesses for their reference. It is used at the business level and not in the UPI ecosystem. This value should be alphanumeric and between 1 and 35 characters.
upi_initiation_mode enumIndicates the 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
00: Default - When no specific code is assigned or for general default scenarios.01: QR Code - For making payments by scanning a standard QR code.02: Secure QR Code - For payments that require additional security with QR codes.03: Bharat QR Code - For interoperable payments across various payment networks using Bharat QR.04: Intent - For payments initiated by an intent from an application or browser.05: Secure Intent - For payments initiated by a secure intent from an app or browser.06: NFC (Near Field Communication) - For contactless payments using NFC technology.07: BLE (Bluetooth) - For payments made through Bluetooth Low Energy technology.08: UHF (Ultra High Frequency) - For payments made using UHF technology, typically for toll payments.09: Aadhaar - For payments authenticated using an Aadhaar number and biometric verification.10: SDK (Software Development Kit) - For payments initiated through an SDK embedded in an app.11: UPI-Mandate - For setting up recurring payments or mandates using UPI.12: FIR (Foreign Inward Remittance) - For receiving remittances from foreign countries.13: QR Mandate - For setting up recurring payments using a QR code.14: BBPS - For making bill payments through the Bharat Bill Payment System.
upi_purpose_code enumThe 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
01: SEBI02: AMC03: Travel04: Hospitality05: Hospital06: Telecom07: Insurance08: Education09: Gifting10: BBPS11: Global UPI12: Metro ATM QR13: Non-metro ATM QR14: Standing Instruction15: Corporate disbursement
upi_reference_url *
stringIndicates a URL that, upon clicking, provides the customer with further transaction details such as bill details, bill copy, order copy, ticket details, and so on. When used, this URL should be related to the particular transaction and not be used to send unsolicited information irrelevant to the transaction.
upi_reference_category *
stringThe 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
00: NULL01: Advertisement02: Invoice
device *
objectThe device details.
Show child parameters (2)
currency *
string The currency of the amount. Here, it is INR.
amount *
integerThe amount in paise.
description stringThe description of the payment.
payer *
objectThe payer details.
Show child parameters (1)
upi_credentials *
objectEncrypted credentials as created by NPCI.
payees *
arrayThe payee details.
vpastringThe VPA of the payee.
Response Parameters
entitystring The entity type. Here, it is payment.
upi_transaction_idstringThe unique identifier of the transaction across all entities in UPI is created by the originator. In payments, the lifecycle starts from CL, so it is mandatory for the originator to create it. All further actions regarding this payment will be done using this ID.
Watch Out!
This value should be alphanumeric and a maximum of 35 characters are allowed. The value should start with a prefix given by NPCI to Switch.
reference_idstringIndicates the transaction ID used by merchants for their reference. It is used at the business level and not in the UPI ecosystem. This value should be alphanumeric and between 1 and 35 characters.
upi_customer_reference_numberstringIndicates the UPI customer reference number. This is present in bank account statements as UTR. Additionally, this ID is shared with customers on TPAPs.
upi_reference_urlstringIndicates a URL that, upon clicking, provides the customer with further transaction details such as bill details, bill copy, order copy, ticket details, and so on. When used, this URL should be related to the particular transaction and not be used to send unsolicited information irrelevant to the transaction.
upi_reference_categorystringThe 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
00: NULL01: Advertisement02: Invoice
upi_initiation_modeenumIndicates the 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
00: Default - When no specific code is assigned or for general default scenarios.01: QR Code - For making payments by scanning a standard QR code.02: Secure QR Code - For payments that require additional security with QR codes.03: Bharat QR Code - For interoperable payments across various payment networks using Bharat QR.04: Intent - For payments initiated by an intent from an application or browser.05: Secure Intent - For payments initiated by a secure intent from an app or browser.06: NFC (Near Field Communication) - For contactless payments using NFC technology.07: BLE (Bluetooth) - For payments made through Bluetooth Low Energy technology.08: UHF (Ultra High Frequency) - For payments made using UHF technology, typically for toll payments.09: Aadhaar - For payments authenticated using an Aadhaar number and biometric verification.10: SDK (Software Development Kit) - For payments initiated through an SDK embedded in an app.11: UPI-Mandate - For setting up recurring payments or mandates using UPI.12: FIR (Foreign Inward Remittance) - For receiving remittances from foreign countries.13: QR Mandate - For setting up recurring payments using a QR code.14: BBPS - For making bill payments through the Bharat Bill Payment System.
upi_purpose_codeenumThe 2-digit code defined by NPCI present in the intent URL or QR codes. Possible values:
01: SEBI02: AMC03: Travel04: Hospitality05: Hospital06: Telecom07: Insurance08: Education09: Gifting10: BBPS11: Global UPI12: Metro ATM QR13: Non-metro ATM QR14: Standing Instruction15: Corporate disbursement
currencystring The currency of the amount. Here, it is INR.
amountintegerThe amount in paise.
typestringThe type of the payment. Possible values:
paycollect
descriptionstringThe description of the payment.
payerobjectThe payer details.
Show child parameters (6)
payeesobjectThe payee details.
Show child parameters (6)
statusstringThe status of the payment. Possible values:
createdinitiatedpendingsuccessfailed
created_atintegerThe UNIX timestamp of the payment creation.
Curl
1curl -X POST 'api.rzp.<bank>.com/v1/payments/pay' \2-u [YOUR_KEY_ID]:[YOUR_SECRET] \3-H "Content-type: application/json" \4-H "x-device-fingerprint: <device_fingerprint>" \5-H "x-device-fingerprint-timestamp: 1496918882000" \6-H "x-customer-reference: customer-id-from-customer" \7-d '{8"upi_transaction_id": "RZP1KuSUGrp2l6MmPuT0163789452QPAY02",9"reference_id": "RSKwpINfSkdEvtdxf",10"upi_initiation_mode": "00",11"upi_purpose_code": "00",12"upi_reference_url": "https://www.test.com",13"upi_reference_category": "00",14"device": {15"geocode": "1234.1213",16"ip": "198.1.1.1"17},18"currency": "INR",19"amount": 100,20"description": "UPI transaction",21"payer": {22"fundsource_id": "fs_Mock14charID"23},24"upi_credentials": {},25"payees": [26{27"vpa": "9560137963.stage@rzp"28}29]30}'
Response
1{2"entity":"upi.payment",3"upi_transaction_id":"RZPc2ed455b797e4add8392110cfc528acc",4"reference_id":"ord_somfv432nsa",5"upi_customer_reference_number":"804813039157",6"upi_reference_url":"https://www.test.com",7"upi_reference_category":"00",8"upi_initiation_mode":"00",9"upi_purpose_code":"00",10"currency":"INR",11"amount":10024,12"type":"pay | collect",13"description":"flight tickets",14"payer":{15"vpa":"gaurav.kumar@exampleupi",16"fundsource":{17"ifsc":"AXIS0000058",18"masked_account_number":"XXXXXXXXXXX3000"19},20"name":"Gaurav Kumar",21"mcc":"0000",22"upi_response_code":"00",23"upi_reversal_response_code":"string"24},25"payees":[26{27"vpa":"acme.corp@rzp",28"fundsource":{29"ifsc":"HDFC0000058",30"masked_account_number":"XXXXXXXXXXX6000"31},32"name":"AcmeCorp Pvt. Ltd.",33"mcc":"6765",34"upi_response_code":"00",35"upi_reversal_response_code":"string"36}37],38"status":"pending | success | failed",39"created_at":"1722317078"40}