Built for modern payment stacks
Validate routing numbers, verify card details, and process international payments with our comprehensive API platform. Search banks by location, validate IBANs instantly, and ensure payment accuracy—everything you need to build secure financial applications.
Access our comprehensive database of 19,000+ US banks and credit unions. Search by institution name, location, state, or ZIP code with fast local database lookups. Perfect for payment forms, bank selectors, and financial applications.
Validate credit card information instantly by analyzing the Bank Identification Number (BIN) to prevent fraud and secure online transactions.
Validate international bank account numbers (IBAN) with ISO 13616 compliance across 89+ countries.
Verify SWIFT/BIC codes instantly. Get comprehensive bank information including bank name, location, branch details, and code breakdown for international transfers.
Get started in minutes with our RESTful APIs and comprehensive documentation.
curl -X POST https://www.bankdatastack.com/api/v1/routing/database/bank \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"bank": "CITIZENS", "limit": 5}'
curl -X POST https://www.bankdatastack.com/api/v1/routing/database/state \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"state": "TX", "limit": 5}'
curl -X POST https://www.bankdatastack.com/api/v1/routing/database/zip \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"zip": "10005", "limit": 10}'
{
"status": "success",
"message": "Found 10 routing number(s) on page 1",
"data": [{
"routingNumber": "113110984",
"bank": "CITIZENS NATIONAL BANK",
"address": "1320 LOOP 304 EAST",
"city": "CROCKETT",
"state": "TX",
"zip": "75835",
"phone": "(936) 544-9661",
"dateOfRevision": "042104",
"newRoutingNumber": "",
"active": true
}],
"pagination": {
"current_page": 1,
"per_page": 10,
"total": 1386,
"total_pages": 139,
"has_more": true
}
}
# Basic Request (Auto-detect payment type)
curl -X POST https://www.bankdatastack.com/api/v1/routing/validate \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"routing_number": "021000021"}'
# ACH Payments Only
curl -X POST https://www.bankdatastack.com/api/v1/routing/validate \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"routing_number": "021000021", "payment_type": "ach"}'
# Wire Transfers Only
curl -X POST https://www.bankdatastack.com/api/v1/routing/validate \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"routing_number": "021000021", "payment_type": "wire"}'
{
"status": "success",
"data": {
"routingNumber": "021000021",
"paymentType": "ach",
"name": "Jpmorgan Chase Bank, Na",
"addressFull": "Tampa, FL",
"city": "Tampa",
"state": "FL",
"type": "Main Office",
"phone": "813-432-3700",
"active": true,
"lastUpdated": "2025-11-12"
}
}
{
"status": "success",
"data": {
"routingNumber": "021000021",
"paymentType": "wire",
"name": "JPMORGAN CHASE BANK",
"addressFull": "NEW YORK, NY",
"city": "NEW YORK",
"state": "NY",
"telegraphicName": "JPMORGAN",
"fundsTransferEligible": "Eligible",
"bookEntrySecuritiesTransferEligible": "Eligible",
"lastUpdated": "2025-11-10"
}
}
curl -X POST https://www.bankdatastack.com/api/v1/bin/validate \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"bin": "424242"}'
{
"status": "success",
"data": {
"bin": "424242",
"valid": true,
"cardBrand": "VISA",
"cardType": "CREDIT",
"countryName": "UNITED KINGDOM",
"countryCode": "GB"
}
}
curl -X POST https://www.bankdatastack.com/api/v1/iban/validate \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"iban": "GB82WEST12345698765432"}'
{
"status": "success",
"data": {
"iban": "GB82WEST12345698765432",
"valid": true,
"countryCode": "GB",
"checkDigits": "82",
"bban": "WEST12345698765432"
}
}
curl -X POST https://www.bankdatastack.com/api/v1/swift/validate \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"swift": "CHASUS33"}'
{
"status": "success",
"message": "SWIFT code CHASUS33 is valid",
"data": {
"swiftCode": "CHASUS33",
"bank": "JPMORGAN CHASE BANK, N.A.",
"city": "New York",
"branch": null,
"address": "270 Park Avenue",
"postCode": "10017",
"country": "United States",
"countryCode": "US",
"breakdown": {
"swiftCode": "CHASUS33 or CHASUS33XXX",
"bankCode": "CHAS - code assigned to JPMORGAN CHASE BANK",
"countryCode": "US - code belongs to United States",
"locationCode": "33 - code represents the institution location",
"codeStatus": null,
"branchCode": "XXX - code indicates this is a head office"
}
}
}
7-day free trial on all plans. Scale as you grow. No hidden fees, no surprises.
Billed monthly
$499.99/year
Save $99.89
✓ 7-day free trial
Billed monthly
$999.99/year
Save $199.89
✓ 7-day free trial
Billed monthly
$1,999.99/year
Save $399.89
✓ 7-day free trial
Billed monthly
$4,999.99/year
Save $999.89
✓ 7-day free trial
Need custom solutions beyond 100k requests/month?
Contact us for custom pricingPower your financial applications with enterprise-grade validation APIs. Reduce fraud, accelerate onboarding, and ensure compliance across every transaction.
Accelerate customer onboarding by 80% with instant account verification. Reduce drop-off rates and improve conversion with real-time routing and IBAN validation.
Stop fraud before it happens. Real-time BIN validation and routing checks prevent 99% of invalid transactions, reducing chargebacks and processing costs.
Meet regulatory requirements effortlessly. Verified banking data ensures compliance with KYC, AML, and financial regulations while building customer trust.
Eliminate manual data entry errors. Automated routing validation ensures 100% accurate bank transfers and seamless reconciliation workflows.
Protect your business from financial fraud. Multi-layer validation checks flag suspicious accounts and prevent fraudulent transactions in real-time.
Expand globally with confidence. Validated SWIFT codes and IBAN verification across 89+ countries ensure successful international transfers every time.
Join thousands of developers building the next generation of financial products.
Don't just take our word for it. Here's what our customers have to say.
"We integrated BankData's routing number API into our ACH payment platform. Response times are consistently fast for our use case. Our customers love the instant bank validation during checkout."
"The BIN checker API helped us reduce fraudulent transactions by 73% in the first month. The accuracy and speed are exactly what we needed for real-time fraud detection."
"We process international payments to 40+ countries. BankData's IBAN and SWIFT validation is essential for preventing costly transfer errors. Saved us thousands in failed payments."
Find answers to common questions about our bank data validation APIs.
A Routing Number Lookup API is a powerful service that validates and provides comprehensive details about a U.S. bank's routing transit number (RTN). It instantly confirms if the routing number is valid and returns associated data including the bank's name, physical address, telephone number, and other vital information. This is crucial for processing ACH transfers, wire transfers, and direct deposits with confidence.
Our IBAN & SWIFT Validator API performs comprehensive validation of international bank account numbers following the ISO 13616 standard. The IBAN is a standardized alphanumeric code (up to 34 characters) that uniquely identifies bank accounts across borders, consisting of:
Our API validates against strict formatting rules, performs checksum calculations, and cross-references against official bank directories across 89+ countries (including all SEPA zones, Middle East, Caribbean, and major global markets). This significantly reduces failed international payments by ensuring all bank details are accurate before initiating transactions.
A Bank Identification Number (BIN) Checker API uses the first 6 to 8 digits of a credit or debit card to instantly identify the issuing bank, card scheme (Visa, Mastercard, American Express, Discover, etc.), card type (debit, credit, or prepaid), and country of origin. This real-time intelligence is essential for fraud prevention, optimized payment routing, chargebacks management, and comprehensive payment data analytics.
BankData maintains a 99.9% accuracy rate across all API endpoints. We continuously update our databases with information from official sources including the Federal Reserve, SWIFT registry, and international banking authorities. Our data is refreshed daily to ensure you always have access to the most current and accurate bank information available.
All BankData APIs return data in standard JSON format for easy integration with any programming language or framework. We support REST architecture with GET and POST requests, making it simple to integrate whether you're using Python, PHP, Node.js, Java, Ruby, or any other language. Our SDKs are available for the most popular languages.
All BankData plans include a 7-day free trial with full access to your plan's quota. This allows you to test our APIs, build proof-of-concepts, and integrate into your development environment risk-free. A payment method is required to start your trial, but you won't be charged until the trial period ends. You can cancel anytime during the trial without any charges.
Our global infrastructure delivers an average response time of under 500ms across all endpoints. We use distributed servers and intelligent caching to ensure lightning-fast validation regardless of your location. Additionally, our 99.99% uptime SLA guarantees that your applications always have access to critical banking data when you need it. These are two separate performance metrics: response time measures how quickly we process each request, while uptime measures service availability.
BankData provides comprehensive global coverage:
Security and compliance are at the core of BankData. All API communications are encrypted using TLS 1.3. We are SOC2 Type II certified and GDPR compliant. Our infrastructure is hosted on enterprise-grade cloud platforms with regular security audits, penetration testing, and 24/7 monitoring to protect your data and ensure regulatory compliance.
While many banks use the same routing number for both ACH and Wire transfers, some institutions have separate routing numbers for each payment type:
Our Routing Number API supports both payment types. You can specify "payment_type": "ach" or "payment_type": "wire" in your request, or omit the parameter to auto-detect the available payment type.
Our BIN Checker API provides comprehensive card information from just the first 6-8 digits:
This data enables fraud prevention, payment routing optimization, and helps you make informed decisions about transaction processing and risk assessment.
IBAN validation uses the MOD-97 algorithm (ISO 13616 standard) to verify the integrity of international bank account numbers:
This mathematical validation catches 99.9% of common data entry errors including transposed digits, missing characters, and typos. Our API performs this validation instantly along with format checks and cross-referencing against official bank directories.
A SWIFT code (also called BIC - Bank Identifier Code) is an 8-11 character code that uniquely identifies banks worldwide for international wire transfers. The structure is:
Example: CHASUS33 identifies JPMorgan Chase Bank in New York. Our SWIFT Validator API validates the format, checks against the official SWIFT directory, and returns detailed bank information including name, address, branch details, and code breakdown.
We believe in fair and transparent billing. You're only charged for API calls that provide value:
All requests are logged for analytics, but you're only charged for requests that actually process your data. You can monitor your usage in real-time through the dashboard, and we provide usage headers in every API response showing your remaining quota.
Rate limits protect our infrastructure and ensure fair usage across all customers. Each plan includes:
Example: The Pro plan includes 10,000 requests/month with a rate limit of 120 requests/minute. If you exceed the per-minute limit, you'll receive a 429 status code. If you enable "Soft Limits" in your dashboard, you can continue making requests beyond your monthly quota at $0.002 per request, with overage charges billed monthly.
All API requests require authentication using your API key. You can include it in one of two ways:
X-API-Key: your_api_key_hereAuthorization: Bearer your_api_key_hereGenerate your API key from the dashboard after signing up. Each key is unique and can be revoked at any time. Keep your API keys secure and never expose them in client-side code or public repositories. You can create multiple API keys for different environments (development, staging, production).
Absolutely! Our APIs are designed to help prevent fraud at multiple stages:
Many customers integrate our APIs into their fraud detection workflows, combining our validation data with their own risk scoring systems to reduce chargebacks and fraudulent transactions by up to 80%.
Our Routing Number Database API provides instant access to 19,000+ US banks and credit unions with advanced features. Unlike traditional APIs, we offer:
refresh=truePerfect for building bank selectors, payment forms, regional banking analytics, and branch locators. Use /api/v1/routing/database/* endpoints for search and discovery.
Our APIs return clear error responses to help you handle invalid data gracefully:
All error responses include helpful messages and support contact information. We recommend implementing proper error handling in your application to provide user-friendly feedback and prevent invalid transactions from being processed.