BankCheck
HomeIBANRouting NumberSort CodeSWIFT/BICGeneratorGuidesAPI
Home
IBAN
Routing Number
Sort Code
SWIFT/BIC
Generator
Guides
API

BankCheck

Validate any bank number instantly. Free and 100% client-side.

Your data never leaves the browser

Formats

IBAN40+ countriesRouting NumberUnited StatesSort CodeUK & IrelandSWIFT/BICWorldwide

Info

IBAN GeneratorTransfer GuidesGlossaryGuidesCompareAlternativesAboutPrivacy PolicyTerms of UseAPI Docs

BankCheck checks whether a number could be valid based on format, length, and checksum rules. It does not verify that an account exists or confirm who it belongs to. Always confirm account details with your bank before making a payment.

© 2026 BankCheck

BankCheck API

REST API for validating IBAN, US routing numbers, UK sort codes, and SWIFT/BIC codes. Free tier available with no signup. CORS enabled for browser use.

API Tiers

TierAuthPriceRate LimitEndpoints
OpenNo key neededFree3/min, 40/day/validate
StarterAPI key (email)Free10/min, 100/day/validate, /usage
ProAPI key$9/mo200/min, 10k/dayAll endpoints
BusinessAPI key$49/mo2k/min, 100k/dayAll endpoints

Authentication

The Open tier requires no authentication. For higher limits, include your API key in the Authorization header:

Authorization: Bearer bc_live_your_api_key_here

Get your API key from the dashboard.

Endpoint

POST https://bankcheck.dev/api/v1/validate

GET https://bankcheck.dev/api/v1/validate?q={bank_number}

Both methods return the same JSON response. Use POST for programmatic integrations, GET for quick testing.

Quick Start

bashValidate an IBAN
curl "https://bankcheck.dev/api/v1/validate?q=DE89370400440532013000"
bashValidate a US routing number
curl "https://bankcheck.dev/api/v1/validate?q=021000021"
bashPOST with format hint
curl -X POST https://bankcheck.dev/api/v1/validate \
  -H "Content-Type: application/json" \
  -d '{"input": "20-00-00", "format": "uk-sort-code"}'

Request Parameters

FieldTypeDescription
input / qstringThe bank number to validate. Use 'input' in POST body, 'q' as GET query param.
formatstringOptional format hint: "iban", "us-routing", or "uk-sort-code". If omitted, the format is auto-detected.

Response

All validation outcomes (valid or invalid) return HTTP 200. The result.valid field indicates the validation result. HTTP 400 is returned only when the request itself is malformed.

jsonExample response (valid German IBAN)
{
  "apiVersion": "1",
  "processingTimeMs": 1,
  "result": {
    "valid": true,
    "format": "iban",
    "normalized": "DE89370400440532013000",
    "errors": [],
    "breakdown": {
      "formatName": "IBAN",
      "parts": [
        { "label": "Country", "value": "DE", "start": 0, "end": 2 },
        { "label": "Check Digits", "value": "89", "start": 2, "end": 4 },
        { "label": "Bank Code", "value": "37040044", "start": 4, "end": 12 },
        { "label": "Account Number", "value": "0532013000", "start": 12, "end": 22 }
      ]
    },
    "bankInfo": {
      "bankName": "Commerzbank",
      "bic": "COBADEFFXXX",
      "country": "Germany",
      "countryCode": "DE",
      "city": "Frankfurt"
    }
  }
}

Response Fields

FieldTypeDescription
apiVersionstringAlways "1"
processingTimeMsnumberServer-side processing time in milliseconds
result.validbooleanWhether the bank number passed all validation checks
result.formatstring | nullDetected format: "iban", "us-routing", "uk-sort-code", or null
result.normalizedstringInput with whitespace, hyphens, and dots removed, uppercased
result.errorsarrayValidation errors, each with code, message, and suggestion fields
result.breakdownobject | nullStructure breakdown with labeled parts (country code, check digits, etc.)
result.bankInfoobject | nullBank lookup result with bankName, bic, country, countryCode, city

Format-Specific Docs

IBAN

40+ countries, MOD-97

Routing Number

US ABA 9-digit codes

Sort Code

UK 6-digit codes

Privacy Note

Unlike the web interface which validates entirely client-side, API requests are processed on the server. BankCheck does not log or store input data, but if you have strict privacy requirements, use the client-side web tool instead.

FAQ

Is the API free?
The Open tier is free with no signup (40 requests/day). The Starter tier is also free with email signup (100 requests/day). Pro ($9/mo) and Business ($49/mo) tiers offer higher limits and additional endpoints.
Do I need an API key?
Not for the Open tier — just call the endpoint directly. For higher limits and access to /batch, /enrich, /generate, and /usage endpoints, sign up for a free account and get an API key.
What rate limits apply?
Rate limits vary by tier. The Open tier allows 3 requests/minute and 40/day. Pro allows 200/minute and 10,000/day. All responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.
Is input logged server-side?
No. BankCheck does not log, store, or share bank numbers submitted via the API. However, API requests do travel over the network — for maximum privacy, use the client-side web validator.