API Test Keys

Validate VPA using Reverse Penny Drop

POST
/v1/fund_accounts/validations

Click to copy

Use this endpoint to validate the bank account details via Reverse Penny Drop.

Is this page helpful?

Curl

1
curl -u [YOUR_KEY]:[YOUR_SECRET] \
2
-X POST https://api.razorpay.com/v1/fund_accounts/validations \
3
-H "Content-Type: application/json" \
4
-d '{
5
"source_account_number": "7878780080316316",
6
"validation_type": "upi_intent",
7
"reference_id": "112233",
8
"notes": {
9
"random_key_1": "Make it so",
10
"random_key_2": "Tea. Earl Grey. Hot."
11
}
12
}'

Response - Initial

Response - After Payment

1
{
2
"id": "fav_00000000000001",
3
"entity": "fund_account.validation",
4
"status": "created",
5
"utr": "123456789012",
6
"upi_intent": {
7
"intent_url": "upi://pay?pa=razorpayx@citibank&pn=RZPX%20PRIVATE%20LTD&mc=7413&cu=INR&am=1.00&tn=BAV&ver=01&mode=04&qrMedium=02&tr=RjY7anDJFuKQOB",
8
"phonepe_url": "phonepe://upi/pay?pa=razorpayx@citibank&pn=RZPX%20PRIVATE%20LTD&mc=7413&cu=INR&am=1.00&tn=BAV&ver=01&mode=04&qrMedium=02&tr=RjY7anDJFuKQOB",
9
"gpay_url": "tez://upi/pay?pa=razorpayx@citibank&pn=RZPX%20PRIVATE%20LTD&mc=7413&cu=INR&am=1.00&tn=BAV&ver=01&mode=04&qrMedium=02&tr=RjY7anDJFuKQOB",
10
"paytm_url": "paytmmp://upi/pay?pa=razorpayx@citibank&pn=RZPX%20PRIVATE%20LTD&mc=7413&cu=INR&am=1.00&tn=BAV&ver=01&mode=04&qrMedium=02&tr=RjY7anDJFuKQOB",
11
"bhim_url": "bhim://upi/pay?pa=razorpayx@citibank&pn=RZPX%20PRIVATE%20LTD&mc=7413&cu=INR&am=1.00&tn=BAV&ver=01&mode=04&qrMedium=02&tr=RjY7anDJFuKQOB",
12
"encoded_qr_code": "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAABlBMVEX///8AAABVwtN+AAACWUlEQVR42uyYy3E7LRDEe4sDR0IglM1sH+"
13
},
14
"validation_results": {
15
"account_status": null,
16
"registered_name": null,
17
"details": null,
18
"name_match_score": null,
19
"validated_account_type": null,
20
"bank_account": {
21
"bank_routing_code": null,
22
"account_number": null,
23
"bank_name": null,
24
"account_type": null
25
}
26
},
27
"status_details": {
28
"description": "Validation request is created",
29
"source": "internal",
30
"reason": "validation_request_created"
31
},
32
"reference_id": "112233",
33
"notes": {
34
"random_key_1": "Make it so.",
35
"random_key_2": "Tea. Earl Grey. Hot."
36
}
37
}
Request Parameters
source_account_number

*

string

Bank account number being validated. For example, 765432123456789.

validation_type

*

string

The method used for validating the bank account. Here, it is upi_intent.

reference_id
string

Unique reference id of the fund account being validated.

notes
object

Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each.

Response Parameters
id
string

The unique identifier linked to the fund account. For example, fa_00000000000001.

entity
string

Here it will be fund_account.validation.

status
string

The status of the fund account validation. For example, in the initial response, it could be created and in the after payment response, completed.

utr
string

The Unique Transaction Reference number assigned to the ₹1 UPI payment made by the end user. Use this to track or reconcile the transaction.

upi_intent
object

Contains deep links to launch specific UPI apps directly on the user's device, allowing them to complete the ₹1 payment without manually entering details.

Show child parameters (6)

validation_results
object

Contains the verified account details extracted from the payer's bank after the ₹1 payment is received.

Show child parameters (4)

bank_account
object

Contains the verified bank account details of the payer.

Show child parameters (4)

status_details
object

Contains details about the status of the validation.

Show child parameters (3)

reference_id
string

Unique reference id generated for the validation.

notes
object

Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each.

