Bank Account Verification
...
Consent-based
Global

Overview - Bank account verification

Introduction

Signzy's Bank Account Verification service offers extensive coverage, enabling the verification of bank accounts in over 195 countries worldwide. For the US market, we have integrated with Finicity, a trusted partner, to provide comprehensive verification capabilities. For the Canada market, we have integrated with Flinks. Also we are collaborating with other partners around the world to ensure global coverage for for bank account verification beyond the United States.

Our Bank Account Verification solution is highly customizable to cater to the specific requirements of our clients. This means that we can implement country-specific workflows tailored to the needs of our clients. For instance, if you prefer to verify the bank accounts of your US customers using Finicity while using another solution for customers from other countries, our system seamlessly supports such configurations through a single endpoint.

Check specific Bank account verification APIs documents ahead to know how the APIs will work at the backend.



Supported Countries :- US, Canada

Countries in Roadmap :- UK (Feb), UAE (Mar)

Document image


API Details

Our Bank Account Verification service offers a seamless experience by providing a single endpoint for customization based on country-specific requirements. Regardless of the chosen flow, our solution ensures efficient verification of global bank accounts.

For US bank account verification, we leverage our trusted partner, Finicity, renowned for its real-time capabilities. By utilizing the relevant APIs in the background, we gather the necessary data points required by our clients. The system then generates a JSON response, providing the client with the verified information.

For bank accounts in other countries, our other solutions comes into play.

Irrespective of the chosen solution, clients receive a standard response from Signzy, streamlining the integration and ensuring a consistent experience across different verification methods.

Flow of APIs

Please note that we have mentioned the flow below to give you idea on how it works at the backend. Signzy will provide you single endpoint for all your bank account verification needs.

US (Finicity- Signzy Flow)

Please find the below flow of Finicity APIs to get the desired output. Please note that Signzy will run these APIs in the backend according to the requirements of client. Signzy will not give different endpoints to their client. Client will be able to use single endpoint for all their needs. We have illustrated below flow in order to give you idea about Signzy's process.

  1. Calling Create bank connect journey link API for user to start the journey and authorize finicity for account access. 
  2. Signzy gives unique Tracking ID to the client for the user mapping. (Please read more about Tracking ID below)
  3. The Create bank connect journey link API should give customerid, accountId, currency, institutionId in the webhook.
  4. Signzy will call Get Account Owner Details, Get Account ACH Details, Get Institution by ID APIs in parallel to get the required data using the above responses in webhook. Please find the complete mapping at the end. 
  5. Signzy will call Delete Customer API at the end to avoid any recurring monthly charge to customer.
  6. The responses from the above APIs will be combined, and the desired parameters will be extracted. These parameters will then be formatted into a JSON file and shared with the client. The JSON file will also contain the Tracking ID for the mapping with correct user.

Europe

We will be adding Europe Bank Account Verification Services soon. Please get in touch with your Sales Representative for more details.

