Verifying the identities & financial circumstances of your customers are vital to ensure compliance with regulations. That makes KYC, and Bank account verification processes an important step while onboarding customers.
The onboarding process is the official beginning of a direct and consensual relationship with an individual as a registered user. But onboarding new clients as a regulated company can be complex. KYC and Bank account verification during client onboarding have become increasingly complex due to firms manually processing checks.
These complex processes can result in drop-offs and unpleasant customer experiences. A seamless onboarding experience ensures that customers are happy, and it improves profitability for the business.
So how can KYC compliance checks & bank account verification be conducted accurately, efficiently, and without overburdening already stretched teams?
Zwitch APIs help you build a single, centralized and integrated platform to onboard customers. Our APIs help address all customer onboarding compliance aspects, including bank account verification, IFSC code verification, UPI ID validation and KYC (PAN and Aadhaar verification).
Get your customer identities verified with Zwitch
Zwitch API provides you with an easy way to verify your customer identities online. A low-code integration option allows businesses to verify identities in minutes, with a fully hosted verification flow by Zwitch.
Our plug & play solution helps you confirm your customer’s bank account validity & streamline your KYC process instantly without exposing data to a third party.
Zwitch APIs will help you verify the following details for a completely digitized and seamless user onboarding experience:
- Verify a bank account number,
- Verify VPA handle or UPI ID,
- Verify PAN holder & the PAN number, and
- Verify Aadhaar number and the details associated with it.
Let’s look at them one by one.
Verify Bank Account
To verify the bank account of your customer, you need to pass the following parameters in the request body of our Verifications API:
bank_account_number
– Account number to be verifiedbank_ifsc_code
– IFSC code of the account numberforce_penny_drop
– Default value will be false. If the value passed is true, then it ensures that penny drop will be done irrespective of having done before using Zwitch APIsforce_penny_drop_amount
– Default penny drop amount would be INR 1. This amount cannot be less than INR 1 or more than INR 2.merchant_reference_id
– This is a unique identifier for each verification request
Take, for instance, if you are doing force penny drop, this is how the sample request header would look like:
curl --request POST \
--url https://api.zwitch.io/v1/verifications/bank-account \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <access_key>:<secret_key>' \
--header 'Content-Type: application/json' \
--data '
{
"force_penny_drop": true,
"bank_account_number": "1173106000030660",
"bank_ifsc_code": "IBKL0001123",
"force_penny_drop_amount": 1,
"merchant_reference_id": "johnaccountcheck"
}
'
If the penny drop is successful and the bank account is verified, the response body that APIs return will look like this:
{
"id": "accver_CTidMP8jKvWGiBkuCugqnPTgC",
"object": "bank_account_verification",
"bank_account_number": "1173106000030660",
"bank_ifsc_code": "IBKL0001123",
"name_as_per_bank": "John Doe",
"force_penny_drop": true,
"force_penny_drop_amount": 1,
"status": "success",
"message": "Transaction Successful",
"is_sandbox": false
}
Note: Our APIs check for a unique combination of bank account number and IFSC code and returns a response with account holder details only if both of them match in bank records.
Verify VPA handle or UPI ID
Using Zwitch Verification APIs, you can even verify your customer’s Virtual Payment Address (VPA) handle or UPI ID. To do so, you need to pass the following parameters in the request body:
vpa
– VPA handle of your customer,merchant_reference_id
– A unique identifier for each verification request, andname
– You can include the name of the VPA handle user (This is optional)
This is how a sample request would look like:
curl --request POST \
--url https://api.zwitch.io/v1/verifications/vpa \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <access_key>:<secret_key>' \
--header 'Content-Type: application/json' \
--data '
{
"vpa": "9675196666@upi",
"merchant_reference_id": "9675196666"
}
'
Once it is successfully verified, you will get a similar response body:
{
"id": "accver_sk010221834",
"object":"vpa_verification",
"status" : "verified_successfully",
"vpa":"9675196666@upi",
"is_sandbox": false
}
Verify PAN details
Zwitch KYC APIs can help you verify the PAN number of your customer. You need to pass the following parameters in the request body:
pan
– PAN Number to be verified,merchant_reference_id
– A unique identifier for each verification request, andmetadata
– You can pass additional information like Order ID as part of the request which will be returned in the response.
Here is how a sample request body would look like:
curl --request POST \
--url https://api.zwitch.io/v1/kycs/pan \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <access_key>:<secret_key>' \
--header 'Content-Type: application/json' \
--data '
{
"pan": "ABCDE1234F",
"merchant_reference_id": "johncheck"
}
'
Once it is successfully verified, the response body will be similar to this:
{
"id":"pan_PuuEbp7GIv3jwF3jkmY0h5lgM"
"object":"pan_verification"
"pan":"ABCDE1234F"
"name_on_pan":"JOHN DOE”
"status":"success"
"merchant_reference_id":"johncheck"
"is_sandbox":false
}
Verify Aadhaar details
Using Zwitch KYC APIs, you can perform two-factor authentication with OTP verification. Here is how it works:
Step 1: You need to pass the Aadhaar number that needs to be verified, the Name as mentioned in the Aadhaar card and the Merchant reference ID (as done above) in the request body:
curl --request POST \
--url https://api.zwitch.io/v1/kycs/aadhaar/otp \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <access_key>:<secret_key>' \
--header 'Content-Type: application/json' \
--data '
{
"aadhaar_number": "666977736205",
"name": "John Doe",
"merchant_reference_id": "9675196666check"
}
'
APIs will then send an OTP to the mobile number linked to the Aadhaar number and returns a similar response:
{
"id": "adh_uDy5VlIx8k1BOUNkgCVWfIapy",
"object": "aadhaar_verification",
"status_message": "OTP sent to registered mobile number",
"status": "success",
"merchant_reference_id": "9675196666check",
"is_sandbox": false
}
Step 2: You need to pass the OTP received on the registered mobile number & the Merchant reference ID (Same as in Step 1) in the request body:
curl --request POST \
--url https://api.zwitch.io/v1/kycs/aadhaar/verify \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <access_key>:<secret_key>' \
--header 'Content-Type: application/json' \
--data '
{
"otp": "123456",
"merchant_reference_id": "9675196666check"
}
'
If the OTP is verified successfully, the APIs return a response body similar to what is shown below with the following details of the verified Aadhar number – Name, Date of birth, Gender, Father’s name and Address as per Aadhaar records:
{
"id": "adh_w98sC0B8JX3NravswqJs9k9pj",
"object": "aadhaar_verification",
"message": "Aadhaar XML file downloaded successfully",
"status": "success",
"name": "John Doe",
"date_of_birth": "1990-03-04",
"gender": "M",
"father_name": "John Senior",
"address": "Address as per aadhaar records",
"merchant_reference_id": "9675196666check",
"is_sandbox": false
}
Transform your onboarding process with Zwitch’s Bank A/C verification & KYC APIs
The digital onboarding process is the key to increase the conversion rate and improve the user experience. And at the same time, it meets the strictest regulation & drastically reduces costs, boosts productivity and eliminates barriers and waiting times.
Zwitch’s comprehensive & secure APIs helps you transform your onboarding process to make it a seamless experience for your customers.
To learn more about our Verifications and KYC APIs, read our documentation here.
0 Comments