{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/ibanchecker-cash/json-schema/ibanchecker-cash-validation-result-schema.json",
  "title": "ValidationResult",
  "description": "Result of validating one IBAN. When valid is false, only iban, formatted, country, country_name, error and error_code are present.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/ibanchecker-cash-validate-api-openapi.yml#/components/schemas/ValidationResult",
  "type": "object",
  "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"
    }
  }
}