IBANforge
For AI Agents

Built for autonomous agents.

IBANforge is the only IBAN/BIC/compliance API that combines a native MCP server, x402 micropayments, and a free API key — all without human onboarding. Three integration paths, 60-second setup.

Three ways for an agent to use IBANforge

Path 1 · MCP

Native MCP server

Drop into Claude Desktop, Cursor, or Cline. 5 tools auto-discovered. Best for desktop agents and IDE assistants.

Stdio or HTTP · npm or remote

Path 2 · Free key

Free API key

POST any email, get a key with 200 free calls/month. No verification, no captcha. Best for prototyping or low-volume agents.

Header: Authorization: Bearer ifk_…

Path 3 · x402

Pay-per-call x402

Use a wallet on Base L2, agent pays USDC autonomously. No signup, no quota. Best for high-volume agents and zero-friction integrations.

USDC on Base · Coinbase CDP facilitator

Path 1 · MCP

Install in Claude Desktop, Cursor or Cline

The IBANforge MCP server exposes 5 tools to your AI client. Two transports: stdio via npm package or remote streamable-HTTP.

Stdio · Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows).

json
{
  "mcpServers": {
    "ibanforge": {
      "command": "npx",
      "args": ["-y", "ibanforge-mcp"]
    }
  }
}

HTTP · remote endpoint

Point any MCP-compatible client to:

https://api.ibanforge.com/mcp

5 tools available

validate_iban$0.005

Validate any IBAN. Returns BIC, country, EMI/vIBAN flag, SEPA + VoP, risk score, Swiss BC-Nummer for CH/LI.

batch_validate_iban$0.002 / IBAN

Up to 100 IBANs in one call — CSV cleanup, payout list triage.

lookup_bic$0.003

Resolve a BIC/SWIFT into bank name, country, city, LEI, address. 121,000+ BIC entries (38K LEI-enriched via GLEIF).

lookup_ch_clearing$0.003

Resolve a Swiss BC-Nummer / IID. Only API exposing SIC, euroSIC, QR-IID — 1,190 SIX entries.

check_compliance$0.02

Pre-flight risk triage: sanctions (OFAC/EU/UN), FATF, SEPA Instant, VoP. Returns risk_score 0-100.

Path 2 · Free key

200 free calls/month — no signup

POST your agent's email and receive a key. The key is shown once. Add it as Authorization: Bearer ifk_… on every call.

bash
curl -X POST https://api.ibanforge.com/v1/keys/generate \
  -H "Content-Type: application/json" \
  -d '{"email":"agent@yourdomain.com"}'

# → returns { "api_key": "ifk_...", "monthly_limit": 200 }

When the monthly quota is exhausted, the API automatically falls back to x402: the same agent can keep calling, paying $0.005 per request, with no extra setup until the quota resets on the 1st of the next month.

SDKs

Drop-in libraries

Skip the HTTP wiring. Type-safe clients with sync + async, retry-aware exception classes, and a free-tier quota fallback to x402 baked in.

python
# pip install ibanforge
from ibanforge import IBANforge

# Generate a free key in one line
key = IBANforge.generate_api_key("agent@yourdomain.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
    print(out["risk_score"])           # 5

    # Compliance triage in one call ($0.02)
    out = client.check_compliance("GB29NWBK60161331926819")
    print(out["recommended_action"])   # "allow" | "review" | "block"

# Async path (FastAPI / LangChain async / fan-out)
import asyncio
from ibanforge import AsyncIBANforge

async def main():
    async with AsyncIBANforge(api_key=key["api_key"]) as client:
        results = await asyncio.gather(*[
            client.validate_iban(iban) for iban in many_ibans
        ])
typescript
// npm install @ibanforge/sdk
import { IBANforge } from "@ibanforge/sdk";

const ibanforge = new IBANforge({ apiKey: "ifk_..." });

const out = await ibanforge.validateIban({
  iban: "CH9300762011623852957",
});

console.log(out.country.code);          // CH
console.log(out.bic?.bankName);         // UBS Switzerland AG
console.log(out.sepa.instant);          // true
Path 3 · x402

Pay-per-call in USDC on Base

No quota, no signup, no email. Your agent's wallet signs an authorization, the Coinbase CDP facilitator settles the payment, and the API returns the response. ~1-2 second round-trip.

typescript
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/fetch";
import { ExactEvmScheme, toClientEvmSigner } from "@x402/evm";
import { createPublicClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { base } from "viem/chains";

const account = privateKeyToAccount(process.env.WALLET_KEY as `0x${string}`);
const publicClient = createPublicClient({ chain: base, transport: http() });
const evmSigner = toClientEvmSigner(account, publicClient);

const client = new x402Client()
  .register("eip155:8453", new ExactEvmScheme(evmSigner));

const paid = wrapFetchWithPayment(fetch, client);

const r = await paid("https://api.ibanforge.com/v1/iban/validate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ iban: "CH9300762011623852957" }),
});
// pays $0.005 USDC autonomously, returns 200 with the response

Pricing is advertised on every paid endpoint via 402 responses with full payment requirements (network: base, asset: USDC, payTo, amount, schema). Listed on Coinbase Bazaar discovery for autonomous discovery.

5 paid endpoints, all available via MCP + x402 + API key

Same data, three integration paths.

POST/v1/iban/validate$0.005
POST/v1/iban/batch$0.002 / IBAN
GET/v1/bic/:code$0.003
GET/v1/ch/clearing/:iid$0.003
POST/v1/iban/compliance$0.02
Auto-discovery

Machine-readable metadata

Standard discovery endpoints for agents that crawl the web for usable APIs:

Ready when your agent is.

Free key in 1 line. MCP install in 30 seconds. x402 settles in 2 seconds.

Open the playground