IBAN API
ISO 13616
SEPA + Currency
Batch 100

IBAN checks. Offline, fast.

Country rules, BBAN pattern, and mod-97 checksum against a bundled ISO 13616 registry. SEPA flags and currency codes on every valid result.

15-34 · charsmod-97 · checksumSEPA · eligibility100 · batch cap

Validate an IBAN.

This calls the live IBAN API. Pick a documented DE, GB, or FR sample to see checksum validity, SEPA flags, and currency.

Request builder
IBAN in, registry plus checksum out.
GET /iban/:iban

Demo allowlists published sample IBANs. Production accepts any 15-34 character IBAN.

Country catalog
GET /countries returns every bundled ISO 13616 entry with length, currency, and SEPA flags for building pickers.
Output preview
Live response from the API, plus the exact request to reproduce it.

Validating IBAN...

Why IBAN API

Catch bad IBANs before they hit the rails.

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

Endpoints, at a glance.

GET path lookup, POST validate, batch of 100, and a country catalog. Validation is offline against bundled ISO 13616 data.
GET/api/v1/iban/:iban

Lookup

Validates the path IBAN and always returns full metadata when valid.

PRIMARY
POST/api/v1/iban/validate

Validate

Single IBAN in the JSON body. includeMetadata defaults to true.

POST/api/v1/iban/validate-batch

Batch validate

1 to 100 IBANs with per-item results and a summary.

GET/api/v1/iban/countries

Country catalog

Bundled ISO 13616 entries with length, currency, sepa, and sepaInstant.

GET/health

Service health

Status, service name, version, and timestamp.

GET/metrics

Prometheus metrics

Request counts and validation metrics in Prometheus exposition format.

ParameterTypeRequiredDescription
ibanstringyes*IBAN, 15-34 chars. Path param on GET. Whitespace is stripped.
includeMetadatabooleannoInclude country/BBAN metadata when valid. Default true on /validate.
ibansstring[]yes*1 to 100 IBANs for POST /validate-batch.

Error reference

Failures you can plan for.

Invalid IBANs return valid: false and a reason string. Tracing uses correlationId.
400Validation Error

Joi rejection for a missing iban field or an ibans array outside 1-100 items.

400Invalid IBAN

IBAN fails format, registry, length, BBAN pattern, or mod-97 checksum checks.

401Authentication Error

Missing or invalid gateway API key. Send x-api-key or api_key with every request.

429Rate Limit Error

More than 1000 requests in a 15-minute window.

500Internal Error

Unhandled service error during validation.

Example error response

{
  "success": false,
  "valid": false,
  "normalized": "DE89370400440532013001",
  "countryCode": "DE",
  "reason": "Failed mod-97 checksum validation"
}

FAQ

API questions developers ask first.

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.

Which sample IBANs work in the docs?

The documented examples are DE89370400440532013000 (Germany), GB82WEST12345698765432 (United Kingdom), and FR7614508059891290340337066 (France).

What metadata comes back on a valid IBAN?

Normalized IBAN, country code, country name, check digits, BBAN, plus metadata with length, currency, sepa, sepaInstant, and a block-of-four formatted string.

Can I validate many IBANs at once?

POST /validate-batch accepts 1 to 100 IBANs and always returns 200 with per-item results and a valid/invalid summary.

How do I authenticate requests?

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.

Add IBAN validation in one request.

ISO 13616 checksum and country rules, SEPA flags, and batch of 100, with no live bank registry call.