Integration Flow - Virtual Accounts used as Transfer Wallets
Learn how you can use ZWITCH to create a virtual account used as a transfer wallet from your application.
Functionally, transfer wallets are similar to physical accounts. These transfer wallets also come with an account number and IFSC.
You can only use these transfer wallets to transfer money. You cannot receive payments in this account. Loading money to your virtual account used as a transfer wallet from your bank account is only allowed through a verified remitter account.
Currently, you can only verify and link three accounts to load money
Integrating your application with ZWITCH lets your customer open a virtual account used as a transfer wallet.
Follow the below steps to create a virtual account used as a transfer wallet.
- PAN Verification
- Remitter Bank Account Verification
- Name Verification
- Create a Virtual Account used as a Transfer Wallet
1. PAN Verification
PAN verification is a mandatory requirement to open any bank account. PAN verification allows the applicant to perform high-value transactions and avoid paying double taxes.
Use the below endpoint to verify the PAN.
POST: https://api.zwitch.io/v1/kycs/pan
Below is a sample request and response for the PAN Verification API.
{
"pan": "AAAAA0000A",
"merchant_reference_id": "10101101",
"metadata": {
"key_1": "DD",
"key_2": "XOF"
}
}
{
"id": "pan_bd1ldpyyMlg7nywIYpjjiklNS",
"object": "pan_verification",
"pan": "AAAAA0000A",
"name_on_pan": "NAME AS PER PAN RECORDS",
"status": "success",
"merchant_reference_id": "10101101",
"message": "PAN Verified",
"metadata": {
"key_1": "DD",
"key_2": "XOF"
},
"created_at": 1654155992,
"is_sandbox": true
}
Refer to our PAN Verification API documentation to learn more.
2. Remitter Bank Account Verification
Use bank account verification to instantly verify the validity and ownership of the bank account. You can only use the verified remitter bank account to load money to your virtual account.
Use the below endpoint to verify the bank account.
POST: https://api.zwitch.io/v1/verifications/bank-account
Below is a sample request and response for the Bank Account Verification API.
{
"bank_account_number": "10000000000875",
"bank_ifsc_code": "HDFC0000123",
"force_penny_drop": true,
"force_penny_drop_amount": 1,
"merchant_reference_id": "1000875",
"metadata": {
"key_1": "DD",
"key_2": "XOF"
}
}
{
"id": "accver_BhOM01sUb3tXprWwTGBLlKZVG",
"object": "bank_account_verification",
"bank_account_number": "10000000000875",
"bank_ifsc_code": "HDFC0000123",
"name_as_per_bank": "Anil Reddy",
"force_penny_drop": true,
"force_penny_drop_amount": 1,
"status": "success",
"message": "",
"last_verified_at": "2024-01-23",
"metadata": {
"key_1": "DD",
"key_2": "XOF"
},
"merchant_reference_id": "1000875",
"created_at": 1648030636,
"is_sandbox": true
}
Refer to our Bank Account Verification API documentation to learn more.
3. Name Verification - PAN vs Account Verification API
Use this API to verify the PAN name with their remitter bank account name.
Use the below endpoint to verify the applicant's name.
POST: https://api.zwitch.io/v1/kycs/name-match
Below is a sample request and sample response for the Name Verification - PAN vs Account Verification API.
{
"type": "pan_vs_account_verification",
"pan_verification_id": "pan_vTQ7sBPRAApHORmN5PfT3Uk3N",
"account_verification_id": "accver_wIEhmszz13go8eiUSbYDZlBKu",
"minimum_match_score": 60.5,
"metadata": {
"key_1": "DD",
"key_2": "XOF"
}
}
{
"id": "nm_BbDMJHOVydaXraXQuSWPPquoZ",
"type": "pan_vs_account_verification",
"object": "name_match.pan_vs_account_verification",
"minimum_match_score": 60.5,
"status": "success",
"name_as_per_pan": "Anil Reddy",
"pan_verification_id": "pan_vTQ7sBPRAApHORmN5PfT3Uk3N",
"account_verification_id": "accver_wIEhmszz13go8eiUSbYDZlBKu",
"name_as_per_verification": "Anil Reddy",
"match_score": 70.83,
"message": "success",
"review_needed": false,
"metadata": {
"key_1": "DD",
"key_2": "XOF"
},
"created_at": 1704868805,
"updated_at": 1704868805,
"is_sandbox": true
}
Refer to our Name Verification -PAN vs Account Verification API documentation to learn more.
4. Create a Virtual Account used as a Transfer Wallet
Use this API to create a virtual account used as a transfer wallet.
Use the below endpoint to create a virtual account used as a transfer wallet.
POST: https://api.zwitch.io/v1/accounts
Below is a sample request and sample response for the Create a Virtual Account used as a Transfer Wallet API.
{
"type": "virtual",
"used_as": "wallet",
"name": "Anil Reddy",
"mobile_number": "9876543210",
"email": "[email protected]",
"bank_name": "axis_bank",
"create_vpa": false,
"kyc": {
"city": "Bangalore",
"postal_code": "560005",
"state_code": "KA",
"pan": "AAAPA0000A",
"business_type": "partnership",
"pan_verification_id": "pan_bd1ldpyyMlg7nywIYpjjiklNS",
"business_category": "garage_owners",
"contact_person": "Rahul Reddy"
},
"verified_remitters": [
{
"account_verification_id": "accver_BhOM01sUb3tXprWwTGBLlKZVG",
"name_match_id": "nm_BbDMJHOVydaXraXQuSWPPquoZ"
}
],
"metadata": {
"key_1": "DD",
"key_2": "XOF"
}
}
{
"id": "va_RcochEXjFd4TJunK0soMrmoon",
"object": "account.virtual",
"type": "virtual",
"used_as": "wallet",
"bank_name": "yes_bank",
"name": "Anil Reddy",
"mobile_number": "9876543210",
"email": "[email protected]",
"account_number": "95153390141232",
"ifsc_code": "UTIB0CCH274",
"vpa": null,
"additional_vpa": [],
"whitelisted_remitters": [
{
"account_number": "91021021021213",
"ifsc_code": "ICIC0000001"
}
],
"verified_remitters": [
{
"account_verification_id": "accver_BhOM01sUb3tXprWwTGBLlKZVG",
"name_match_id": "nm_BbDMJHOVydaXraXQuSWPPquoZ"
}
],
"whitelisted_beneficiaries": [],
"verified_beneficiaries": [],
"kyc": {
"city": "Bangalore",
"postal_code": "560005",
"state_code": "KA",
"pan": "XXXXXX000A",
"business_type": "partnership",
"pan_verification_id": "pan_bd1ldpyyMlg7nywIYpjjiklNS",
"business_category": "garage_owners",
"contact_person": "Rahul Reddy"
},
"customer": {
"id": "cus_9AZ0Od3RcJLS3PzEtZyqGyL42",
"mobile_number": "9876543210"
},
"metadata": {
"key_1": "DD",
"key_2": "XOF"
},
"status": "active",
"created_at": 1681113234,
"is_sandbox": true,
"settlement_account_id": null
}
Note:
While creating a virtual account used as a transfer wallet, set the
create_vpa
argument tofalse
. This is because virtual account used as a transfer wallet do not allowvpa
designations on their account.
Refer to our Create Virtual Account used as Transfer Wallet API documentation to learn more.
Updated 9 months ago