IBAN Checker Validate API

The Validate API from IBAN Checker — 2 operation(s) for validate.

GitHub OpenAPI

Operations 2

POST /validate Validate a single IBAN #
POST /validate/bulk Validate up to 100 IBANs #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ibanchecker-cash:ibanchecker-cash-validate-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ibanchecker-cash-validate-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ibanchecker.cash Validate API
  version: 1.0.0
  description: REST API for IBAN validation across 92 countries. Validate single IBANs, validate up to 100 IBANs per request, extract IBANs from free text, look up country format specifications, and resolve SWIFT/BIC codes. No IBAN data is stored or logged; all validation runs in memory at the edge.
  termsOfService: https://ibanchecker.cash/terms
  contact:
    name: ibanchecker.cash support
    url: https://ibanchecker.cash/contact
    email: api@ibanchecker.cash
servers:
- url: https://ibanchecker.cash/api/v1
security:
- bearerAuth: []
tags:
- name: Validate
paths:
  /validate:
    post:
      operationId: validateIban
      summary: Validate a single IBAN
      description: Validates an IBAN using the ISO 13616 MOD-97-10 checksum, country-specific length and structure rules, and returns the parsed BBAN plus bank identification (name, BIC, city) where available. Requires an API key; each request counts against the plan's monthly quota.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - iban
              properties:
                iban:
                  type: string
                  description: IBAN to validate, with or without spaces
                  examples:
                  - DE89370400440532013000
      responses:
        '200':
          description: Validation result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Validate
  /validate/bulk:
    post:
      operationId: validateIbansBulk
      summary: Validate up to 100 IBANs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - ibans
              properties:
                ibans:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  maxItems: 100
                  description: Array of IBANs to validate
      responses:
        '200':
          description: Array of validation results in the same order as the request
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/ValidationResult'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      tags:
      - Validate
components:
  responses:
    RateLimited:
      description: Monthly quota of the key exceeded, or a call that costs more requests than remain (QUOTA_EXCEEDED, with Retry-After until the 1st of next month, UTC), or the hourly limit for /formats without a key (RATE_LIMIT_EXCEEDED)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The key's plan does not include this endpoint (PLAN_REQUIRED)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Malformed request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing, invalid or inactive API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    ValidationResult:
      type: object
      description: Result of validating one IBAN. When valid is false, only iban, formatted, country, country_name, error and error_code are present.
      properties:
        valid:
          type: boolean
        iban:
          type: string
        formatted:
          type:
          - string
          - 'null'
          description: IBAN grouped in blocks of four characters
        check_digits:
          type: string
        bban:
          type: string
        country:
          type:
          - string
          - 'null'
        country_name:
          type:
          - string
          - 'null'
        bank_name:
          type:
          - string
          - 'null'
        bank_type:
          type:
          - string
          - 'null'
        bic:
          type:
          - string
          - 'null'
        bank_city:
          type:
          - string
          - 'null'
        bank_code:
          type:
          - string
          - 'null'
        branch_code:
          type:
          - string
          - 'null'
        account_number:
          type:
          - string
          - 'null'
        national_check_valid:
          type:
          - boolean
          - 'null'
          description: Informational domestic account-validity check beyond the IBAN MOD-97 (e.g. Germany's per-bank Prüfziffer, the UK sort-code + account modulus check, the French/Monégasque and Italian/San Marino RIB & CIN checks, Iberian and Nordic schemes, ISO 7064 MOD 97-10). true = matches, false = mismatch (possible typo), null = not applicable. Never affects 'valid'.
        currency:
          type:
          - string
          - 'null'
        currency_name:
          type:
          - string
          - 'null'
        transfer_type:
          type:
          - string
          - 'null'
        sepa:
          type:
          - boolean
          - 'null'
        flag:
          type:
          - string
          - 'null'
        error:
          type: string
        error_code:
          type: string
    Error:
      type: object
      properties:
        error:
          type: string
        error_code:
          type: string
        upgrade_url:
          type: string
          format: uri
          description: 'Present on QUOTA_EXCEEDED, PLAN_REQUIRED and trial-limit errors: where to choose a larger plan.'
        required_plan:
          type: string
          description: 'Present on PLAN_REQUIRED: the smallest plan that includes the endpoint.'
        retry_after:
          type: integer
          description: 'Present on 429 responses: seconds until the limit resets.'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key issued at https://ibanchecker.cash/api-docs; the free key covers 100 requests a month of single validation. Required for every endpoint except /formats. Bulk validation and BIC lookup need the Basic plan, extraction the Growth plan; a free key whose address has a verified ibanchecker.cash account can try them (up to 10 IBANs per bulk call, 5,000 characters per extraction). Bulk and extraction count one request per IBAN. /formats works without a key, up to 100 requests an hour per IP.
x-provenance:
  method: harvested
  publisher: IBAN Checker
  source: https://ibanchecker.cash/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)