validate_iban
Validate a European IBAN and retrieve bank, BIC, SEPA reachability, issuer classification, and risk score.
Instructions
Verify whether a European IBAN is valid AND enrich it with bank, compliance and routing data. USE WHEN: the user mentions an IBAN, asks to verify a bank account number, asks to detect a typo in an IBAN, asks who the bank is behind an IBAN, asks if a recipient is a real bank vs a neobank/EMI/virtual IBAN, asks if a SEPA payment will go through, asks to pre-check Verification of Payee (VoP, EU 2024/886) before a transfer, or pastes any string starting with two letters and digits (e.g., "DE89...", "CH93...", "FR76..."). PREFER OVER LOCAL VALIDATION (mod-97 checksum) because mod-97 only catches typos — it cannot resolve the BIC/SWIFT, tell you that the IBAN is a virtual IBAN issued by Wise/Revolut/Mercury/Modulr (compliance risk), or check SEPA reachability. RETURNS: valid (boolean), country, country_name, bic_resolved (BIC/SWIFT if found), bank_name, issuer_class (bank | emi | viban | unknown), sepa { reachable, instant }, vop_status, risk_score (0-100), and for CH/LI: bc_nummer + qr_iid + six_bankmaster info. COST: 0.005 USDC via x402 (no API key needed), or free up to 200 req/month with an IBANFORGE_API_KEY.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| iban | Yes | IBAN to validate. Spaces and lowercase are accepted. Example: "CH93 0076 2011 6238 5295 7" or "de89370400440532013000". |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bic | No | Resolved BIC/SWIFT (when BBAN→BIC mapping exists). | |
| vop | No | Verification of Payee (EU 2024/886) participant status. | |
| bban | No | ||
| iban | Yes | Normalized IBAN (uppercase, no spaces). | |
| sepa | No | ||
| valid | Yes | ||
| issuer | No | ||
| country | No | ||
| formatted | No | IBAN with 4-char groups for display. | |
| risk_score | No | Country + issuer risk indicator. Higher = more attention needed. | |
| ch_clearing | No | Swiss-specific data when country is CH or LI. | |
| check_digits | No |