IBANforge API
IBANforge is a fast, reliable API for IBAN validation and BIC/SWIFT lookup. It covers 89 countries with real-time checksum verification, BBAN structure parsing, enriched institution data from GLEIF, SEPA compliance info, issuer classification (bank vs. EMI/neobank), sanctions & compliance screening with a 0–100 risk score, and exclusive Swiss clearing (BC-Nummer) data from SIX BankMaster.
The whole API on one page. IBAN validation API: what one call checks and what it does not, the first call in curl, JavaScript and Python, and the free ways in.
Start here. Onboarding walks the whole path in ten minutes — the keyless call, the free key, every block of the answer read by its real name, a batch of 100 and the two kinds of error. Every
curlon that page was really run, and every response is the one the API gave.
Start free, without even a key. Two endpoints solve a whole problem at no cost:
/v1/reference/validatechecks payment references (RF/ISO 11649, Swiss QRR, Belgian OGM, Finnish viitenumero) with a sourced verdict, and/v1/address/checkchecks a structured ISO 20022 address against the SPS, T2 or Fedwire rules ahead of the November 2026 changes.
Base URL
https://api.ibanforge.com
All endpoints are served over HTTPS. HTTP requests are redirected automatically.
Authentication
Before any of them: the first calls of the week need nothing at all. POST /v1/iban/validate with a real iban and no key is served in full, 25 times a week for the address it comes from (ISO week in UTC, reset on Monday at 00:00 UTC). The answer carries a trial block saying how many are left this week, when the count resets, and the one request that gets you a free key. It is a taster, not a tier: past 25 in the week the endpoint answers 402 again, with cause.reason: "trial_exhausted".
Then, three ways in — pick what fits, your app or agent never hits a dead-end:
- Free API key — 25 requests/month without email. Generate one with a bodyless POST, then send
Authorization: Bearer ifk_.... Claim the same key with an emailed code to raise its quota to 200/month, without a card. - Prepaid credit packs — 1k = $4, 5k = $20, 25k = $80. They never expire, purchasable by card or in USDC (
POST /v1/credits/buy/1k|5k|25k). See pricing. - x402 micropayments — fully autonomous pay-per-call in USDC for agents, no account at all. See the x402 guide.
A request without a valid key or payment gets a 402 response with machine-readable instructions for all three paths — autonomous agents can self-onboard.
Endpoints at a glance
| Endpoint | Method | Cost | Description |
|---|---|---|---|
/v1/iban/validate | POST | $0.005 | Validate a single IBAN |
/v1/iban/batch | POST | $0.002/IBAN | Validate up to 100 IBANs |
/v1/bic/:code | GET | $0.003 | Look up a BIC/SWIFT code |
/v1/iban/compliance | POST | $0.02 | Sanctions, FATF, SEPA/VoP reachability + 0–100 risk score |
/v1/ch/clearing/:iid | GET | $0.003 | Swiss BC-Nummer / IID lookup (SIX BankMaster) |
/v1/iban/format | GET or POST | Free | Structure, checksum, country and BBAN, no key needed. The registry (BIC, bank, SEPA, sanctions, Swiss clearing) is what the paid calls add |
/v1/reference/validate | GET/POST | Free | Payment reference checksum (RF/ISO 11649, Swiss QRR, Belgian OGM, Finnish viitenumero) |
/v1/address/check | POST | Free | ISO 20022 postal address conformity (SPS, HVPS+/T2, Fedwire), every finding sourced |
/v1/ch/qr-bill/check | POST | Free | Swiss QR-bill payload: header, QR-IBAN and reference pairing, checksums, structured (S) or combined (K) addresses (type K not permitted since 21.11.2025), with a proposed structured form |
/v1/audit/upload | POST | Free preview, then $149 | A whole creditor file (CSV or XLSX): every row against the same registers, duplicates, BIC and address checks; masked preview for free, annotated workbook after payment. The page for non-developers is /audit |
/v1/demo | GET | Free | Example validations (no payment needed) |
/health | GET | Free | Service health check |
Quick example
No key, nothing to sign up for — this works as it stands, 25 times a week for the address it comes from:
curl -X POST https://api.ibanforge.com/v1/iban/validate \
-H "Content-Type: application/json" \
-d '{"iban": "CH10 0023 0000 0000 1234 5"}'The response then carries an extra trial block:
"trial": {
"calls_used_this_week": 1,
"calls_left_this_week": 24,
"weekly_limit": 25,
"resets": "Monday 00:00 UTC",
"resets_at": "2026-09-28T00:00:00Z",
"free_key": "POST https://api.ibanforge.com/v1/keys/generate with {\"source\":\"api-trial\"} — no e-mail, no card, nothing to confirm: it returns an ifk_ key that works on every endpoint, good for 200 requests a month once claimed (POST /v1/keys/claim, key in the Authorization header, with a code mailed to an address you read). Unclaimed, the key starts at 25 requests a month",
"docs": "https://ibanforge.com/docs/api-keys?src=api-trial"
}Past the 25 calls of the week, take the free key — one POST, no card — and add Authorization: Bearer ifk_... to the same request.
Response:
{
"iban": "CH1000230000000012345",
"valid": true,
"country": {
"code": "CH",
"name": "Switzerland"
},
"check_digits": "10",
"bban": {
"bank_code": "00230",
"account_number": "000000012345"
},
"bic": {
"code": "UBSWCHZH80A",
"bic8": "UBSWCHZH",
"bank_name": "UBS Switzerland AG",
"city": "Zürich"
},
"sepa": {
"member": true,
"schemes": ["SCT", "SDD"],
"vop_required": false
},
"issuer": {
"type": "bank",
"name": "UBS Switzerland AG"
},
"risk_indicators": {
"issuer_type": "bank",
"country_risk": "standard",
"test_bic": false,
"sepa_reachable": true,
"vop_coverage": false
},
"clearing": {
"iid": "00230",
"name": "UBS Switzerland AG",
"type": "bank",
"town": "Zürich",
"sic": true,
"instant_payments_chf": true,
"eurosic": true,
"qr_iid": null
},
"formatted": "CH10 0023 0000 0000 1234 5",
"cost_usdc": 0
}Free testing
Use the /v1/demo endpoint to test the API without any payment setup:
curl https://api.ibanforge.com/v1/demoThis returns pre-validated example IBANs from multiple countries so you can explore the response format.
Next steps
- Onboarding — from zero to your first batch of 100, in ten minutes
- API keys — get your free key, 25/month without email, 200/month after email confirmation
- Validate a single IBAN — full endpoint reference
- Batch validation — validate up to 100 IBANs at once
- BIC/SWIFT lookup — search institution data by BIC code
- Compliance check — sanctions, FATF, VoP and risk score
- Swiss Clearing lookup — BC-Nummer, SIC and instant payments
- x402 micropayments — how autonomous payment works
- MCP integration — connect IBANforge to AI agents
- Error reference — all error codes and troubleshooting