ibanforge
IBANforge is an API server for IBAN validation, BIC/SWIFT lookup, and financial compliance checks, with micropayment billing and AI agent integration.
Validate a single IBAN (
validate_iban): Check validity with full mod-97 checksum and BBAN structure parsing across 84 countries, returning BIC/SWIFT, bank name, SEPA membership, payment schemes (SCT/SDD/SCT_INST), issuer classification (bank, neobank, EMI, payment institution), and risk indicators. ($0.005/call)Batch validate IBANs (
batch_validate_iban): Validate up to 100 IBANs in a single call with the same detailed results at a reduced cost ($0.002/IBAN) — ideal for payment files, supplier lists, or KYC checks.Look up a BIC/SWIFT code (
lookup_bic): Retrieve full institution details (name, country, city, branch, LEI identifier and regulatory status) from a database of 39,000+ institutions via GLEIF.Run a compliance check (
compliance_check): Full AML/KYC assessment including sanctions screening, SEPA reachability, Verification of Payee (VoP) participation, FATF country risk, and a composite risk score (0–100) with level (low/medium/elevated/high/critical) and detailed flags.Swiss clearing lookup (
lookup_ch_clearing): Retrieve Swiss BC-Nummer/IID data including SIC, euroSIC, Instant Payments, and QR-IID details for CH/LI IBANs (1,190 entries).AI agent integration: All tools are exposed via the Model Context Protocol (MCP) for automated use in AI agent workflows.
Micropayment billing: Pay-per-call using x402 micropayments (USDC on Base L2), ranging from $0.002 to $0.02 per request.
Self-hosting: Deploy via Docker, Railway, or locally using SQLite with no external dependencies.
IBANforge
The compliance API for AI agents. IBAN validation, BIC/SWIFT lookup, Swiss clearing (BC-Nummer / QR-IID / SIX BankMaster), EMI/vIBAN classification, SEPA Instant + VoP reachability, and risk scoring — exposed natively over MCP and x402 micropayments, with no API key signup required.
121,197 BIC entries (GLEIF) · 1,190 Swiss BC-Nummern (SIX) · 84 IBAN countries · <50ms p99For AI agents — install in one click
Claude Desktop / Cursor / Cline / Continue / Windsurf
Add to your MCP config (~/Library/Application Support/Claude/claude_desktop_config.json for Claude Desktop):
{
"mcpServers": {
"ibanforge": {
"command": "npx",
"args": ["-y", "ibanforge-mcp"]
}
}
}Optional: set IBANFORGE_API_KEY=ifk_... in env for the free tier (200 req/month). Without it the server uses the public/demo surface; combine with x402 micropayments for unlimited pay-per-call access without signup.
Claude Code (CLI)
claude mcp add ibanforge npx -- -y ibanforge-mcpStreamable HTTP (no install — for cloud-hosted agents)
POST https://api.ibanforge.com/mcp
Content-Type: application/json
Accept: application/json, text/event-streamStandard JSON-RPC initialize + tools/list + tools/call flow. Use this when stdio is not an option (CI/CD, serverless, Vercel agents, etc.).
5 MCP tools
Tool | When to use it | Cost |
| User mentions an IBAN, a bank account, or a SEPA payment | $0.005 |
| List of IBANs, CSV cleanup, customer DB dedup, payout list triage | $0.002/each |
| User already has a BIC/SWIFT — backed by 121,197 GLEIF entries with LEI enrichment | $0.003 |
| Swiss BC-Nummer / IID — the only API with this data (1,190 SIX BankMaster entries) | $0.003 |
| Pre-flight risk triage before a SEPA / cross-border payment (sanctions + FATF + VoP) | $0.02 |
Full descriptions with WHEN-to-use triggers are served live at /.well-known/mcp/server-card.json.
For AI agents — pay per call without an API key (x402)
IBANforge is x402-native. Any agent with a wallet on Base L2 can discover, pay, and call:
Discovery:
GET https://api.ibanforge.com/.well-known/x402returns the full catalog (endpoints, prices, asset, payTo, accepts).Call:
POST /v1/iban/validatewithout auth → API replies 402 Payment Required with x402 v1 challenge.Pay: client signs a USDC transfer on Base (eip155:8453) and retries.
Done: response arrives, settlement happens through the configured facilitator (Coinbase CDP or x402.org).
No human in the loop, no sales call, no card. See the x402 spec.
SDKs
Pick your language:
Language | Package | Install | Source |
TypeScript / JavaScript |
| ||
Python |
| ||
MCP server |
| ||
Curl / any HTTP client | — | — |
The Python SDK ships with sync + async clients, typed exception classes, and a free-tier quota fallback to x402 baked in:
from ibanforge import IBANforge
# 1-line free key (200 req/month, no signup form)
key = IBANforge.generate_api_key("you@example.com")
with IBANforge(api_key=key["api_key"]) as client:
out = client.validate_iban("CH9300762011623852957")
print(out["country"]["code"]) # CH
print(out["bic"]["bankName"]) # UBS Switzerland AG
print(out["sepa"]["instant"]) # True
# Or the free format-only check (mod-97 + structure, no DB hit)
out = IBANforge().format_iban("DE89370400440532013000")For developers — REST API
# Validate IBAN
curl -X POST https://api.ibanforge.com/v1/iban/validate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ifk_..." \
-d '{"iban":"CH93 0076 2011 6238 5295 7"}'
# Lookup BIC
curl https://api.ibanforge.com/v1/bic/UBSWCHZH80A
# Free format pre-flight (no auth, mod-97 only)
curl 'https://api.ibanforge.com/v1/iban/format?iban=CH9300762011623852957'
# Free demo (no auth)
curl https://api.ibanforge.com/v1/demoMethod | Path | Cost | Description |
|
| $0.005 | Single IBAN — BIC + SEPA + issuer + risk + Swiss bc_nummer |
|
| $0.002/IBAN | Up to 100 IBANs in one call |
|
| $0.003 | BIC/SWIFT lookup with LEI |
|
| $0.003 | Swiss BC-Nummer / IID — SIC, euroSIC, QR-IID |
|
| $0.02 | Sanctions + FATF + SEPA Instant + VoP + risk score 0-100 |
|
| free | Pure mod-97 + structure check, no DB hit |
|
| free | Example validations, no auth |
|
| free | Health + DB status |
|
| free | Generate an |
Full OpenAPI 3.1: api.ibanforge.com/openapi.json.
Why prefer IBANforge over local mod-97 validation?
Local mod-97 catches typos. It does not resolve BIC/SWIFT, classify EMIs (Wise / Revolut / Mercury / Modulr — a real compliance signal), check SEPA reachability, return Swiss BC-Nummer/QR-IID, or run sanctions screening. IBANforge does, in a single call.
Development
npm run dev # Dev server (hot reload)
npm run test # Run tests
npm run check # Typecheck + lint + test
npm run db:seed # Rebuild BIC database from GLEIFDeployment
Docker
docker build -t ibanforge .
docker run -p 3000:3000 --env-file .env ibanforgeRailway
Push to main — Railway auto-deploys via Dockerfile.
Environment Variables
Variable | Required | Description |
| No | Server port (default: 3000) |
| Yes (prod) | x402 USDC wallet address |
| Yes (prod) | x402 facilitator endpoint |
Data Sources
121,197 BIC/SWIFT entries: GLEIF BIC-LEI mapping, refreshed weekly
LEI enrichment: GLEIF API
1,190 Swiss BC-Nummern / IIDs: Official SIX BankMaster CSV
EMI / vIBAN classification: Curated set of 85+ known issuer BIC8 prefixes (Wise, Revolut, N26, Mercury, Modulr, etc.)
VoP participants: EBA RT1 / SCT Inst directories
Country names: Node.js
Intl.DisplayNamesAPI
Resources for AI agents
llms.txt— short summary + recommended starter prompt/.well-known/x402— x402 discovery (machine-readable catalog)/.well-known/mcp/server-card.json— MCP server card with all 5 tool descriptions/.well-known/agents.json— Google A2A agent capabilities/openapi.json— OpenAPI 3.1 specnpm
ibanforge-mcp— stdio MCP serverMCP Registry — official listing
License
MIT — see LICENSE.
This project includes third-party components licensed under the Apache License 2.0
(notably @coinbase/x402 and related x402 packages). See NOTICE for
full attributions and required Apache 2.0 notices.
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cammac-creator/ibanforge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server