Sample cURL (Single Endpoint for Signzy's client)

Production
Pre-production
Curl


Request Body Parameters

Paramater Name

Data Type

Required

Description

customerId

string

Yes

A unique 24 digit clientid assigned to Signzy's customer. Client has to send the same id each request for tracking at Signzy's end.

country

string

Yes

Country of bank account for which verification is being done.

e.g. "US", "CA"

flowId

string

Optional

A flowId is an exclusive identification number that is allocated to each customization within a journey, such as a brand logo or brand color. Multiple distinct customizations can be established, and each one is represented by a unique flowId. This is optional as you can have only single default flowid as well.

Please contact your Sales administrator to setup customizations. e.g. "1", "2"

redirectUrl

string

Optional

redirectUrl is a Url on which end user will be redirected after completing the journey. You can pass the redirectUrl every time in request body or you can contact us to setup your default redirect url. This is optional as you can have only single default redirectUrl as well.

e.g. "www.signzy.com"

getTransactions

boolean

optional

Transactions will be fetched when this value will true

transactionsPeriod

string

required when getTransactions is true

transactionPeriod is the number of months for which transactions need.

"3" :- 3 months transactions will be fetched,

"12" :- 12 months transactions will be fetched

"36" :- 36 months transactions will be fetched

CA is not supported for 36 months.

getBankBalance

string

optional

by default "true"

Balance will not be fetched when this value will false



Sample API Success Response

US
CA


Response Body Parameters

Paramater Name

Data Type

Description

link

string

Journey link on which you will direct your end user to complete the consent based bank account verification journey.

traceId

string

traceId is a unique id for this customer which you need to store at your end. In the bank account verification response which will be received in callback, you will also get this trackingId so that you can map the details to correct user.

Tracking ID/ Trace ID Details

TrackingId is necessary to do the correct response mapping after sucessful completion of bank account verification. You will get link and a unique trackingId as the API response. The same trackingId will come in the JSON after succesful completion of bank account verification at your callback.

Please store this trackingId so that you can map the JSON response (received in callback) with the correct user.

Multiple/Single Accounts Support

Flexibility is key when it comes to catering to the diverse needs of our end users. Our system is designed to accommodate both scenarios, allowing end users to choose between managing multiple bank accounts or opting for a single bank account.

As part of our response mechanism, we can furnish information on either multiple accounts or a singular account, depending on the user's preference. To tailor this functionality to your specific requirements, we recommend collaborating with your dedicated account manager.

Your account manager will guide you through the configuration process, ensuring that the system is optimized to meet your business goals and provide an optimal experience for your end users.

Sample Response - Callback (with balance & transactions)

The user has completed the journey
After 15 minutes of dormancy


Sample Response - Callback (without balance & transactions)

The user has completed the journey
After 15 minutes of dormancy


Note :-

The data in above fields is subject to availability in the source.

Response Parameters

Response Paramater by Signzy

Data Type

Description

Available in US response

Available in CA response

trackingId

integer

Unique Tracking Id to map the response with correct user

yes

yes

status

string

Status of bank account verification.

Value can be either "SUCCESSFULL" or "INDETERMINATE"

yes

yes

message

string

Message on whether the user has completed the journey.

e.g. "The user has completed the journey."

yes

yes

account1

object

Object containing account1 details.

Similarly, there will be account2, account3, account4 etc.

yes

yes

account.currency

string

Currency of the account

yes

yes

account.accountType

string

Type of account

yes

yes

account.accountNumber

string

Account number

yes

yes

account.balance

float

Account balance

yes

yes

accountHolder.name

string

Account holder's name

yes

yes

accountHolder.address

string

Full address of the account holder

yes

yes

accountHolder.splitAddress

object

Represents the split address object comprising street, city, state, ZIP code, and country details of the account holder's address

yes

yes

accountHolder.emails

array

Account holder's emails (Array of strings)

yes

yes

accountHolder.phoneNumbers

array

Account holder's phone numbers (Array of strings)

yes

yes

bank.routingNumberOrKey

string

Bank routing number or key

yes

yes

bank.name

string

Bank name

yes

yes

bank.iban

string

International Bank Account Number (IBAN)

no

no

bank.swiftCode

string

Society for Worldwide Interbank Financial Telecommunication (SWIFT) code

no

no

bank.name

string

Bank name

yes

yes

bank.address

string

Bank address

yes

no

bank.splitAddress

Object

Represents the split address object comprising street, city, state, ZIP code, and country details of the bank's address

yes

no

bank.emails

array

Bank's emails (Array of strings)

no

no

bank.phoneNumbers

array

Bank's phone numbers (Array of strings)

no

no

transactions.date

string

Date of the transaction

yes

yes

transactions.amount

float

Amount of the transaction

yes

yes

transactions.description

string

Description of the transaction

yes

yes

transactions.balance

float

Balance after the transaction

no

yes

transactions.type

string

Type of transaction (if available)

yes

no

Note for US :-

Specifically, the CD account (Certificate of Deposit) , and ACH transactions are not supported for CD account types. The ACH service currently supports account types such as "checking," "savings," "moneyMarket," and "loan."

This means for CD accounts, we will not have account number and routing number

Sample Error

Bad Request
Upstream Error


Error Response Parameters

Parameter

Description

error

This parameter contains the error.

error.name

the name of the error

error.message

the error message

error.status

status of the api

error.reason

Reason for error

error.type

Type of the error

error.statusCode

Request Status code from Signzy

Getting help

Please feel free to contact us if you have any questions, require clarification, or have ideas for how to make the documents or any of our services better.

You can reach out to us at [email protected]. We strive to provide prompt and reliable assistance, ensuring your queries are addressed effectively.

We value your feedback and are committed to making your experience smooth and enjoyable. Our team is dedicated to assisting you with any needs you may have. Thank you for choosing our services. We look forward to helping you!