Validate VPA using Reverse Penny Drop

POST
/v1/fund_accounts/validations

Click to copy

Use this endpoint to validate the bank account details via Reverse Penny Drop.

Is this page helpful?

Request Parameters
source_account_number

*

string

Bank account number being validated. For example, 765432123456789.

validation_type

*

string

The method used for validating the bank account. Here, it is upi_intent.

reference_id
string

Unique reference id of the fund account being validated.

notes
object

Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each.

Response Parameters
id
string

The unique identifier linked to the fund account. For example, fa_00000000000001.

entity
string

Here it will be fund_account.validation.

status
string

The status of the fund account validation. For example, in the initial response, it could be created and in the after payment response, completed.

utr
string

The Unique Transaction Reference number assigned to the ₹1 UPI payment made by the end user. Use this to track or reconcile the transaction.

upi_intent
object

Contains deep links to launch specific UPI apps directly on the user's device, allowing them to complete the ₹1 payment without manually entering details.

Show child parameters (6)

validation_results
object

Contains the verified account details extracted from the payer's bank after the ₹1 payment is received.

Show child parameters (4)

bank_account
object

Contains the verified bank account details of the payer.

Show child parameters (4)

status_details
object

Contains details about the status of the validation.

Show child parameters (3)

reference_id
string

Unique reference id generated for the validation.

notes
object

Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each.

Curl

1
curl -u [YOUR_KEY]:[YOUR_SECRET] \
2
-X POST https://api.razorpay.com/v1/fund_accounts/validations \
3
-H "Content-Type: application/json" \
4
-d '{
5
"source_account_number": "7878780080316316",
6
"validation_type": "upi_intent",
7
"reference_id": "112233",
8
"notes": {
9
"random_key_1": "Make it so",
10
"random_key_2": "Tea. Earl Grey. Hot."
11
}
12
}'

Response - Initial

Response - After Payment

1
{
2
"id": "fav_00000000000001",
3
"entity": "fund_account.validation",
4
"status": "created",
5
"utr": "123456789012",
6
"upi_intent": {
7
"intent_url": "upi://pay?pa=razorpayx@citibank&pn=RZPX%20PRIVATE%20LTD&mc=7413&cu=INR&am=1.00&tn=BAV&ver=01&mode=04&qrMedium=02&tr=RjY7anDJFuKQOB",
8
"phonepe_url": "phonepe://upi/pay?pa=razorpayx@citibank&pn=RZPX%20PRIVATE%20LTD&mc=7413&cu=INR&am=1.00&tn=BAV&ver=01&mode=04&qrMedium=02&tr=RjY7anDJFuKQOB",
9
"gpay_url": "tez://upi/pay?pa=razorpayx@citibank&pn=RZPX%20PRIVATE%20LTD&mc=7413&cu=INR&am=1.00&tn=BAV&ver=01&mode=04&qrMedium=02&tr=RjY7anDJFuKQOB",
10
"paytm_url": "paytmmp://upi/pay?pa=razorpayx@citibank&pn=RZPX%20PRIVATE%20LTD&mc=7413&cu=INR&am=1.00&tn=BAV&ver=01&mode=04&qrMedium=02&tr=RjY7anDJFuKQOB",
11
"bhim_url": "bhim://upi/pay?pa=razorpayx@citibank&pn=RZPX%20PRIVATE%20LTD&mc=7413&cu=INR&am=1.00&tn=BAV&ver=01&mode=04&qrMedium=02&tr=RjY7anDJFuKQOB",
12
"encoded_qr_code": "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAABlBMVEX///8AAABVwtN+AAACWUlEQVR42uyYy3E7LRDEe4sDR0IglM1sH+"
13
},
14
"validation_results": {
15
"account_status": null,
16
"registered_name": null,
17
"details": null,
18
"name_match_score": null,
19
"validated_account_type": null,
20
"bank_account": {
21
"bank_routing_code": null,
22
"account_number": null,
23
"bank_name": null,
24
"account_type": null
25
}
26
},
27
"status_details": {
28
"description": "Validation request is created",
29
"source": "internal",
30
"reason": "validation_request_created"
31
},
32
"reference_id": "112233",
33
"notes": {
34
"random_key_1": "Make it so.",
35
"random_key_2": "Tea. Earl Grey. Hot."
36
}
37
}