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 & Flinks, our trusted partners, 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.
Please contact your sales SPOC to configure the account.
Supported Countries :-
- US - Finicity & Flinks are the open banking providers
- Canada - Flinks is the open banking provider
Sample flow :-

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 partners, Finicity or Flinks, 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.
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- 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 the client. Signzy will not give different endpoints to their client. Client will be able to use a single endpoint for all their needs. We have illustrated the below flow in order to give you an idea about Signzy's process.
- Calling Create bank connect journey link API for the user to start the journey and authorize Finicity for account access.
- Signzy gives a unique Tracking ID to the client for user mapping. (Please read more about Tracking ID below.)
- Once the authorization and bank connection are successfully established, Signzy triggers Finicity APIs in the backend.
- The responses from the all backend APIs of Finicity 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.
- Clients do not need to call any Finicity API directly - all Finicity integrations are managed internally by Signzy, and clients continue to use a single unified Signzy endpoint for their operations.
US & Canada - (Flinks– Flow)
Please find the below flow of Flinks APIs to get the desired output. Please note that Signzy will run these APIs in the backend according to the requirements of the client. Signzy will not give different endpoints to their client. Client will be able to use a single endpoint for all their needs. We have illustrated the below flow in order to give you an idea about Signzy's process.
- Calling Create bank connect journey link API for the user to start the journey and authorize Flinks for account access.
- Signzy gives a unique Tracking ID to the client for user mapping. (Please read more about Tracking ID below.)
- Once the authorization and bank connection are successfully established, Signzy triggers Flinks APIs in the backend. We also gather transaction categories which is an added feature in Flinks.
- This API automatically classifies transactions into meaningful types and subtypes such as:
- Food → Groceries
- Travel → Flights
- Income → Salary
- Utilities → Electricity / Water / Internet
- Entertainment → Movies / Subscriptions
- The categorization helps in understanding user spending behavior and enhances reporting and analytics for clients. Please get more information below on supported categories.
- 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.
- Clients do not need to call any Flinks API directly - all Flinks integrations are managed internally by Signzy, and clients continue to use a single unified Signzy endpoint for their operations.
Sample cURL (Single Endpoint for Signzy's client)
curl --location 'https://api-preproduction.signzy.us/api/v3/global-bank-verification/generate-link' \
--header 'Content-Type: application/json' \
--header 'Authorization: <Auth Token>' \
--data '{
"customerId": "6524e64350d7ee6ceb4ed667",
"country": "CA",
"flowId": "2",
"redirectUrl": "www.signzy.com",
"getTransactions": true,
"transactionsPeriod": "12",
"getBankBalance": false,
"requestId":"dc5de635-dbe6-4a5d-823f-e6a54baa1433"
}'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 be set to 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 and US-Flinks is not supported for 36 months. Flinks only support 3 or 12 months. |
getBankBalance | string | optional by default "true" | Balance will not be fetched when this value will false |
requestId | string | optional only applicable for flinks | The requestId returned by the US Flinks Refresh API It is used to continue and complete the MFA journey in case error encountered during refresh API. |
Sample API Success Response
{
"result": {
"link": "https://connect2.finicity.com?customerId=7015178151&experience=default&origin=url&partnerId=2445584066256&redirectUri=https%3A%2F%2Fwww.google.com&signature=06e34afd2c4fb44b86c21afe25587c73298c6759b01bc53e8fa36e26a911c7f6×tamp=1705671353707&ttl=1705678553707&webhook=https%3A%2F%2Fapi.signzy.us%2Fapi%2Fv3%2Fglobal-bank-verification%2Ffinicity-callback",
"traceId": "7015178151"
}
}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)
{
"trackingId": "7015178151",
"status": "SUCCESSFULL",
"loginId": "4e0c9d40-10c6-4443-ce1e-08de3cc95e03",
"message": "The user has completed the journey.",
"account1": {
"account": {
"currency": "USD",
"accountType": "Checking",
"accountNumber": "1111001",
"accountId": "85a6676d-2788-4452-b251-c18a0418cc2a",
"balance": 25014.43
},
"accountHolder": {
"name": "John DOE",
"address": " NICOLE CIR AURORA IL 605023702",
"splitAddress": {
"street": "NICOLE CIR",
"poBox": "",
"city": "AURORA",
"state": "IL",
"zipcode": "605023702",
"country": "US"
},
"emails": [
"[email protected]"
],
"phoneNumbers": [
"2945074373"
]
},
"bank": {
"routingNumberOrKey": "77777",
"iban": "",
"swiftCode": "",
"name": "DCCapital",
"address": "",
"splitAddress": {
"street": "",
"poBox": "",
"city": "",
"state": "",
"zipcode": "",
"country": ""
},
"emails": [],
"phoneNumbers": []
},
"transactions": [
{
"date": "2025-10-05",
"amount": -14,
"description": "Il Tollway-autorepleni 800-824-7277 Il",
"balance": 14,
"type": "Travel and Transportation",
"subType": "Parking and Tolls",
"transactionId": "35f148c0-29bd-42f2-9e8a-da5262a3559d"
},
{
"date": "2025-10-01",
"amount": 317,
"description": "Mobile Payment Thank You",
"balance": 0,
"type": "Income",
"subType": "Other",
"transactionId": "337e1c5f-2742-4975-b054-a71009c51d64"
},
{
"date": "2025-09-27",
"amount": -76,
"description": "Nicor Gas Bill 866-383-1846 Ga",
"balance": 317,
"type": "Utilities",
"subType": "Water / Gas / Electricity / Sewage",
"transactionId": "337e1c5f-2742-4975-b054-a71009c51d65"
},
{
"date": "2025-09-26",
"amount": -120,
"description": "Abc*anytime Pt 804-2129131 Il",
"balance": 120,
"type": "Healthandlifestyle",
"subType": "Hlfitness",
"transactionId": "337e1c5f-2742-4975-b054-a71009c51d10"
},
{
"date": "2025-09-25",
"amount": -257.57,
"description": "Tmobile*postpaid Pda 800-937-8997 Wa",
"balance": 205.2,
"type": "Utilities",
"subType": "TV / Internet / Phone",
"transactionId": "337e1c5f-2742-4975-b054-a71009c51d22"
},
{
"date": "2025-09-13",
"amount": -131.53,
"description": "Primark Chicago State Chicago Il",
"balance": 351.52,
"type": "Education",
"subType": "Other Education",
"transactionId": "337e1c5f-2742-4975-b054-a71009c51d11"
}
],
"balance": {
"available": 1000,
"current": 350,
"limit": 250
}
},
"account2": {
"account": {
"currency": "USD",
"accountType": "cd",
"accountnumber": "",
"accountId": "d03efa55-910f-4b60-9c69-96b8bac92f94",
"balance": 1000
},
"accountHolder": {
"name": "JOHN DOE",
"address": " NICOLE CIR AURORA IL 605023702",
"splitAddress": {
"street": " NICOLE CIR",
"poBox": "",
"city": "AURORA",
"state": "IL",
"zipcode": "605023702",
"country": "US"
},
"emails": [
"[email protected]"
],
"phoneNumbers": [
"2945074373"
]
},
"bank": {
"routingNumberOrKey": "",
"iban": "",
"swiftcode": "",
"name": "Chase",
"address": "",
"splitAddress": {
"street": "270 Park Avenue 270 Park Avenue, New York",
"poBox": "",
"city": "New York",
"state": "NY",
"zipcode": "10017",
"country": "USA"
},
"emails": [],
"phoneNumbers": []
},
"transactions": [],
"balance": {
"available": 1000,
"current": 350,
"limit": 250
}
},
"account3": {
"account": {
"currency": "USD",
"accountType": "savings",
"accountnumber": "00100000120479459",
"accountId": "9d029059-b380-41c2-ae99-d4eb868a48a6",
"balance": 6022.34
},
"accountHolder": {
"name": "John DOE",
"address": " NICOLE CIR AURORA IL 605023702",
"splitAddress": {
"street": "NICOLE CIR",
"poBox": "",
"city": "AURORA",
"state": "IL",
"zipcode": "605023702",
"country": "US"
},
"emails": [
"[email protected]"
],
"phoneNumbers": [
"2945074373"
]
},
"bank": {
"routingNumberOrKey": "028000121",
"iban": "",
"swiftcode": "",
"name": "Chase",
"address": "",
"splitAddress": {
"street": "270 Park Avenue 270 Park Avenue, New York",
"poBox": "",
"city": "New York",
"state": "NY",
"zipcode": "10017",
"country": "USA"
},
"emails": [],
"phoneNumbers": []
},
"transactions": [
{
"date": "2025-10-01",
"amount": 317,
"description": "Mobile Payment Thank You",
"balance": 0,
"type": "Income",
"subType": "Other",
"transactionId": "4c77644c-2ce0-47eb-af64-947be22cafd2"
},
{
"date": "2025-09-27",
"amount": -76,
"description": "Nicor Gas Bill 866-383-1846 Ga",
"balance": 317,
"type": "Utilities",
"subType": "Water / Gas / Electricity / Sewage",
"transactionId": "4c77644c-2ce0-47eb-af64-947be22cafd3"
},
{
"date": "2025-09-26",
"amount": -120,
"description": "Abc*anytime Pt 804-2129131 Il",
"balance": 120,
"type": "Healthandlifestyle",
"subType": "Hlfitness",
"transactionId": "4c77644c-2ce0-47eb-af64-947be22cafd4"
}
],
"balance": {
"available": 1000,
"current": 350,
"limit": 250
}
}
}Sample Response - Callback (without balance & transactions)
{
"trackingId": "7015178151",
"status": "SUCCESSFULL",
"loginId":"4e0c9d40-10c6-4443-ce1e-08de3cc95e03",
"message": "The user has completed the journey.",
"account1": {
"account": {
"currency": "USD",
"accountType": "Checking",
"accountNumber": "1111001",
"accountId": "9d029059-b380-41c2-ae99-d4eb868a48a6",
},
"accountHolder": {
"name": "John DOE",
"address": " NICOLE CIR AURORA IL 605023702",
"splitAddress": {
"street": "NICOLE CIR",
"poBox": "",
"city": "AURORA",
"state": "IL",
"zipcode": "605023702",
"country": "US"
},
"emails": [
"[email protected]"
],
"phoneNumbers": [
"2945074373"
]
},
"bank": {
"routingNumberOrKey": "77777",
"iban": "",
"swiftCode": "",
"name": "DCCapital",
"address": "",
"splitAddress": {
"street": "",
"poBox": "",
"city": "",
"state": "",
"zipcode": "",
"country": ""
},
"emails": [],
"phoneNumbers": []
}
},
"account2": {
"account": {
"currency": "USD",
"accountType": "cd",
"accountnumber": "",
"accountId": "9d029059-b380-41c2-ae99-d4eb868a48a8",
},
"accountHolder": {
"name": "JOHN DOE",
"address": " NICOLE CIR AURORA IL 605023702",
"splitAddress": {
"street": " NICOLE CIR",
"poBox": "",
"city": "AURORA",
"state": "IL",
"zipcode": "605023702",
"country": "US"
},
"emails": [
"[email protected]"
],
"phoneNumbers": [
"2945074373"
]
},
"bank": {
"routingNumberOrKey": "",
"iban": "",
"swiftcode": "",
"name": "Chase",
"address": "",
"splitAddress": {
"street": "270 Park Avenue 270 Park Avenue, New York",
"poBox": "",
"city": "New York",
"state": "NY",
"zipcode": "10017",
"country": "USA"
},
"emails": [],
"phoneNumbers": []
}
},
"account3": {
"account": {
"currency": "USD",
"accountType": "savings",
"accountnumber": "00100000120479459",
"accountId": "9d029059-b380-41c2-ae99-d4eb268a48a1",
},
"accountHolder": {
"name": "John DOE",
"address": " NICOLE CIR AURORA IL 605023702",
"splitAddress": {
"street": "NICOLE CIR",
"poBox": "",
"city": "AURORA",
"state": "IL",
"zipcode": "605023702",
"country": "US"
},
"emails": [
"[email protected]"
],
"phoneNumbers": [
"2945074373"
]
},
"bank": {
"routingNumberOrKey": "028000121",
"iban": "",
"swiftcode": "",
"name": "Chase",
"address": "",
"splitAddress": {
"street": "270 Park Avenue 270 Park Avenue, New York",
"poBox": "",
"city": "New York",
"state": "NY",
"zipcode": "10017",
"country": "USA"
},
"emails": [],
"phoneNumbers": []
}
}
}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-Finicity response | Available in US-Flinks response | Available in CA-Flinks response |
|---|---|---|---|---|---|
trackingId | integer | Unique Tracking Id to map the response with correct user.  This is unique per request. | yes | yes | yes |
status | string | Status of bank account verification. Value can be either "SUCCESSFULL" or "INDETERMINATE" | yes | yes | yes |
loginId | string | loginId associated with the user account. This is unique per connected account as long as these parameters remain same :- Username, Language, Bank | no | yes | yes |
message | string | Message on whether the user has completed the journey. e.g. "The user has completed the journey." | yes | yes | yes |
account1 | object | Object containing account1 details. Similarly, there will be account2, account3, account4 etc. | yes | yes | yes |
account.currency | string | Currency of the account | yes | yes | yes |
account.accountType | string | Type of account | yes | yes | yes |
account.accountNumber | string | Bank account number | yes | yes | yes |
account.accountId | string | Unique account ID with the account. (This is not bank account number) | no | yes | yes |
account.balance | float | Account balance | yes | yes | yes |
accountHolder.name | string | Account holder's name | yes | yes | yes |
accountHolder.address | string | Full address of the account holder | yes | 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 | yes |
accountHolder.emails | array | Account holder's emails (Array of strings) | yes | yes | yes |
accountHolder.phoneNumbers | array | Account holder's phone numbers (Array of strings) | yes | yes | yes |
bank.routingNumberOrKey | string | Bank routing number or key | yes | yes | yes |
bank.name | string | Bank name | yes | yes | yes |
bank.iban | string | International Bank Account Number (IBAN) | no | no | no |
bank.swiftCode | string | Society for Worldwide Interbank Financial Telecommunication (SWIFT) code | no | no | no |
bank.name | string | Bank name | yes | yes | yes |
bank.address | string | Bank address | yes | no | 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 | no |
bank.emails | array | Bank's emails (Array of strings) | no | no | no |
bank.phoneNumbers | array | Bank's phone numbers (Array of strings) | no | no | no |
transactions.date | string | Date of the transaction | yes | yes | yes |
transactions.amount | float | Amount of the transaction | yes | yes | yes |
transactions.description | string | Description of the transaction | yes | yes | yes |
transactions.balance | float | Balance after the transaction | no | yes | yes |
transactions.type | string | Type of transaction (if available) | yes | yes | yes |
transactions.subType | string | Subtype of transaction (if available) | no | yes | yes |
transactions.transactionId | string | Unique transaction Id of each transaction | no | yes | yes |
balance.available | float | Available balance after considering pending transactions | no | yes | yes |
balance.current | float | Current balance of the account | no | yes | yes |
balance.limit | float | Limit associated with the account | no | yes | yes |
Note for US-Finicity :-
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
Type & Sub-Type (US-Flinks & Canada -Flinks)
Type | Sub-Type |
|---|---|
Contributions |  |
 | Other Charitable Contributions |
 | Charities |
 | Religious Organizations |
 | Political & Civic Organizations |
