There are four main ways to verify a bank account, each of them has its own pros and cons:

1. The user provides a bank statement or certificate

File sending
File sending

This method consists of asking your users to provide a bank statement or certificate issued by their banks with their name and bank account number shown.


  1. This method is quite trustworthy since your customer’s bank account is issuing a certificate.
  2. It’s also not expensive in terms of technology required from your side.


This method has two main drawbacks:

  1. It’s performed outside your web process (the users need to go to their online banking). You will lose track of your users’ activity and if they decide not to send the document, you won’t know it.
  2. You will need to validate the certificate manually (again outside your app’s workflow). It will probably take between 1 and 3 days to validate a bank account.

2. The user connects bank accounts with your system

Open Banking
Open Banking

The usage of open banking services for validating a bank account is a great method. Once you connect to an Account Information Service Provider (AISP), you can provide your users with a list of banks, they choose their bank and connect their account. That’s it, you receive the information of the bank account and their last statements. 


  1. It’s fast, you will receive the name of the account’s holder immediately.
  2. It can be included in your application’s workflow. 
  3. In case you need to create a financial profile of your customers it’s perfect, since you will be able to access all the products they have with this bank and also their last statements. 


The main drawbacks here are:

  1. Corporate accounts are not always well supported by open banking providers.
  2. Your users might have privacy issues, they might be suspicious that you’ll be reading additional data about other bank accounts, transactions, etc. 
  3. Finally, the price: It’s probably the most expensive option.

3. The user makes a micro-transaction and you check the data you receive

Payment initiation
Payment initiation

Asking your users to send you a small transaction is another method that can help you verify a bank account. If you do it using a payment initiation service provider (PISP) you can integrate verification into your workflow and do it 100% online. But this is not necessary, you can ask your users to do the transfer using their online banking.

Note: a PISP is a service to initiate account-to-account payments. Similar to seed ecommerces where you can pay with your bank account online in the same way you do with your credit/debit card.


  1. It’s probably the most complete method, since you are not just checking the ownership of the bank account but also that the person verifying the bank account can operate with it. 
  2. In the case that you use a PISP, you can integrate this in your online processes for onboarding users.


  1. Its main pro is also a drawback, and you will need to explain to your users why they have to send money to you before becoming customers or decide what to do with the money once received.
  2. If your customer is a corporation, the payment can be tricky or even impossible, since the people with permission to execute payments are not always accessible at that moment and/or it could be more than one person.

4. You make a micropayment to your user and they verify a code

Instant micro payments
Instant Micro-payments

Sending a micropayment to your users and asking them to confirm the amount of a message in the description is the last method to verify a bank account and probably the most popular method up until recently.


  1. Traditionally it has been seen as a slow and offline process, which isn’t the case anymore. Instant payment APIs are very common and your users will receive the notification from their bank quicker than you might think.
  2. This method is not intrusive. Also, receiving money instead of being asked to pay or give you extra information is always a more comfortable experience for your users. This is especially effective if you want to verify bank accounts for collecting direct debits and not doing payments.


  1. Only 99% of the banks in Europe support instant payments. So, there are a few users, those using small banks not supported yet, that won’t receive the money instantaneously.
  2. To be fair, what you are verifying here is that the user has access to the account, which is good enough in many cases but it might require other AML checks to be effective.

How Devengo can help

Devengo has created an API to verify a bank account using a micro deposit of 1 cent with a small code in the description. This transaction is sent as an instant payment in 99% of the cases so your user will see the notification of their bank in the mobile phone even before you know that money has been sent.

Once the money has been sent, you can ask your user to enter this code and validate it using another endpoint of our API.  

Fast and easy. You can integrate it into your onboarding process and validate the data before sending them wire-transfers or charging them direct debits.

Bonus point

If you decide to use the third option (The user makes a microtransaction), using Devengo as the provider of the collection account has also an important advantage. We can tell you the IBAN origin of the funds, something that is not available in regular banks. This way you can do a double verification and allow payouts only to bank accounts verified this way.


Each method of bank account verification has its own pros and cons and it depends on your needs for which option to choose. Normally the account verification process is part of something larger, like building a profile or reduce fraud, so there is not a method that is the most recommended in all situations.