Docs/Skills/IBAN Validator

IBAN Validator

Validate an IBAN and break it into its parts

OperationalCredits 2 per callp50 131msData Validation

Overview

Validation follows the SWIFT IBAN registry and covers 124 countries and territories, including all 97 registry countries. Spaces, dashes and lower case are accepted. An invalid IBAN is not an error: it returns isValid false with the reasons, and the check digits it should have had.

Live Test IBAN Validator Skill →

The tool

Once your client is connected to the VerveKit server, this appears in its tool list as IBANValidator. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.

Tool call
{
  "name": "IBANValidator",
  "arguments": {
    "iban": "GB29NWBK60161331926819"
  }
}

You do not name the tool yourself; the model picks it. Asking about GB29NWBK60161331926819 in the terms this skill covers is enough for it to reach for IBANValidator on its own — naming it explicitly also works, and is the way to force the call.

Connecting

One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.

{
  "mcpServers": {
    "vervekit": {
      "url": "https://api.vervekit.com/v1/mcp"
    }
  }
}

Per-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.

Arguments

These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.

ArgumentTypeDescription
ibanRequiredstringThe IBAN to validate. Spaces, dashes and lower case are accepted
length 0–64

What the model gets back

The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.

Result
{
  "status": "ok",
  "error": null,
  "data": {
    "iban": "GB29NWBK60161331926819",
    "isValid": true,
    "formatted": "GB29 NWBK 6016 1331 9268 19",
    "countryCode": "GB",
    "countryName": "United Kingdom",
    "checkDigits": "29",
    "expectedLength": 22,
    "length": 22,
    "errors": [],
    "bban": "NWBK60161331926819",
    "bankCode": "NWBK",
    "branchCode": "601613",
    "accountNumber": "31926819",
    "nationalCheckDigits": null,
    "expectedCheckDigits": "29",
    "isSEPA": true,
    "isQRIBAN": false
  }
}

Response fields

Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.

FieldTypeExampleDescription
ibanstringGB29NWBK60161331926819The IBAN in electronic format (no spaces, upper case)
isValidbooleantrueTrue when the checksum, length, format and any national check digits are all correct
formattedstringGB29 NWBK 6016 1331 9268 19The IBAN in print format, in groups of four, or null when invalid
countryCodestringGBISO 3166-1 alpha-2 country code
countryNamestringUnited KingdomCountry name
checkDigitsstring29The two check digits as given
expectedLengthnumber22IBAN length for the country, or null when the country does not use IBANs
lengthnumber22Length of the IBAN given
errorsarray[]Why the IBAN is invalid; empty when valid
bbanPremiumstringNWBK60161331926819The Basic Bank Account Number (everything after the check digits)
bankCodePremiumstringNWBKBank identifier, where the country defines one
branchCodePremiumstring601613Branch identifier or sort code, where the country defines one
accountNumberPremiumstring31926819Domestic account number, for countries whose format fixes its position
nationalCheckDigitsPremiumobjectnullNational check digits inside the BBAN, where the country defines them
expectedCheckDigitsPremiumstring29The IBAN check digits the BBAN requires, which differ from checkDigits when the checksum is wrong
isSEPAPremiumbooleantrueTrue when the country is in the SEPA scheme
isQRIBANPremiumbooleanfalseTrue for a Swiss or Liechtenstein QR-IBAN

Failure modes

Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.

StatusWhat it means
400 / 422The arguments did not validate. The message names the offending one.
401The OAuth session is invalid or expired — reconnect the server.
403Blocked by a key restriction or an IP allow-list. Never a bad identity.
404This skill is not part of VerveKit. Check the catalog.
429Out of credits, or a brief rate limit. The message tells them apart.

A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.

Use cases

Payment Forms
Validate an IBAN as it is typed at checkout or payout setup, and show the reason it fails before a transfer bounces.
Supplier Onboarding
Check the bank details suppliers submit and pull out the bank and branch codes for your records.
SEPA Direct Debit
Confirm a customer's IBAN is valid and in a SEPA country before creating a mandate.
Data Cleaning
Normalise stored IBANs to electronic and print formats, and flag the ones with bad checksums.

Other ways to use IBAN Validator

Set up IBAN Validator on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.

Call it as a REST APIOne HTTPS endpoint and an x-api-key header, with SDKs for Node, Python and .NET.APIVerve →Reference →
Google Sheets or ExcelA =VERVE() formula fills a column — no script, no export, recalculates in place.VerveSheets →Reference →
Ground an agent on itA cited, machine-checkable fact your model can't produce on its own.VerveContext →Reference →

More in Data Validation:

Was this page helpful?