Documentation & API Reference
How to use ibanworld.de: validate an IBAN, search a BIC, find a bank — plus the full REST API reference with examples.
Validate an IBAN
Check whether an IBAN is structurally valid and, for German IBANs, look up the matching bank.
Open the validator
Go to ibanworld.de — the validator box is right at the top of the page.
Enter or paste the IBAN
Spaces are removed automatically as you type, so you can paste an IBAN exactly as your bank formatted it.
Read the result
You'll see whether the checksum (MOD-97, per ISO 13616) is valid, the country, SEPA membership, and — for German IBANs — the bank name, BIC, and city. Every field has a copy button.
Search a BIC / SWIFT code
Validate an existing BIC, or use the same page's bank-name search.
Open BIC search
Go to ibanworld.de/bic-search.
Validate a BIC
Enter an 8 or 11-character BIC (e.g. COBADEFFXXX) to see its bank code, country, location, and branch segments decoded.
Find a bank by name
On the same BIC search page, use the second box to search German banks by name or sort code (Bankleitzahl) — type at least 3 characters.
Country reference
The countries page lists all 77 supported countries with their IBAN length, SEPA status, and an example IBAN you can try directly. Use the search box to filter by country name or code.
REST API — overview
The same validation logic that powers the website is available as a JSON REST API. No API key or authentication is required for the free tier.
Base URL: https://ibanworld.de/api
Rate limit (free tier): 5 requests per IP address per calendar day (UTC) across all /api/* endpoints combined. Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset (Unix timestamp) headers so you can track your usage. Need a higher limit? Contact us about a business plan.
Format: All responses are application/json. No wrapper envelope — the result fields are top-level.
POST /api/validate
Validates an IBAN. Also accepts GET /api/validate?iban=... for quick testing in a browser.
| Field | Type | Required | Description |
|---|---|---|---|
| iban | string | yes | The IBAN to validate. Spaces are ignored. |
/api/validatecurl -X POST https://ibanworld.de/api/validate \
-H "Content-Type: application/json" \
-d '{"iban": "DE89370400440532013000"}'
{
"valid": true,
"iban": "DE89370400440532013000",
"formatted": "DE89 3704 0044 0532 0130 00",
"country": "Germany",
"country_code": "DE",
"sepa": true,
"details": { "blz": "37040044", "account_number": "0532013000" },
"bank": { "name": "Commerzbank", "bic": "COBADEFFXXX", "city": "Köln" }
}
GET /api/bic/{bic}
Validates a BIC/SWIFT code and, if known, returns the matching bank.
/api/bic/COBADEFFXXX{
"valid": true,
"bank_code": "COBA",
"country_code": "DE",
"location_code": "FF",
"branch_code": "XXX",
"bank": { "name": "Commerzbank", "bic": "COBADEFFXXX", "city": "Köln" }
}
GET /api/banks/search?q=
Searches German banks by name or sort code. Requires at least 3 characters; returns up to 20 results.
| Field | Type | Required | Description |
|---|---|---|---|
| q | string | yes | Search term (bank name or Bankleitzahl), min. 3 characters. |
/api/banks/search?q=Commerzbank{
"results": [
{ "name": "Commerzbank", "blz": "37040044", "bic": "COBADEFFXXX", "city": "Köln" }
]
}
Errors & status codes
422missing_iban — the iban field was empty or not sent.200valid: false — a well-formed request that is not a valid IBAN/BIC returns HTTP 200 with an error field describing why (e.g. checksum, wrong_length, unknown_country).429rate_limit_exceeded — you've used all 5 free requests for today. Check X-RateLimit-Reset for when the limit resets, or contact us for a higher-limit plan.