Earned Income |  |
 | Interest |
 | Dividend |
 | Wages & Salary |
 | Bonus |
 | Business Income |
Education |  |
 | Student Loans |
 | Other Education |
 | Tuition & School Fees |
Entertainment |  |
 | Activities |
 | Amusements & Attractions |
 | Events |
 | Other Entertainment |
Fees & Charges |  |
 | Other Fees & Charges |
 | ATM Fees |
 | Service Fees |
 | Finance Charges |
Food & Dining |  |
 | Coffee Shops |
 | Groceries |
 | Restaurants |
 | Fast Food |
 | Other Food & Dining |
 | Alcohol & Bars |
Goods & Merchandise |  |
 | Internet Purchases |
 | Children & Toys |
 | General Merchandise |
 | Books & Other Media |
 | Electronics & Computers |
 | Health & Beauty |
 | Home Garden & Tools |
 | Specialty Stores |
 | Clothing & Accessories |
 | Mail & Phone Order Purchases |
 | Sporting Goods |
 | Office Supplies |
 | Furnishings & Appliances |
 | Miscellaneous Equipment Materials & Supplies |
Health & Lifestyle |  |
 | Life Insurance |
 | Health Insurance |
 | Child Support |
 | Personal Care |
 | Medical Care |
 | Pet Care |
 | Clubs Gyms Fitness |
 | Veterinary Care |
 | Dental Care |
 | Vision Care |
 | Other Health & Lifestyle |
 | Child Care |
