{"uid":"cap_gyNfTmMmDJ2UdSBsRetFM","slug":"duo-data-utilities-iban-validator-70c6bd0c","name":"Duo Data Utilities – IBAN Validator","description":"Validate an IBAN: length for its country, permitted character classes per field, and the ISO 7064 mod-97-10 check digits. Returns the verdict with a specific failure reason, the electronic and print formats, and the decomposed bank code, branch code and account number according to that country's registered layout. Covers the 89 countries of the SWIFT IBAN registry. Structure and checksum only, it does not confirm the account exists.","url":"https://api.duoleads.com/v1/id/iban?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["iban"],"properties":{"iban":{"type":"string","maxLength":64,"description":"The IBAN. Spaces and non-breaking spaces are stripped; lowercase is accepted and uppercased."}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["ok","route","version","data","meta"],"properties":{"ok":{"const":true},"data":{"type":"object","required":["valid","iban","iban_print","country","check_digits","bban","parts","length","expected_length","reason","algorithm"],"properties":{"bban":{"type":"string"},"iban":{"type":"string"},"parts":{"type":"object","required":["bank","branch","account"],"properties":{"bank":{"type":["string","null"]},"branch":{"type":["string","null"]},"account":{"type":["string","null"]}}},"valid":{"type":"boolean"},"length":{"type":"integer"},"reason":{"type":["string","null"]},"country":{"type":"string"},"algorithm":{"type":"string"},"iban_print":{"type":"string"},"check_digits":{"type":"string"},"expected_length":{"type":["integer","null"]}}},"meta":{"type":"object","required":["request_id","computed_at","price_usd","deterministic","disclaimer"],"properties":{"sources":{"type":"array","items":{"type":"object","required":["id","version","published"]}},"price_usd":{"type":"string"},"disclaimer":{"type":"string"},"request_id":{"type":"string"},"computed_at":{"type":"string","description":"RFC 3339 UTC with milliseconds"},"deterministic":{"type":"boolean"}}},"route":{"const":"/v1/id/iban"},"version":{"type":"string"}}}}}}},"responseSchema":{"type":"json","example":{"ok":true,"data":{"bban":"ABNA0417164300","iban":"NL91ABNA0417164300","parts":{"bank":"ABNA","branch":null,"account":"0417164300"},"valid":true,"length":18,"reason":null,"country":"NL","algorithm":"mod-97-10","iban_print":"NL91 ABNA 0417 1643 00","check_digits":"91","expected_length":18},"meta":{"sources":[{"id":"iban-registry","licence":"MIT","version":"ibantools 4.5.4, field layout schwifty 2026.7.3","published":"2026-04-10","attribution":"IBAN registry via ibantools (MIT); field offsets via schwifty (MIT); underlying data: SWIFT IBAN Registry, public"}],"price_usd":"0.05","disclaimer":"Factual output of a deterministic computation over public data. Provided as is, with no warranty of accuracy, completeness or availability. Not investment, financial, legal, tax, medical or any other professional advice, and not a recommendation. Verify before relying on it. Terms: https://api.duoleads.com/terms","request_id":"01K6B7Q4ZC8H3F2M9WXR5TYN0D","computed_at":"2026-09-28T12:00:00.000Z","deterministic":true},"route":"/v1/id/iban","version":"1.0.0"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.05","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.05/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_UPzt4SwgvUtP84dYZEaFk","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.05","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates an IBAN's structure, length, character classes, and mod-97-10 check digit, and returns the decomposed bank code, branch code, account number, plus electronic and print formats for 89 SWIFT-registered countries.","exampleAgentPrompt":"Can you validate the IBAN NL91ABNA0417164300 and tell me whether it's structurally correct, what its check digits are, and how it breaks down into bank code, branch, and account number?","exampleUseCases":[{"title":"Pre-payment IBAN sanity check","prompt":"Before I send a wire transfer, can you validate the recipient's IBAN DE89370400440532013000 — check if the format and check digits are correct and break it down into bank and account parts?"},{"title":"Catching a user entry error","prompt":"A customer entered the IBAN GB29NWBK6016133192681 on our checkout form — can you tell me if it's valid or exactly where it fails, so I can show them a helpful error message?"},{"title":"Displaying formatted IBAN on invoice","prompt":"I need to show the IBAN FR7630006000011234567890189 in the standard print format with spaces on our invoice — can you validate it and give me the properly spaced version?"}],"resultDescription":"A JSON object with a boolean valid field, a specific reason string if invalid (or null if valid), the normalized electronic IBAN, the print-formatted IBAN with spaces, the country code, check digits, the BBAN, decomposed parts (bank code, branch code, account number per that country's layout), the actual and expected lengths, and the algorithm name (mod-97-10). Metadata includes request ID, computation timestamp, price, and a deterministic flag.","failureModes":["Invalid or unknown country prefix — returns valid:false with reason indicating unrecognised country","Wrong length for the country — returns valid:false with expected_length and actual length","Bad character class in a field — returns valid:false with reason indicating character mismatch","Failed mod-97-10 checksum — returns valid:false with reason indicating check digit failure","Missing iban query parameter — returns HTTP 400 or validation error","IBAN passes structural checks but account does not actually exist — endpoint explicitly does not confirm account existence"],"whenToPreferThis":"Choose this endpoint when you need a fast, deterministic, offline-style structural check of an IBAN before initiating a payment or storing bank details — covering all 89 SWIFT-registered countries with decomposed field layout. Prefer this over a live bank-account-verification service when you only need format and checksum correctness, not account existence confirmation, and want cost-effective per-call pricing at $0.05 USDC.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-02T18:35:43.774Z","isFirstParty":false,"canonicalSlug":"duo-data-utilities-iban-validator-70c6bd0c"}