Does this confirm the account exists at a bank?
No. Validation is offline against the bundled ISO 13616 registry: country length, BBAN pattern, and mod-97 checksum. There is no live bank registry lookup.
Country rules, BBAN pattern, and mod-97 checksum against a bundled ISO 13616 registry. SEPA flags and currency codes on every valid result.
This calls the live IBAN API. Pick a documented DE, GB, or FR sample to see checksum validity, SEPA flags, and currency.
Demo allowlists published sample IBANs. Production accepts any 15-34 character IBAN.
Validating IBAN...
Why IBAN API
ISO 13616 rules
Country length, BBAN regex, and mod-97 checksum run fully offline against a bundled registry.
Precise failure reasons
Invalid results name format, unsupported country, wrong length, BBAN mismatch, or checksum failure.
SEPA and currency
Valid responses include ISO 4217 currency plus sepa and sepaInstant flags for the account country.
Batch of 100
POST /validate-batch always returns 200 with per-item results and valid/invalid totals.
Country catalog
GET /countries exposes the full registry so you can build pickers without shipping the JSON yourself.
Normalized output
Whitespace is stripped and the IBAN is uppercased. originalInput is echoed only when input was cleaned.
/api/v1/iban
Lookup
Validates the path IBAN and always returns full metadata when valid.
Validate
Single IBAN in the JSON body. includeMetadata defaults to true.
Batch validate
1 to 100 IBANs with per-item results and a summary.
Country catalog
Bundled ISO 13616 entries with length, currency, sepa, and sepaInstant.
Service health
Status, service name, version, and timestamp.
Prometheus metrics
Request counts and validation metrics in Prometheus exposition format.
| Parameter | Type | Required | Description |
|---|---|---|---|
| iban | string | yes* | IBAN, 15-34 chars. Path param on GET. Whitespace is stripped. |
| includeMetadata | boolean | no | Include country/BBAN metadata when valid. Default true on /validate. |
| ibans | string[] | yes* | 1 to 100 IBANs for POST /validate-batch. |
Error reference
Joi rejection for a missing iban field or an ibans array outside 1-100 items.
IBAN fails format, registry, length, BBAN pattern, or mod-97 checksum checks.
Missing or invalid gateway API key. Send x-api-key or api_key with every request.
More than 1000 requests in a 15-minute window.
Unhandled service error during validation.
Example error response
{
"success": false,
"valid": false,
"normalized": "DE89370400440532013001",
"countryCode": "DE",
"reason": "Failed mod-97 checksum validation"
}FAQ
No. Validation is offline against the bundled ISO 13616 registry: country length, BBAN pattern, and mod-97 checksum. There is no live bank registry lookup.
The documented examples are DE89370400440532013000 (Germany), GB82WEST12345698765432 (United Kingdom), and FR7614508059891290340337066 (France).
Normalized IBAN, country code, country name, check digits, BBAN, plus metadata with length, currency, sepa, sepaInstant, and a block-of-four formatted string.
POST /validate-batch accepts 1 to 100 IBANs and always returns 200 with per-item results and a valid/invalid summary.
Send your Datpaq API key as an x-api-key header or an api_key query parameter. Keys are created in the Datpaq dashboard and a free tier is included.
ISO 13616 checksum and country rules, SEPA flags, and batch of 100, with no live bank registry call.