Instant Bank Account Verification USA V1
Introduction
Our Instant bank account verification USA V1 is designed to provide secure, accurate, and intelligent bank account verification services for users in the United States. The API enables businesses and financial institutions to verify bank account ownership in real time by validating the provided bank account details against the account holder's information.
The API offers enhanced verification capabilities through richer input parameters and comprehensive account intelligence, including account ownership confidence, name match insights, account history signals, and bank identification based on routing information. With broader coverage and more detailed verification responses, businesses can streamline customer onboarding, reduce fraud, minimize manual verification efforts, and deliver a faster and more reliable account validation experience.
Use Cases:
- Cross-Border Transactions:
- Facilitate cross-border transactions by quickly and accurately verifying bank account details, enabling secure and efficient international money transfers.
- Enhanced Onboarding Process:
- Streamline the customer onboarding journey by automating the bank account verification process, reducing manual efforts, and minimizing the risk of errors.
- Risk Mitigation:
- Minimize the risk of fraudulent activities by validating bank account details through a robust and reliable verification process, providing an additional layer of security.
- Currency Confirmation:
- Obtain information on the currency associated with the provided bank account, allowing businesses to ensure compatibility and accuracy in financial transactions.
Bank Account Validation Flow
API description
Sample cURL
curl --location 'https://api.signzy.us/api/v3/global-bank-verification/validate-bank-account/us/v1' \
--header 'Authorization:' \
--header 'Content-Type: application/json' \
--data-raw '{
"isBusiness": false,
"accountNumber": "",
"clearingSystemId": "",
"accountType": "",
"firstName": "",
"lastName": "",
"middleName": "N",
"email": "",
"phoneNumber": "",
"street1": "",
"street2": "",
"city": "",
"state": "",
"zip": "",
"ssn": ""
}'Request Data
{
"isBusiness": false,
"accountNumber": "",
"clearingSystemId": "",
"accountType": "",
"firstName": "",
"lastName": "",
"middleName": "N",
"email": "",
"phoneNumber": "",
"street1": "",
"street2": "",
"city": "",
"state": "",
"zip": "",
"ssn": ""
}Request Data Parameters
ο»Ώ
Parameter | Description | Validation Checks | Type | Required |
|---|---|---|---|---|
isBusiness | Selects individual vs business branch | Strict boolean (rejects "true"/1) | boolean | Yes |
accountNumber | Bank account number | ^\d{1,17}$ β numeric, max 17 digits | string | Yes |
clearingSystemId | US routing number (ABA) | ^\d{9}$ β exactly 9 digits | string | Yes |
accountType | Type of account | One of checking, savings | string | Yes |
firstName | Individual's first name | 2β100 chars; ^(?=.*[a-zA-Z])[a-zA-Z\s'.\-]+$ | string | Yes (when isBusiness=false; stripped if business) |
lastName | Individual's last name | Same as firstName | string | Yes (when isBusiness=false; stripped if business) |
middleName | Individual's middle name/initial | 1β100 chars; same name pattern; "" treated as omitted | string | No (individual only; stripped if business) |
ssn | Social Security Number | Normalized to 9 digits; accepts 123-45-6789 or 123456789; "" = omitted | string | No (forbidden when isBusiness=true) |
fullName | Business legal name | 2β100 chars; any characters allowed | string | Yes (when isBusiness=true; stripped if individual) |
alternateName | Business alternate/DBA name | Max 100 chars; "" allowed | string | No (business only; stripped if individual) |
Account holder email | Valid email format (TLD check disabled); "" = omitted | string | No | |
phoneNumber | Account holder phone | Normalized to E.164; accepts +1XXXXXXXXXX or 10-digit US number; "" = omitted | string | No |
street1 | Address line 1 | Max 100 chars; ^(?=.*[a-zA-Z0-9])[a-zA-Z0-9\s,.\-#/']+$; ""/whitespace = omitted | string | No (all-or-nothing with city, state, zip) |
street2 | Address line 2 | Max 100 chars; same address pattern; "" = omitted | string | No (if present, full address required) |
city | City | Max 100 chars; ^(?=.*[a-zA-Z])[a-zA-Z\s'.\-]+$ | string | No (all-or-nothing with street1, state, zip) |
state | US state code | 2-letter USPS code (auto-uppercased); supports states, DC, territories & military | string | No (all-or-nothing with street1, city, zip) |
zip | ZIP code | ^\d{5}$ β exactly 5 digits | string | No (all-or-nothing with street1, city, state) |
creditorIdentifier | Pass-through identifier | "" allowed; no format validation | string | No (accepted but not forwarded to vendor) |
Sample Response
{
"result": {
"description": "Bank Account Verified",
"matchScore": "1",
"matchScoreDescription": "Strong Match",
"confidenceScore": "0.68",
"bankName": "US BANK NATIONAL ASSOCIATION",
"decisioningInsights": {
"accountDuplicate": "false",
"daysSinceFirstSeen": "-1",
"daysSinceLastTransaction": "-1",
"hasNegativeTransactions": "false",
"hasPaidTransactions": "false",
"hasPositiveTransactions": "false",
"nameMatch": "yes",
"nameMatchScore": "1",
"phoneNumberPresent": "false",
"taxpayerNumberMatch": "not_available",
"validRoutingNumber": "true"
}
}
}Success Response Body Parameters
ο»Ώ
Parameter | Description | Validation Checks (Values/Format) | Type | Required |
|---|---|---|---|---|
description | Overall verification verdict | Bank Account Verified, Clearing System ID invalid, Account number not found | string | Always |
matchScore | Name match score | Truncated to 1 decimal (e.g. "0.9"); "" when not applicable | string | Always |
matchScoreDescription | Name match strength | Strong Match, Partial Match, Weak Match, or "" | string | Always |
confidenceScore | Vendor confidence score | Rounded to 2 decimals (e.g. "0.99"); "" when absent | string | Always |
bankName | Bank resolved from routing number | Free text; "" if lookup fails | string | Always |
decisioningInsights | Raw vendor insights | Camel-cased keys with stringified values (e.g. validRoutingNumber, nameMatch, nameMatchScore); taxpayerNumberMatch omitted for business | object | Always |
Error Codes
HTTP Status Code | Error Code | Description |
|---|---|---|
400 | E001 | Bad Request |
401 | E101 | Unauthorized Access |
403 | E201 | Forbidden |
404 | E301 | Data Not Found |
409 | E401 | Upstream error |
429 | E501 | Rate Limit Exceeded |
500 | E601 | Internal Server Error |
503 | E701 | Service Unavailable |
504 | E801 | Timeout |
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!