API Test Keys
Create a Customer Identifier With VPA and Bank Account Receivers (Smart Collect 2.0)
POST/v1/virtual_accountsClick to copy
Use this endpoint to create a Customer Identifier with both bank_account and vpa receiver types.
You can customise the merchant prefix of the vpa (payto00000) as per your business requirements. This is an on-demand feature and is not available by default. To enable creation of custom merchant prefix, raise a request on our
Watch Out!
You cannot create a Customer Identifier with VPA Receiver alone. You can only add VPA to an existing Customer Identifier.
Watch Out!
Smart Collect APIs are not available in Malaysia.
Is this page helpful?
1curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \2-X POST https://api.razorpay.com/v1/virtual_accounts \3-H "Content-Type: application/json" \4-d '{5"receivers": {6"types": [7"vpa",8"bank_account"9],10"bank_account":11{12"descriptor": "1234567890"13}14"vpa":15{16"descriptor": "gaurikumari"17}18},19"description": "Receive payment instalment from Gaurav Kumar- Flat No 105",20"customer_id": "cust_BM8NbnFAk1BVDA",21"close_by": 168161583822}'
Success
Failure
1{2"id": "va_DzaznJGgvduD1R",3"name": "Acme Corp",4"entity": "virtual_account",5"status": "active",6"description": "Receive payment instalment from Gaurav Kumar- Flat No 105",7"amount_expected": null,8"notes": [],9"amount_paid": 0,10"customer_id": "cust_BM8NbnFAk1BVDA",11"receivers": [12{13"id": "ba_Dzaznb0XK1yx1l",14"entity": "bank_account",15"ifsc": "RATN0VAAPIS",16"bank_name": "RBL Bank",17"name": "Acme Corp",18"notes": [],19"account_number": "2223333226676435"20},21{22"id": "vpa_DzaznS24HKkTBY",23"entity": "vpa",24"username": "rpy.payto00000gaurikumari",25"handle": "icici",26"address": "rpy.payto00000gaurikumari@icici"27}28],29"close_by": 1681615838,30"closed_at": null,31"created_at": 157796555932}
Request Parameters
receivers *
json objectConfiguration of desired receivers for the Customer Identifier.
Show child parameters (3)
description stringA brief description of the Customer Identifier.
customer_id stringUnique identifier of the customer to whom the Customer Identifier must be tagged. Create a customer using the
.notes json objectAny custom notes you might want to add to the Customer Identifier can be entered here. Know more about
.close_by integer UNIX timestamp at which the Customer Identifier is scheduled to be automatically closed. For example, 1681615838. This needs to be passed only if you want the Customer Identifier to be temporary and auto-deleted after a specific usage time.
Watch Out!
- While sharing the details of Customer Identifiers (created using RBL bank) with the customers, ensure that the fifth character in the IFSC is number
0and not the letter O. For example, valid IFSC isRATN0VAAPISand notRATNOVAAPIS. - A Customer Identifier will close automatically only if the UNIX timestamp is passed in the
close_byrequest parameter.
Response Parameters
idstringThe unique identifier of the Customer Identifier.
namestring The merchant billing label as it appears on the Dashboard.
entitystring Indicates the type of entity. Here, it is virtual account.
statusstring Indicates whether the Customer Identifier is in active or closed state.
descriptionstringA brief description about the Customer Identifier.
amount_expectedintegerThe amount expected by the merchant.
amount_paidintegerThe amount paid by the customer into the Customer Identifier.
notesjson objectAny custom notes you might want to add to the Customer Identifier can be entered here. Know more about
.customer_idstringUnique identifier of the customer the Customer Identifier is linked with. Know more about
.receiversjson objectConfiguration of desired receivers for the Customer Identifier.
Show child parameters (10)
close_byintegerUNIX timestamp at which the Customer Identifier is scheduled to be automatically closed. This is returned only if the UNIX timestamp was specified during the Customer Identifier creation. There is no expiry time for a Customer Identifier unless specified during creation.
closed_atintegerUNIX timestamp at which the Customer Identifier is automatically closed.
created_atintegerUNIX timestamp at which the Customer Identifier was created.
Errors
The api <key/secret> provided is invalid
Error Status: 4xx
Occurs when there is a mismatch between the API credentials passed in the API call and the API credentials generated on the dashboard.
Solution
The field name is required
Error Status: 400
Occurs when a mandatory field is empty.
Solution
The id provided does not exist
Error Status: 400
Occurs when the customer_id passed is wrong or does not belong to the identifier associated to the API Keys used.
Solution
Receivers field is required
Error Status: 400
Occurs when the receivers field is empty.
Solution
An active Customer Identifier with the same descriptor already exists for your account.
Error Status: 400
The description provided by you already exists for another account.
Solution
Create a Customer Identifier With VPA and Bank Account Receivers (Smart Collect 2.0)
POST/v1/virtual_accountsClick to copy
Use this endpoint to create a Customer Identifier with both bank_account and vpa receiver types.
You can customise the merchant prefix of the vpa (payto00000) as per your business requirements. This is an on-demand feature and is not available by default. To enable creation of custom merchant prefix, raise a request on our
Watch Out!
You cannot create a Customer Identifier with VPA Receiver alone. You can only add VPA to an existing Customer Identifier.
Watch Out!
Smart Collect APIs are not available in Malaysia.
Is this page helpful?
Request Parameters
receivers *
json objectConfiguration of desired receivers for the Customer Identifier.
Show child parameters (3)
description stringA brief description of the Customer Identifier.
customer_id stringUnique identifier of the customer to whom the Customer Identifier must be tagged. Create a customer using the
.notes json objectAny custom notes you might want to add to the Customer Identifier can be entered here. Know more about
.close_by integer UNIX timestamp at which the Customer Identifier is scheduled to be automatically closed. For example, 1681615838. This needs to be passed only if you want the Customer Identifier to be temporary and auto-deleted after a specific usage time.
Watch Out!
- While sharing the details of Customer Identifiers (created using RBL bank) with the customers, ensure that the fifth character in the IFSC is number
0and not the letter O. For example, valid IFSC isRATN0VAAPISand notRATNOVAAPIS. - A Customer Identifier will close automatically only if the UNIX timestamp is passed in the
close_byrequest parameter.
Response Parameters
idstringThe unique identifier of the Customer Identifier.
namestring The merchant billing label as it appears on the Dashboard.
entitystring Indicates the type of entity. Here, it is virtual account.
statusstring Indicates whether the Customer Identifier is in active or closed state.
descriptionstringA brief description about the Customer Identifier.
amount_expectedintegerThe amount expected by the merchant.
amount_paidintegerThe amount paid by the customer into the Customer Identifier.
notesjson objectAny custom notes you might want to add to the Customer Identifier can be entered here. Know more about
.customer_idstringUnique identifier of the customer the Customer Identifier is linked with. Know more about
.receiversjson objectConfiguration of desired receivers for the Customer Identifier.
Show child parameters (10)
close_byintegerUNIX timestamp at which the Customer Identifier is scheduled to be automatically closed. This is returned only if the UNIX timestamp was specified during the Customer Identifier creation. There is no expiry time for a Customer Identifier unless specified during creation.
closed_atintegerUNIX timestamp at which the Customer Identifier is automatically closed.
created_atintegerUNIX timestamp at which the Customer Identifier was created.
Errors
The api <key/secret> provided is invalid
Error Status: 4xx
Occurs when there is a mismatch between the API credentials passed in the API call and the API credentials generated on the dashboard.
Solution
The field name is required
Error Status: 400
Occurs when a mandatory field is empty.
Solution
The id provided does not exist
Error Status: 400
Occurs when the customer_id passed is wrong or does not belong to the identifier associated to the API Keys used.
Solution
Receivers field is required
Error Status: 400
Occurs when the receivers field is empty.
Solution
An active Customer Identifier with the same descriptor already exists for your account.
Error Status: 400
The description provided by you already exists for another account.
Solution
1curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \2-X POST https://api.razorpay.com/v1/virtual_accounts \3-H "Content-Type: application/json" \4-d '{5"receivers": {6"types": [7"vpa",8"bank_account"9],10"bank_account":11{12"descriptor": "1234567890"13}14"vpa":15{16"descriptor": "gaurikumari"17}18},19"description": "Receive payment instalment from Gaurav Kumar- Flat No 105",20"customer_id": "cust_BM8NbnFAk1BVDA",21"close_by": 168161583822}'
Success
Failure
1{2"id": "va_DzaznJGgvduD1R",3"name": "Acme Corp",4"entity": "virtual_account",5"status": "active",6"description": "Receive payment instalment from Gaurav Kumar- Flat No 105",7"amount_expected": null,8"notes": [],9"amount_paid": 0,10"customer_id": "cust_BM8NbnFAk1BVDA",11"receivers": [12{13"id": "ba_Dzaznb0XK1yx1l",14"entity": "bank_account",15"ifsc": "RATN0VAAPIS",16"bank_name": "RBL Bank",17"name": "Acme Corp",18"notes": [],19"account_number": "2223333226676435"20},21{22"id": "vpa_DzaznS24HKkTBY",23"entity": "vpa",24"username": "rpy.payto00000gaurikumari",25"handle": "icici",26"address": "rpy.payto00000gaurikumari@icici"27}28],29"close_by": 1681615838,30"closed_at": null,31"created_at": 157796555932}