IBAN and BIC API
Check the bank behind an IBAN before you pay
IBANforge validates IBANs from 89 countries, names the bank and its BIC with their source, and, where it reads the national register, says whether the bank code is allocated at all. Your software gets a clear next step before any money leaves.
- No card
- No e-mail to start
- API, SDKs, spreadsheets and AI agents
Why a checksum is not enough
A valid IBAN can still lead to no bank
The mod-97 check only proves that the digits add up. An IBAN can pass it with a bank code no bank holds, or one retired after a merger.
Payment ready to go
€12,480.00
to Société Alpha SA · invoice 2026-0412
Reading the IBAN
DECountry89Check digits 3704 0044Bank code 0532 0130 00Account
Bank confirmed
Commerzbank.
Code 37040044 confirmed by the Deutsche Bundesbank register
BICCOBADEFFXXX
Same invoice, another IBAN
DE65Check digits valid 1234 5678No bank holds this code 0532 0130 00
DE65 1234 5678 0532 0130 00
Do not send.
The check passes. But bank code 12345678 is allocated to no bank.
A typo
DE89 3704 0044 0532 0130 01
The check digits do not match
DE89 3704 0044 0532 0130 01
Check the entry.
One character is wrong. Ask for the IBAN again.
Fig. 1Example: a payment of €12,480.00 to Société Alpha SA, invoice 2026-0412. Answers recorded from the live API on 26 September 2026.
Three examples
Reading the IBAN
The same IBAN, read part by part
IBANforge reads each part of the IBAN and tells you which checks it could make.
DE
Country
Length and structure, 89 countries
89
Check digits
ISO 13616, modulo 97
37040044
Bank code
The national register in DE, AT, BE, SK, CZ, BG, CH, LI
0532013000
Account number
The national check key in FR, MC, BE, IT, SM, ES
What a checksum tells you
- The check digits add up
- The length fits the country
- Nothing about the bank
What IBANforge adds
- Whether the bank code is allocated, where the national register is read
- The bank and its BIC, each with its source, and its date when known
- The national check key inside the account number, where one is published and checked
- SEPA reachability and Verification of Payee readiness, from the EPC registers where they list the bank
- Sanctions screening at bank level (OFAC, EU, UN)
- A next step your code can act on, down to a plain “Do not send”
Try it now
Run a real check, no sign-up
- IBAN format
- Ready to check
- Bank
- Ready to identify
- BIC / SWIFT
- Ready to look up
Three ways to use it
One IBAN, a whole file, or inside your tools
The same answer, wherever you need it.
Bank confirmed
Commerzbank.
DE89 3704 0044 0532 0130 00 · BIC COBADEFFXXX
APIDevelopers
POST /v1/iban/validate {"iban":"DE89370400440532013000"}
SpreadsheetGoogle Sheets
Google Sheets add-on · manual install
AI agentMCP
$ npx -y ibanforge-mcp
MCP server · Claude, Cursor, Cline
5,000
rows
Flagged rows
DE65 1234 5678 0532 0130 00Code 12345678 not allocated
DE89 3704 0044 0532 0130 01The check digits do not match
Fig. 2Illustration: IBANs masked, except the flagged rows.
One REST call, or an SDK in TypeScript, Python, Java or .NET. The answer is JSON, with a documented next step. Read the docs
Upload a CSV or Excel file of suppliers: the free preview counts what needs fixing and shows the first flagged lines, IBANs masked. Check a supplier file
An MCP server for Claude, Cursor and any MCP client, installed in one line. Agents without an account can pay per call in USDC with x402. Connect an agent
Coverage and trust
Read from the source, with its limits
Every answer says where it comes from and what it could not check.
- 89
IBAN countries validated
- 8
countries whose national register is read in full
DE, AT, BE, SK, CZ, BG, CH, LI
- 6
countries whose national check key is verified, plus the UK modulus check
FR, MC, BE, IT, SM, ES
- 0.4ms
median server processing
Operated from Switzerland, API hosted in the EU
Sources: the national registers, SIX BankMaster, GLEIF, EBA STEP2, NBP and Bank of England (List of Banks, 2026-09), re-read at least every month, plus a public copy of the SWIFT directory frozen in January 2018 that still makes up about two thirds of the BIC directory. Last refresh September 26, 2026. Every source and its licence
Pricing
Start free, pay as you grow
Pro and credit packs work on the key you already hold; the file audit is paid separately, with no key.
Free key
Free
Every endpoint, 200 requests a month once you claim the key with an e-mail. No card.
File audit
The free preview counts what needs fixing. The annotated workbook, every line in full:
$149up to 5,000 rows$349up to 20,000 rows
AI agents can also pay per call in USDC with x402: no account, no checkout. See all prices
mid-November 2026
structured addresses · Swiss timetable
POST /v1/address/check says for free whether an address passes. Read the rules, rail by rail
Questions
Does IBANforge check who holds the account?
No. It checks the IBAN and the bank behind it. Matching the name of the account holder is the Verification of Payee check, made by the payee’s bank.
Which countries get a verdict from the national register?
DE, AT, BE, SK, CZ, BG, CH, LI: there the national register settles whether a bank code is allocated. In the other countries the answer names the bank from a partial register or a composite map, and says that it cannot rule a code out. For AE, BA, EE, GE, KZ, MD, RS and TR we hold no bank-code data we may reuse: the answer says the bank was not consulted.
Can I try it without signing up?
Yes. Without any key, POST /v1/iban/validate answers up to 25 validations a week from each address, in full.
What does a free key give me?
Every endpoint, with 200 requests a month once you claim the key with an e-mail address. Creating it needs no card and no e-mail.
Are the IBANs I send stored?
Not by the validation: each IBAN is checked in memory and never written to storage. The file audit keeps its report, which carries your columns, 2 hours unpaid or 24 hours after payment, then deletes it. The privacy policy details the request metadata kept for up to 12 months.
DE65 1234 5678 0532 0130 00Do not send.
Check your
first
IBAN
in two minutes
Create a key without a card, or run a check right now with no key at all.
