{"api":"v1","generated_at":"2026-09-15T18:50:14.785Z","licence":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/","attribution":"TOLL, with a link to the page cited"},"page":"https://tollindex.com/e/api-ibanforge-com-v1-iban-batch-faa6a1","pinned_page":"https://tollindex.com/e/api-ibanforge-com-v1-iban-batch-faa6a1/at/2026-09-15T16-57Z","pinned":false,"method":"https://tollindex.com/ledger/method","snapshot_at":"2026-09-15T16:57:44.360Z","snapshot_stamp":"2026-09-15T16-57Z","endpoint":{"slug":"api-ibanforge-com-v1-iban-batch-faa6a1","canonical_url":"https://api.ibanforge.com/v1/iban/batch","resource":"https://api.ibanforge.com/v1/iban/batch","http_method":"POST","type":"http","x402_version":2,"registries":["cdp"],"primary_registry":"cdp","curated_by_coinbase":false,"description":"Validate up to 100 IBANs in one call at $0.002 per IBAN (2.5x cheaper per IBAN than single calls at $0.005, and one settlement instead of N). Use for CSV cleanup, customer DB dedup, or pre-flight payout list triage. Production · server processing <5ms (network excluded — measure your own round trip on GET /ping) for a 100-IBAN batch · 121,000+ BICs · v1.4.3.","service_name":"IBANforge","declared_category":null,"declared_tags":["iban","bic","sepa","compliance","banking"],"route_template":null,"registry_updated":"2026-08-17T05:18:50.238Z"},"derived":{"note":"fields no registry supplies; TOLL derives them and marks them derived on the page","title":"iban batch","category":"search","first_observed_by_toll":"2026-09-10T19:08:24.178Z","last_observed_by_toll":"2026-09-15T16:57:44.360Z","observation_began":"2026-09-10"},"presence":{"listed_now":true,"first_absent_at":null,"delisting_confirmed_at":null,"events":[{"registry":"cdp","at":"2026-09-10T19:08:24.178Z","event":"listed"}]},"accepts":[{"registry":"cdp","ordinal":0,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","asset_name":"USD Coin","symbol":"USDC","decimals":6,"amount_display":"0.004 USDC","amount_units":0.004,"decimals_known":true,"pay_to":"0xD13bD0A4120BA301125290e5cc0c7EFD4CB40a55","scheme":"exact"}],"counters":{"observed_at":"2026-09-15T16:57:44.360Z","calls_30d":1,"unique_payers_30d":1,"last_called_at":"2026-08-17T05:18:49.630Z"},"validation":{"latest":{"observed_at":"2026-09-15T07:06:47.452Z","state":"pass","failed_checks":[],"endpoint_http_status":402,"run_id":"daily-2026-09-15"},"uptime":[{"days":7,"observed":5,"passed":4,"ratio":0.8},{"days":30,"observed":5,"passed":4,"ratio":0.8},{"days":90,"observed":5,"passed":4,"ratio":0.8}],"history_90d":[{"observed_at":"2026-09-15T07:06:47.452Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-15","state_changed":false},{"observed_at":"2026-09-14T06:32:48.566Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-14","state_changed":false},{"observed_at":"2026-09-13T06:22:02.285Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-13","state_changed":false},{"observed_at":"2026-09-12T13:55:19.189Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-12","state_changed":true},{"observed_at":"2026-09-11T14:51:51.670Z","state":"fail","failed_checks":[],"run_id":"daily-2026-09-11","state_changed":true}]},"seller":{"wallet":"0xD13bD0A4120BA301125290e5cc0c7EFD4CB40a55","page":"https://tollindex.com/seller/0xD13bD0A4120BA301125290e5cc0c7EFD4CB40a55","endpoints":5,"hosts":1},"reports":0,"registry_record":{"cdp":[{"tags":["iban","bic","sepa","compliance","banking"],"type":"http","accepts":[{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"name":"USD Coin","version":"2"},"payTo":"0xD13bD0A4120BA301125290e5cc0c7EFD4CB40a55","amount":"4000","scheme":"exact","network":"eip155:8453","maxTimeoutSeconds":60}],"quality":{"lastCalledAt":"2026-08-17T05:18:49.63Z","l30DaysTotalCalls":1,"l30DaysUniquePayers":1},"resource":"https://api.ibanforge.com/v1/iban/batch","extensions":{"bazaar":{"info":{"input":{"body":{"ibans":["CH1000230000000012345","DE89370400440532013000"]},"type":"http","method":"POST","schema":{"type":"object","required":["ibans"],"properties":{"ibans":{"type":"array","items":{"type":"string"},"maxItems":100,"minItems":1,"description":"Array of 1 to 100 IBAN strings."}}},"bodyType":"json","discoverable":true},"output":{"type":"json","example":{"count":2,"results":[{"bic":{"city":"Zürich","code":"UBSWCHZH","bank_name":"UBS Switzerland AG"},"iban":"CH1000230000000012345","valid":true,"country":{"code":"CH","name":"Switzerland"}},{"bic":{"city":"Köln","code":"COBADEFFXXX","bank_name":"Commerzbank"},"iban":"DE89370400440532013000","valid":true,"country":{"code":"DE","name":"Germany"}}],"cost_usdc":0.004,"valid_count":2,"_example_notice":"ILLUSTRATIVE SAMPLE — these are demo values for a fixed record, NOT the data for the resource you requested. Do not report them to a user. Authenticate (Authorization: Bearer ifk_...) or pay via x402 to get the real response."}}},"schema":{"properties":{"input":{"required":["method"],"properties":{"method":{"enum":["POST"],"type":"string"}}}}},"bodyType":"json","inputSchema":{"type":"object","required":["ibans"],"properties":{"ibans":{"type":"array","items":{"type":"string"},"maxItems":100,"minItems":1,"description":"Array of 1 to 100 IBAN strings."}}},"discoverable":true,"outputSchema":{"type":"object","properties":{"count":{"type":"number","description":"Total IBANs processed."},"results":{"type":"array","items":{"type":"object","properties":{"bic":{"type":"object","properties":{"city":{"type":"string"},"code":{"type":"string"},"bank_name":{"type":"string"}},"description":"Resolved BIC/SWIFT (when BBAN→BIC mapping exists). Null when unresolved."},"bban":{"type":"object","properties":{"bank_code":{"type":"string"},"branch_code":{"type":"string"},"account_number":{"type":"string"}}},"iban":{"type":"string","description":"Normalized IBAN (uppercase, no spaces)."},"sepa":{"type":"object","properties":{"member":{"type":"boolean"},"schemes":{"type":"array","items":{"enum":["SCT","SDD","SCT_INST"],"type":"string"}},"vop_required":{"type":"boolean","description":"Verification of Payee (EU 2024/886) obligation for this country."}}},"valid":{"type":"boolean"},"issuer":{"type":"object","properties":{"name":{"type":"string"},"type":{"enum":["bank","digital_bank","emi","payment_institution"],"type":"string"},"classification":{"enum":["curated","default"],"type":"string","description":"curated = identified from the issuer set; default = 'bank' fallback, 97.9% of BIC8."}}},"country":{"type":"object","properties":{"code":{"type":"string","description":"ISO 3166-1 alpha-2."},"name":{"type":"string"}}},"clearing":{"type":"object","properties":{"iid":{"type":"string","description":"5-digit zero-padded BC-Nummer."},"sic":{"type":"boolean"},"name":{"type":"string"},"town":{"type":"string"},"type":{"enum":["bank","cantonal_bank","postfinance","raiffeisen","central_bank","foreign_participant"],"type":"string"},"qr_iid":{"type":"string","description":"QR-IID allocation, null when none."},"eurosic":{"type":"boolean"},"instant_payments_chf":{"type":"boolean"}},"description":"Swiss clearing data when country is CH or LI and the IID is in the SIX BankMaster. Null otherwise."},"cost_usdc":{"type":"number"},"formatted":{"type":"string","description":"IBAN with 4-char groups, e.g. CH10 0023 0000 0000 1234 5."},"next_steps":{"type":"array","items":{"type":"object","required":["code","do","because"],"properties":{"do":{"type":"string","description":"The instruction, in one sentence an agent can relay to a person."},"code":{"type":"string","description":"Stable identifier. Today: bank_code_not_allocated (the national register denies the code, do not send), bank_code_retired (allocated but being withdrawn, re-paper against superseded_by), verify_payee_name (we cannot confirm it, treat as unavailable and let a name check decide), bic_is_advisory (the BIC was picked from several candidates), issuer_not_a_known_iban_issuer (the code resolves to a BIC, but its holder is not among the providers known to issue IBANs in that country), test_bic, expect_virtual_iban (curated non-bank issuer, account holder and IBAN holder often differ), screen_compliance, generate_payment_qr (partner handoff to PayQR on a register-confirmed SEPA account: generate and self-check a SPAYD or EPC/GiroCode payment QR)."},"action":{"type":"string","description":"The call that performs the step, when one exists: an IBANforge endpoint, or the partner site for a partner handoff."},"because":{"type":"string","description":"The field of this response that produced the step, so the advice is auditable."}}},"description":"Ordered advice derived from THIS result: what blocks a payment first, what merely enriches it after. Branch on `code`, never on the prose. Absent or empty for an IBAN that failed validation, since the error already says what to do."},"check_digits":{"type":"string"},"processing_ms":{"type":"number"},"bank_code_check":{"type":"object","required":["value","status","match","register","authoritative","as_of"],"properties":{"as_of":{"type":"string","description":"Year-month the consulted reference set was last refreshed."},"match":{"enum":["register","prefix",null],"type":["string","null"],"description":"register: exact key in the reference set, deterministic. prefix: the bic8 LIKE fallback, reachable only in the 30 countries whose bank code may open on a letter (a BIC8 always does) — check candidates."},"value":{"type":"string","description":"The bank code that was actually checked. Normally identical to bban.bank_code. It differs in Finland, where the monetary institution code is 1 to 4 characters depending on its leading digits while bban.bank_code stays the fixed positional slice: a Nordea IBAN carries bban.bank_code \"123\" and value \"1\". When they differ, this field is the one the verdict is about."},"status":{"enum":["verified","not_in_register","unavailable"],"type":"string","description":"verified: resolves to an institution we can name. not_in_register: it does not, in reference data we do hold for this country — actionable as non-existence ONLY when authoritative is true. unavailable: we hold no reference data for this country, so no opinion."},"retired":{"type":"boolean","description":"Present and true when an authoritative register marks the code for deletion: the institution is being retired. The code WAS allocated, so this is a verified result, not a denial. See superseded_by."},"register":{"type":["string","null"],"description":"Name of the reference set consulted."},"candidates":{"type":"integer","description":"BIC8 the prefix search matched. Present only for match=prefix. Greater than 1 means the returned BIC is one of several and may belong to a different institution than the account does."},"institution":{"type":"object","required":["name","street","post_code","town","country"],"properties":{"lei":{"type":["string","null"],"description":"Legal Entity Identifier, where the register publishes one (the OeNB does, 99% of entries)."},"name":{"type":"string"},"town":{"type":["string","null"]},"street":{"type":["string","null"],"description":"One line, house number included, matching the GLEIF shape. Null where the register publishes none (DE, BE)."},"country":{"type":"string"},"post_code":{"type":["string","null"]}},"description":"What the national register publishes about the allocated institution. Present only on an authoritative answer — composite-map hits stay bare (naming a BIC holder is the bic block, and its address would imply a register that was not consulted). Depth varies by register: SIX (CH/LI) and the OeNB (AT) publish the full seat address, the Bundesbank (DE) publishes postal code and town only, the BNB (BE) publishes names alone; Finland stays without this block, its codes belong to banking groups. Absent fields are null, never guessed. This is the institution allocated the BANK CODE — not a branch, and not proof of any account."},"authoritative":{"type":"boolean","description":"True only where that reference set is the national register: today CH and LI against the SIX BankMaster, DE against the Bundesbank Bankleitzahlendatei, FI against the Finance Finland monetary institution list, AT against the Oesterreichische Nationalbank SEPA-Zahlungsverkehrs-Verzeichnis, and BE against the Banque nationale de Belgique bank identification codes. This is the flag to branch on: everywhere else an absence is evidence of absence from our data, not of non-existence. One asymmetry worth knowing: CH, LI, DE, AT and BE allocate codes to individual institutions, while FI allocates prefixes to banking groups, so a Finnish verified confirms the group and its BIC rather than one specific bank. The negative direction carries full weight in all six."},"superseded_by":{"type":"string","description":"The bank code that takes over, when the register names one. Re-paper the beneficiary against it."}},"description":"Separate verdict on the BBAN bank code. `valid` answers ISO 13616 (structure + mod-97) and says nothing about whether the bank code identifies an institution; this field answers that, and states how much weight the answer carries. Present only when the IBAN is valid."},"risk_indicators":{"type":"object","properties":{"test_bic":{"type":"boolean"},"issuer_type":{"enum":["bank","digital_bank","emi","payment_institution",null],"type":["string","null"],"description":"Null when no institution resolved. It no longer defaults to \"bank\" for an institution we did not find."},"country_risk":{"enum":["standard","elevated","high"],"type":"string"},"vop_coverage":{"type":"boolean"},"sepa_reachable":{"type":"boolean"},"sepa_reachable_scope":{"enum":["country"],"type":"string","description":"Scope sepa_reachable holds at. Derived from the country, never from the account."}},"description":"AML/CFT pre-screening indicators."}}}},"cost_usdc":{"type":"number","description":"Actual USDC charged for this call."},"valid_count":{"type":"number","description":"Number of valid IBANs."}}}}},"description":"Validate up to 100 IBANs in one call at $0.002 per IBAN (2.5x cheaper per IBAN than single calls at $0.005, and one settlement instead of N). Use for CSV cleanup, customer DB dedup, or pre-flight payout list triage. Production · server processing <5ms (network excluded — measure your own round trip on GET /ping) for a 100-IBAN batch · 121,000+ BICs · v1.4.3.","lastUpdated":"2026-08-17T05:18:50.238Z","serviceName":"IBANforge","x402Version":2}]}}