Docs Pricing Blog Get API Key
IBAN Validation API

IBAN Validation API — Instant Offline Verification with Bank Lookup

Validate any IBAN in under 65ms using offline MOD-97 computation. Get BIC codes, bank names, and SEPA status from the Bundesbank SCL-Directory. Zero external dependencies.

Response — 12ms
{
  "valid": true,
  "iban": "DE89370400440532013000",
  "country_code": "DE",
  "bank_name": "Commerzbank",
  "bic": "COBADEFFXXX",
  "bank_city": "Frankfurt am Main",
  "sepa_supported": true,
  "confidence": "HIGH",
  "response_time_ms": 12
}

Regex Is Not IBAN Validation

Many applications rely on simple regex patterns or basic length checks for IBAN validation. This misses transposition errors, invalid check digits, and provides zero insight into the bank behind the number. Your payment failures and chargebacks tell the real story.

Regex Misses Check Digits

A regex can verify format but not the MOD-97 checksum. Two transposed digits pass regex validation but fail actual bank transfers, causing rejected payments.

🏦

No Bank Information

Format validation alone tells you nothing about the bank. You need the BIC/SWIFT code, bank name, and SEPA eligibility to process cross-border EU payments correctly.

💸

Failed Payments Are Expensive

Each failed SEPA transfer costs processing fees, customer support time, and delayed revenue. Proper upfront IBAN validation prevents these failures entirely.

🔄

Country-Specific Formats

Each EU country has different IBAN lengths and formats. Germany uses 22 characters, France uses 27, Malta uses 31. Building and maintaining country-specific rules is error-prone.

Complete IBAN Validation + Bank Data

Full algorithmic validation using ISO 13616 MOD-97 plus bank data enrichment from the Bundesbank SCL-Directory. No external API calls, no network latency, no downtime risk.

Sub-65ms Offline Validation

MOD-97 checksum computed locally with zero network calls. Consistently fast response times regardless of upstream availability. Pure math, pure speed.

🏦

BIC/SWIFT Lookup

Every valid IBAN response includes the BIC code, bank name, and bank city. Data sourced from the Bundesbank SCL-Directory, updated monthly for accuracy.

🇪🇺

SEPA Eligibility Check

Instantly know if a bank account supports SEPA credit transfers and direct debits. Essential for automated EU payment processing and recurring billing.

📋

Country Format Validation

Validates IBAN length and structure against country-specific rules for all EU member states. Catches format errors before they become payment failures.

📦

Batch Processing

Validate up to 1,000 IBANs in a single batch request. Since validation is offline, batch results return within seconds. Perfect for data migration and cleanup.

🛡

100% Uptime Guarantee

No external API dependencies means no downtime. IBAN validation works even if every government service in Europe goes offline simultaneously.

One Request. Complete IBAN Intelligence.

Send an IBAN (with or without spaces) and get back validation status, bank details, BIC code, and SEPA eligibility in a single JSON response.

# Validate a German IBAN
curl "https://api.eurovalidate.com/v1/iban/DE89370400440532013000" \
  -H "X-API-Key: your_api_key"

# Response
{
  "success": true,
  "data": {
    "valid": true,
    "iban": "DE89370400440532013000",
    "country_code": "DE",
    "bank_name": "Commerzbank",
    "bic": "COBADEFFXXX",
    "sepa_supported": true
  },
  "meta": {
    "confidence": "HIGH",
    "source": "offline_mod97",
    "response_time_ms": 12
  }
}
import httpx

response = httpx.get(
    "https://api.eurovalidate.com/v1/iban/DE89370400440532013000",
    headers={"X-API-Key": "your_api_key"}
)

data = response.json()

if data["data"]["valid"]:
    print(f"Bank: {data['data']['bank_name']}")
    print(f"BIC: {data['data']['bic']}")
    print(f"SEPA: {data['data']['sepa_supported']}")
else:
    print("Invalid IBAN")
const response = await fetch(
  "https://api.eurovalidate.com/v1/iban/DE89370400440532013000",
  { headers: { "X-API-Key": "your_api_key" } }
);

const { data, meta } = await response.json();

if (data.valid) {
  console.log(`Bank: ${data.bank_name}`);
  console.log(`BIC: ${data.bic}`);
  console.log(`SEPA: ${data.sepa_supported}`);
} else {
  console.log("Invalid IBAN");
}

Simple, Usage-Based Pricing

Start free. Scale as you grow. No credit card required for the free tier. All plans include IBAN validation, VAT, EORI, and company lookup.

Free
€0 /mo
100 requests/month
  • All endpoints
  • JSON responses
  • Community support
Get Started Free
Starter
€19 /mo
5,000 requests/month included. Then €0.005/req.
  • 5,000 included, €0.005 above
  • All endpoints
  • Batch validation
  • Email support
Start Free Trial
Scale
€149 /mo
100,000 requests/month included. Then €0.002/req.
  • 100,000 included, €0.002 above
  • All endpoints
  • Monitoring webhooks
  • Dedicated support
  • 99.95% SLA
Start Free Trial

Frequently Asked Questions

Common questions about the EuroValidate IBAN Validation API.

IBAN validation uses the MOD-97 algorithm defined in ISO 13616. The API checks the country code, verifies the length matches the country's standard, rearranges the digits, converts letters to numbers, and performs a modulo 97 calculation. A valid IBAN always produces a remainder of 1.
A regex can check the format, but it cannot verify the MOD-97 check digits that catch transposition and transcription errors. It also cannot look up the bank name and BIC code. EuroValidate performs full algorithmic validation plus bank data enrichment from the Bundesbank SCL-Directory.
Yes. IBAN validation uses the MOD-97 algorithm which is computed entirely offline — no external API calls are needed. Bank data (BIC codes, bank names) is loaded from the Bundesbank SCL-Directory which is updated monthly. This means zero external dependencies and consistent sub-65ms response times.
For validated IBANs, the API returns the bank name, BIC/SWIFT code, bank city, and whether the bank participates in SEPA transfers. This data comes from the Bundesbank SCL-Directory which covers EU banks and is updated monthly.
Yes. Use the POST /v1/batch endpoint to validate up to 1,000 IBANs in a single request. Since IBAN validation is offline, batch processing is extremely fast and results are typically available within seconds.

Stop Guessing. Start Validating.

Get your free API key and validate your first IBAN in under 60 seconds.