Perform Bank Account Verification

Use FP APIs to verify bank accounts.

Prerequisite

  • Create an Investor Profile before performing the bank account verifications.
  • After creating the Investor Profile, you must attach one or more bank accounts for the investor using the Create a Bank Account API
  • You can set an optional input match threshold based on which the bank account verification results can be optimised. By default, the input match threshold will not be set for a tenant. If you want to use this feature, please write to customerservice@cybrilla.com to get more information on this

1. Create a bank account verification request

Call the Create Bank Account Verification API by providing the ID of the bank_account object that you want to verify.

{
  "bank_account": "bac_98367e8972b43867a9c68a7c4605a31d"
}

A bank account verification object will be created with status=pending

2. Check the bank account verification status periodically to check the status of the verification

Once the bank_account_verification object is created, we need to poll the fetch bank account verification transaction by ID API to check status periodically. If the status is completed, the verification is successful. At this point, we can consider the confidence value to decide on the confidence of the bank account verified.

If the status is failed, it means the bank account could not be verified. If reason for failure is expiry, you can retry bank account verification. If the status is failed and reason is digital_verification_failure, you can attempt verify some other bank account instead.

A note on working with input match threshold

FP offers a provision to configure an input match threshold for every tenant, based on which the confidence level can be returned either as very_high or zero. If this input match threshold is not configured for a tenant then a default set of confidence levels would be returned based on the actual match percentage as indicated in the last 2 digits of the bank account number. This is a one-time configuration done before you go live. In case the confidence is zero it means that the bank account does not exist or there is a complete name mismatch; Either ways you should not proceed to work with this bank account.

Testing

In sandbox, simulation facility can be used to test bank account verification. This facility is only available in sandbox.

Input match threshold configured

Status Account no. pattern
[last 4 digits]
Last two digits of account no.
[indicated by XX]
confidence level with
input match threshold being YY
completed 21XX 99 - 00 - very_high if XX >= YY
- zero if XX < YY

Example

Last 4 digits of Bank account number Status Reason confidence if input match threshold
is configured as 85
2193 completed - very_high
2185 completed - very_high
2184 completed - zero
2157 completed - zero
2357 failed expiry -
3157 failed digital_verification_failure -


Input match threshold NOT configured

Status Account no. pattern
[last 4 digits]
Last two digits of account no.
[indicated by XX]
confidence
completed 11XX 99 - 91 very_high
completed 12XX 90 - 61 high
completed 13XX 60 - 41 uncertain
completed 14XX 40 - 21 low
completed 15XX 20 - 1 very_low
completed 1600 00 zero

Example

Last 4 digits of Bank account number Status Reason confidence if input match threshold
is not configured
1193 completed - very_high
1285 completed - high
1515 completed - very_low
1600 completed - zero
2357 failed expiry -
3157 failed digital_verification_failure -


Additional simulation scenarios:

  • Any bank account verification object will be in a pending state as soon as it is created. You need to fetch the id present in this object and poll Fetch Bank Account Verification by ID API to get the updated status
  • To simulate an expiry scenario, you could use any pattern that is different from the ones mentioned above. The bank account verification object would be in pending state initially and would change to failed state after 15 minutes with the reason as expiry
  • To simulate any failed cases of bank account verification, you must use the bank account number pattern 31XX where XX can be any number between 00 - 99


How to start verifying bank accounts?

If you want to make use of this bank account verification service, please write to FP Support and we will enable this service for your tenant. You can either choose a default verification option offered as a part of Fintech Primitives API collection or choose a CAMSPay integration. If you are going ahead with CAMSPay integration option, you would have to configure an input match threshold value, without which the bank account verifications cannot be performed. If you are going ahead with the default option, then you don't have to configure an input match threshold and the behaviour would be as indicated in the above simulation logics.