Home Expenses |  |
 | Mortgage |
 | Home Insurance |
 | Rent |
 | HOA Fees |
 | Home Improvement Repair & Maintenance |
Miscellaneous Expenses |  |
 | Check |
 | Cash Withdrawal |
 | Awards & Rebate Credits |
 | Cash Advance |
 | Deposit |
Services |  |
 | Other Services |
 | Accounting & Financial Services |
 | Advertising Services |
 | Government Services |
 | Printing & Shipping |
 | Professional Dues & Subscriptions |
 | Legal Services |
Transfers & Adjustments |  |
 | Credit Card Payment |
 | Balance Adjustment |
 | Other Transfers & Adjustments |
Travel & Transportation |  |
 | Auto/Vehicle Loan |
 | Auto/Vehicle Insurance |
 | Gas & Fuel |
 | Ground Transportation |
 | Auto/Vehicle Repair & Maintenance |
 | Auto/Vehicle Leasing & Purchase |
 | Parking & Tolls |
 | Other Travel & Transportation |
 | Air Travel |
 | Hotel & Lodging |
 | Auto/Vehicle Rental |
 | Travel Agencies |
 | Public Transit |
 | Sea Travel |
Utilities |  |
 | Wireless/Cellular |
 | Other Utilities |
 | TV Internet Phone |
 | Water Gas Electricity Sewage |
Type (US-Finicity)
If provided by the institution, the following values may be returned in the field of a record for US-Finicity:
"atm"
"cash"
"check"
"credit"
"debit"
"deposit"
"directDebit"
"directDeposit"
"dividend"
"fee"
"interest"
"other"
"payment"
"pointOfSale"
"repeatPayment"
"serviceCharge"
"transfer"

Sample Error
{
"error": {
"name": "error",
"message": "..message..",
"status": 400,
"reason": "VALIDATION_REQUEST",
"type": "Bad Request",
"statusCode": 400
}
}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!