POST /v1/iban/validate

POST /v1/iban/validate

Standalone ISO 13616 mod-97 IBAN validator + QR-IBAN flag + bank lookup.

Validates an IBAN against ISO 13616 mod-97 and (for CH / LI) returns the QR-IBAN flag and the cached SIX Bank Master entry. For EBA Clearing participants returns the BIC and bank name.

Pure-mod-97 — sub-10ms p50 inside the Worker isolate. No third-party calls. The local mod-97 implementation is at apps/api/src/lib/iban.ts and the browser-side equivalent at lib/iban.ts.

For pure-local validation (no API key) use the free /iban-check page on the marketing site — same algorithm, runs in your browser.

Request

Request body

{
  "iban": "string"
}

Response

Response body

{
  "valid": "boolean",
  "country": "ISO 3166-1 alpha-2",
  "qr_iban": "boolean",
  "bank_name": "string (optional)",
  "bic": "string (optional)"
}

Example

curl

curl -sS https://api.iso-compliant.com/v1/iban/validate \
  -H 'Authorization: Bearer iso_live_…' \
  -H 'Idempotency-Key: $(uuidgen)' \
  -H 'Content-Type: application/json' \
  -d '{ "iban": "CH9300762011623852957" }'

Idempotency

Mandatory header `Idempotency-Key` (UUID or other opaque ≤64 char string). A second request with the same key and the same body returns the cached response and the header `X-Iso-Compliant-Idempotent-Replay: true`. A second request with the same key but a different body returns 409.

Rate limit

Sandbox: 60 requests / minute, 1000 / day. Production: 600 requests / minute soft cap, lifted per tenant on request.

← All docs