agentsvc.io

services / iban-validate

utilityoperational · 195 ms

IBAN Validation

Validate an IBAN (checksum, country length and structure), split it into bank code, branch and account number, report SEPA membership, and for DE, AT, CH, NL, BE, LU and LI add bank name, BIC and city. Params: iban (required, spaces allowed).

Run free trial ↗3 free calls per day with the example input. Paid: $0.002 USDC, no limit.

Call it

import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agentsvc.io/api/v1/proxy/iban-validate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({"iban":"DE89 3704 0044 0532 0130 00"}),
});
const { data, payment } = await res.json();  // payment.transaction = on-chain receipt

Input

FieldTypeDescription
iban *stringIBAN, spaces allowed

Output

FieldTypeDescription
ibanstring
validboolean
formattedstring
country_codestring
check_digitsstring
sepaboolean
expected_lengthinteger
bbanstring
bank_codestring
branch_codeany
account_numberstring
bankobject
checked_atstring

Example response (data)

{
  "iban": "DE89370400440532013000",
  "valid": true,
  "formatted": "DE89 3704 0044 0532 0130 00",
  "country_code": "DE",
  "check_digits": "89",
  "sepa": true,
  "expected_length": 22,
  "bban": "370400440532013000",
  "bank_code": "37040044",
  "branch_code": null,
  "account_number": "0532013000",
  "bank": {
    "name": "Commerzbank",
    "bic": "COBADEFFXXX",
    "city": "Köln",
    "zip": "50447",
    "source": "openiban.com"
  },
  "checked_at": "2026-10-06T14:17:43.668Z"
}