{
 "generated": "2026-10-16",
 "source": "IBAN registry examples (iban.com), variants derived mechanically; every expected code and bank flag recorded from the IBAN Validation API v4 on 2026-10-16",
 "legend": [
  {
   "key": "chars",
   "ok": "006",
   "ok_text": "IBAN does not contain illegal characters",
   "fail": "206",
   "fail_text": "IBAN contains illegal characters"
  },
  {
   "key": "iban",
   "ok": "001",
   "ok_text": "IBAN check digit is correct",
   "fail": "202",
   "fail_text": "IBAN check digit not correct"
  },
  {
   "key": "length",
   "ok": "003",
   "ok_text": "IBAN length is correct",
   "fail": "203",
   "fail_text": "IBAN length is not correct"
  },
  {
   "key": "structure",
   "ok": "005",
   "ok_text": "IBAN structure is correct",
   "fail": "205",
   "fail_text": "IBAN structure is not correct"
  },
  {
   "key": "account",
   "ok": "002",
   "ok_text": "Account number check digit is correct (004: not performed for this bank or branch)",
   "fail": "201",
   "fail_text": "Account number check digit not correct"
  },
  {
   "key": "country",
   "ok": "007",
   "ok_text": "Country supports IBAN standard",
   "fail": "207",
   "fail_text": "Country does not support IBAN standard"
  }
 ],
 "countries": [
  {
   "code": "AD",
   "name": "Andorra",
   "sepa": true,
   "length": 24,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "AD1400080001001234567890",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "AD1500080001001234567890",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 14 to 15; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "AD31000800010012345678900",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "AD80A0080001001234567890",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for AD; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "AD140008000100123456789!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "AD1499990001001234567890",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "AE",
   "name": "United Arab Emirates",
   "sepa": false,
   "length": 23,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "AE460090000000123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "AE470090000000123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 46 to 47; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "AE8700900000001234567890",
     "title": "Wrong length",
     "note": "One digit appended (24 characters instead of 23); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "AE72A090000000123456789",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for AE; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "AE46009000000012345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 22 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "AE319990000000123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "AL",
   "name": "Albania",
   "sepa": true,
   "length": 28,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "AL35202111090000000001234567",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "AL36202111090000000001234567",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 35 to 36; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "AL692021110900000000012345670",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "AL64A02111090000000001234567",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for AL; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "AL3520211109000000000123456!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "AL24999111090000000001234567",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "AT",
   "name": "Austria",
   "sepa": true,
   "length": 20,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "AT483200000012345864",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check is not performed for this bank (004). The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "AT493200000012345864",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 48 to 49; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "AT2732000000123458640",
     "title": "Wrong length",
     "note": "One digit appended (21 characters instead of 20); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "AT79A200000012345864",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for AT; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "AT48320000001234586!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 19 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "AT699999900012345864",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. With the bank unknown the account check is not performed (004).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "AZ",
   "name": "Azerbaijan",
   "sepa": false,
   "length": 28,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "AZ77VTBA00000000001234567890",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "AZ78VTBA00000000001234567890",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 77 to 78; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "AZ91VTBA000000000012345678900",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "AZ280TBA00000000001234567890",
     "title": "Wrong structure",
     "note": "Position 5 must be a letter for AZ; a digit is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "AZ77VTBA0000000000123456789!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "AZ02ZZZZ00000000001234567890",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "BA",
   "name": "Bosnia and Herzegovina",
   "sepa": false,
   "length": 20,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "BA393385804800211234",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "BA403385804800211234",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 39 to 40; the ISO 7064 MOD 97-10 test fails. BA IBANs always carry the check digits 39, so the structure test fails as well (205).",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "BA8733858048002112340",
     "title": "Wrong length",
     "note": "One digit appended (21 characters instead of 20); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "BA70A385804800211234",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for BA; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "BA39338580480021123!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 19 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "BA603385804800211244",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 19) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201). The recomputed check digits 60 are not the fixed 39 of BA IBANs, so the structure test fails too (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "BA549995804800211234",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank. The recomputed check digits 54 are not the fixed 39 of BA IBANs, so the structure test fails (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "BE",
   "name": "Belgium",
   "sepa": true,
   "length": 16,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "BE71096123456769",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "BE72096123456769",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 71 to 72; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "BE300961234567690",
     "title": "Wrong length",
     "note": "One digit appended (17 characters instead of 16); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "BE79A96123456769",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for BE; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "BE7109612345676!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 15 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "BE92096123456779",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 15) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "BE79999123456769",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "BG",
   "name": "Bulgaria",
   "sepa": true,
   "length": 22,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "BG19STSA93000123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "BG20STSA93000123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 19 to 20; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "BG49STSA930001234567890",
     "title": "Wrong length",
     "note": "One digit appended (23 characters instead of 22); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "BG97STSAA3000123456789",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for BG; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "BG19STSA9300012345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 21 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "BG68ZZZZ93000123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "BH",
   "name": "Bahrain",
   "sepa": false,
   "length": 22,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "BH02CITI00001077181611",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "BH03CITI00001077181611",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 02 to 03; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "BH03CITI000010771816110",
     "title": "Wrong length",
     "note": "One digit appended (23 characters instead of 22); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "BH830ITI00001077181611",
     "title": "Wrong structure",
     "note": "Position 5 must be a letter for BH; a digit is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "BH02CITI0000107718161!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 21 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "BH18ZZZZ00001077181611",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "BI",
   "name": "Burundi",
   "sepa": false,
   "length": 27,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "BI1320001100010000123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "BI1420001100010000123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 13 to 14; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "BI43200011000100001234567890",
     "title": "Wrong length",
     "note": "One digit appended (28 characters instead of 27); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "BI45A0001100010000123456789",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for BI; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "BI132000110001000012345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 26 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "BI9899999100010000123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "BR",
   "name": "Brazil",
   "sepa": false,
   "length": 29,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "BR1500000000000010932840814P2",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "BR1600000000000010932840814P2",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 15 to 16; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "BR1500000000000010932840814P20",
     "title": "Wrong length",
     "note": "One digit appended (30 characters instead of 29); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "BR51A0000000000010932840814P2",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for BR; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "BR1500000000000010932840814P!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 28 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "BR2999999999000010932840814P2",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–12) replaced with 99999999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "BY",
   "name": "Belarus",
   "sepa": false,
   "length": 28,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "BY86AKBB10100000002966000000",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "BY87AKBB10100000002966000000",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 86 to 87; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "BY41AKBB101000000029660000000",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "BY40AKBBA0100000002966000000",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for BY; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier AKBB is intact, so bank_data is still returned (BIC AKBBBY2XXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "BY86AKBB1010000000296600000!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "BY33ZZZZ10100000002966000000",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "CH",
   "name": "Switzerland",
   "sepa": true,
   "length": 21,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "CH5604835012345678009",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "CH5704835012345678009",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 56 to 57; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "CH42048350123456780090",
     "title": "Wrong length",
     "note": "One digit appended (22 characters instead of 21); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "CH97A4835012345678009",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for CH; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "CH560483501234567800!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 20 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "CH1599999012345678009",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "CR",
   "name": "Costa Rica",
   "sepa": false,
   "length": 22,
   "account_check": true,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "CR23015108410026012345",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "CR24015108410026012345",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 23 to 24; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "CR790151084100260123450",
     "title": "Wrong length",
     "note": "One digit appended (23 characters instead of 22); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "CR45A15108410026012345",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for CR; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "CR2301510841002601234!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 21 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "CR44015108410026012355",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 21) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "CR83999908410026012345",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "CY",
   "name": "Cyprus",
   "sepa": true,
   "length": 28,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "CY21002001950000357001234567",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "CY22002001950000357001234567",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 21 to 22; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "CY540020019500003570012345670",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "CY33A02001950000357001234567",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for CY; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "CY2100200195000035700123456!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "CY90999001950000357001234567",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "CZ",
   "name": "Czech Republic",
   "sepa": true,
   "length": 24,
   "account_check": true,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "CZ5508000000001234567899",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "CZ5608000000001234567899",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 55 to 56; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "CZ33080000000012345678990",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "CZ24A8000000001234567899",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for CZ; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "CZ550800000000123456789!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "CZ6008000000001234567809",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 23) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "CZ6799990000001234567899",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "DE",
   "name": "Germany",
   "sepa": true,
   "length": 22,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "DE75512108001245126199",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "DE76512108001245126199",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 75 to 76; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "DE385121080012451261990",
     "title": "Wrong length",
     "note": "One digit appended (23 characters instead of 22); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "DE86A12108001245126199",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for DE; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "DE7551210800124512619!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 21 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "DE32120300000123456792",
     "title": "Wrong account check digit",
     "note": "The registry example's bank 51210800 has no check-digit method (Bundesbank method 09), so a changed account digit there still answers 002. This case therefore uses bank 12030000 (method 00): DE11120300000123456782 is valid; here one account digit is changed (position 21) and the IBAN check digits recomputed, so the IBAN itself passes and the national account check fails (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "DE90999999991245126199",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–12) replaced with 99999999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "DJ",
   "name": "Djibouti",
   "sepa": false,
   "length": 27,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "DJ2110002010010409943020008",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "DJ2210002010010409943020008",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 21 to 22; the ISO 7064 MOD 97-10 test fails. DJ IBANs always carry the check digits 21, so the structure test fails as well (205).",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "DJ21100020100104099430200080",
     "title": "Wrong length",
     "note": "One digit appended (28 characters instead of 27); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "DJ57A0002010010409943020008",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for DJ; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "DJ211000201001040994302000!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 26 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "DJ8899999010010409943020008",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The recomputed check digits 88 are not the fixed 21 of DJ IBANs, so the structure test fails (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "DK",
   "name": "Denmark",
   "sepa": true,
   "length": 18,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "DK9520000123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "DK9620000123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 95 to 96; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "DK12200001234567890",
     "title": "Wrong length",
     "note": "One digit appended (19 characters instead of 18); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "DK56A0000123456789",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for DK; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "DK952000012345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 17 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "DK2199990123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "DO",
   "name": "Dominican Republic",
   "sepa": false,
   "length": 28,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "DO22ACAU00000000000123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "DO23ACAU00000000000123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 22 to 23; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "DO69ACAU000000000001234567890",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "DO09ACAUA0000000000123456789",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for DO; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier ACAU is intact, so bank_data is still returned (BIC ACAUDOS1XXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "DO22ACAU0000000000012345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "DO76ZZZZ00000000000123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "EE",
   "name": "Estonia",
   "sepa": true,
   "length": 20,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "EE471000001020145685",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "EE481000001020145685",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 47 to 48; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "EE3310000010201456850",
     "title": "Wrong length",
     "note": "One digit appended (21 characters instead of 20); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "EE73A000001020145685",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for EE; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "EE47100000102014568!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 19 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "EE681000001020145695",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 19) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "EE920000221020145685",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–6) replaced with 00 (99 is assigned): the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "EG",
   "name": "Egypt",
   "sepa": false,
   "length": 29,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "EG800002000156789012345180002",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "EG810002000156789012345180002",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 80 to 81; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "EG2900020001567890123451800020",
     "title": "Wrong length",
     "note": "One digit appended (30 characters instead of 29); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "EG06A002000156789012345180002",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for EG; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "EG80000200015678901234518000!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 28 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "EG639999000156789012345180002",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "ES",
   "name": "Spain",
   "sepa": true,
   "length": 24,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "ES7921000813610123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "ES8021000813610123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 79 to 80; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "ES52210008136101234567890",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "ES93A1000813610123456789",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for ES; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "ES792100081361012345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "ES0321000813610123456799",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 23) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "ES9699990813610123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "FI",
   "name": "Finland",
   "sepa": true,
   "length": 18,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "FI1410093000123458",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check is not performed for this bank (004). The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "FI1510093000123458",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 14 to 15; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "FI86100930001234580",
     "title": "Wrong length",
     "note": "One digit appended (19 characters instead of 18); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "FI55A0093000123458",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for FI; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "FI141009300012345!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 17 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "FI9399993000123458",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. With the bank unknown the account check is not performed (004).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "FK",
   "name": "Falkland Islands",
   "sepa": false,
   "length": 18,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "FK12SC987654321098",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "FK13SC987654321098",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 12 to 13; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "FK23SC9876543210980",
     "title": "Wrong length",
     "note": "One digit appended (19 characters instead of 18); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "FK96SCA87654321098",
     "title": "Wrong structure",
     "note": "Position 7 must be a digit for FK; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier SC is intact, so bank_data is still returned (BIC SCBLFKFKXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "FK12SC98765432109!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 17 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "FK73ZZ987654321098",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–6) replaced with ZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "FO",
   "name": "Faroe Islands",
   "sepa": false,
   "length": 18,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "FO0664600004330406",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "FO0764600004330406",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 06 to 07; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "FO71646000043304060",
     "title": "Wrong length",
     "note": "One digit appended (19 characters instead of 18); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "FO35A4600004330406",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for FO; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "FO066460000433040!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 17 characters: the check digits happen to pass MOD 97-10 (001), but length and structure fail (203, 205).",
     "expect": {
      "chars": "206",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "FO2764600004330416",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 17) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "FO0299990004330406",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "FR",
   "name": "France",
   "sepa": true,
   "length": 27,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "FR7630006000011234567890189",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "FR7730006000011234567890189",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 76 to 77; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "FR76300060000112345678901890",
     "title": "Wrong length",
     "note": "One digit appended (28 characters instead of 27); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "FR07A0006000011234567890189",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for FR; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "FR763000600001123456789018!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 26 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "FR9730006000011234567890199",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 26) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "FR4799999000011234567890189",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "GB",
   "name": "United Kingdom",
   "sepa": true,
   "length": 22,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "GB33BUKB20201555555555",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "GB34BUKB20201555555555",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 33 to 34; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "GB71BUKB202015555555550",
     "title": "Wrong length",
     "note": "One digit appended (23 characters instead of 22); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "GB62BUKBA0201555555555",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for GB; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "GB33BUKB2020155555555!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 21 characters: the check digits happen to pass MOD 97-10 (001), but length and structure fail (203, 205).",
     "expect": {
      "chars": "206",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "GB54BUKB20201555555565",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 21) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "GB85ZZZZ20201555555555",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "GE",
   "name": "Georgia",
   "sepa": false,
   "length": 22,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "GE60NB0000000123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "GE61NB0000000123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 60 to 61; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "GE34NB00000001234567890",
     "title": "Wrong length",
     "note": "One digit appended (23 characters instead of 22); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "GE77NBA000000123456789",
     "title": "Wrong structure",
     "note": "Position 7 must be a digit for GE; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier NB is intact, so bank_data is still returned (BIC BNLNGE22XXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "GE60NB000000012345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 21 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "GE15ZZ0000000123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–6) replaced with ZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "GI",
   "name": "Gibraltar",
   "sepa": true,
   "length": 23,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "GI56XAPO000001234567890",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "GI57XAPO000001234567890",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 56 to 57; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "GI05XAPO0000012345678900",
     "title": "Wrong length",
     "note": "One digit appended (24 characters instead of 23); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "GI040APO000001234567890",
     "title": "Wrong structure",
     "note": "Position 5 must be a letter for GI; a digit is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "GI56XAPO00000123456789!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 22 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "GI32ZZZZ000001234567890",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "GL",
   "name": "Greenland",
   "sepa": false,
   "length": 18,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "GL9264710002171039",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "GL9364710002171039",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 92 to 93; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "GL58647100021710390",
     "title": "Wrong length",
     "note": "One digit appended (19 characters instead of 18); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "GL24A4710002171039",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for GL; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "GL926471000217103!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 17 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "GL1664710002171049",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 17) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "GL9199990002171039",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "GR",
   "name": "Greece",
   "sepa": true,
   "length": 27,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "GR9608100010000001234567890",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "GR9708100010000001234567890",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 96 to 97; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "GR66081000100000012345678900",
     "title": "Wrong length",
     "note": "One digit appended (28 characters instead of 27); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "GR39A8100010000001234567890",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for GR; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "GR960810001000000123456789!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 26 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "GR5999900010000001234567890",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "GT",
   "name": "Guatemala",
   "sepa": false,
   "length": 28,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "GT20AGRO00000000001234567890",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "GT21AGRO00000000001234567890",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 20 to 21; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "GT39AGRO000000000012345678900",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "GT20AGRO0000000000123456789!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "GT63ZZZZ00000000001234567890",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "HN",
   "name": "Honduras",
   "sepa": false,
   "length": 28,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "HN54PISA00000000000000123124",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "HN55PISA00000000000000123124",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 54 to 55; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "HN07PISA000000000000001231240",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "HN40PISAA0000000000000123124",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for HN; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier PISA is intact, so bank_data is still returned (BIC PISAHNTEXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "HN54PISA0000000000000012312!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "HN65ZZZZ00000000000000123124",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "HR",
   "name": "Croatia",
   "sepa": true,
   "length": 21,
   "account_check": true,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "HR1723600001101234565",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "HR1823600001101234565",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 17 to 18; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "HR36236000011012345650",
     "title": "Wrong length",
     "note": "One digit appended (22 characters instead of 21); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "HR11A3600001101234565",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for HR; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "HR172360000110123456!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 20 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "HR3823600001101234575",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 20) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "HR8299999991101234565",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–11) replaced with 9999999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "HU",
   "name": "Hungary",
   "sepa": true,
   "length": 28,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "HU93116000060000000012345676",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "HU94116000060000000012345676",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 93 to 94; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "HU041160000600000000123456760",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "HU65A16000060000000012345676",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for HU; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "HU9311600006000000001234567!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "HU17116000060000000012345686",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 27) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "HU59999999990000000012345676",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–12) replaced with 99999999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "IE",
   "name": "Ireland",
   "sepa": true,
   "length": 22,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "IE06BOFI90008412345671",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "IE07BOFI90008412345671",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 06 to 07; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "IE44BOFI900084123456710",
     "title": "Wrong length",
     "note": "One digit appended (23 characters instead of 22); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "IE51BOFIA0008412345671",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for IE; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "IE06BOFI9000841234567!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 21 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "IE91ZZZZ90008412345671",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "IL",
   "name": "Israel",
   "sepa": false,
   "length": 23,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "IL170108000000012612345",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "IL180108000000012612345",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 17 to 18; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "IL5201080000000126123450",
     "title": "Wrong length",
     "note": "One digit appended (24 characters instead of 23); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "IL43A108000000012612345",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for IL; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "IL17010800000001261234!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 22 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "IL380108000000012612355",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 22) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "IL279998000000012612345",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "IQ",
   "name": "Iraq",
   "sepa": false,
   "length": 23,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "IQ20CBIQ861800101010500",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "IQ21CBIQ861800101010500",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 20 to 21; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "IQ23CBIQ8618001010105000",
     "title": "Wrong length",
     "note": "One digit appended (24 characters instead of 23); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "IQ540BIQ861800101010500",
     "title": "Wrong structure",
     "note": "Position 5 must be a letter for IQ; a digit is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "IQ20CBIQ86180010101050!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 22 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "IQ57ZZZZ861800101010500",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "IS",
   "name": "Iceland",
   "sepa": true,
   "length": 26,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "IS750001121234563108962099",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "IS760001121234563108962099",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 75 to 76; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "IS4500011212345631089620990",
     "title": "Wrong length",
     "note": "One digit appended (27 characters instead of 26); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "IS79A001121234563108962099",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for IS; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "IS75000112123456310896209!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 25 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "IS800001121234563108962009",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 25) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "IS359999121234563108962099",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "IT",
   "name": "Italy",
   "sepa": true,
   "length": 27,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "IT60X0542811101000000123456",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "IT61X0542811101000000123456",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 60 to 61; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "IT19X05428111010000001234560",
     "title": "Wrong length",
     "note": "One digit appended (28 characters instead of 27); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "IT88XA542811101000000123456",
     "title": "Wrong structure",
     "note": "Position 6 must be a digit for IT; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "IT60X054281110100000012345!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 26 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "IT81X0542811101000000123466",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 26) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "IT90X9999911101000000123456",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 6–10) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "JO",
   "name": "Jordan",
   "sepa": false,
   "length": 30,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "JO71CBJO0000000000001234567890",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "JO72CBJO0000000000001234567890",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 71 to 72; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "JO75CBJO00000000000012345678900",
     "title": "Wrong length",
     "note": "One digit appended (31 characters instead of 30); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "JO80CBJOA000000000001234567890",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for JO; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier CBJO is intact, so bank_data is still returned (BIC CBJOJOAXXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "JO71CBJO000000000000123456789!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 29 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "JO66ZZZZ0000000000001234567890",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "KW",
   "name": "Kuwait",
   "sepa": false,
   "length": 30,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "KW81CBKU0000000000001234560101",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "KW82CBKU0000000000001234560101",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 81 to 82; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "KW84CBKU00000000000012345601010",
     "title": "Wrong length",
     "note": "One digit appended (31 characters instead of 30); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "KW460BKU0000000000001234560101",
     "title": "Wrong structure",
     "note": "Position 5 must be a letter for KW; a digit is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "KW81CBKU000000000000123456010!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 29 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "KW40ZZZZ0000000000001234560101",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "KZ",
   "name": "Kazakhstan",
   "sepa": false,
   "length": 20,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "KZ244350000012344567",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "KZ254350000012344567",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 24 to 25; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "KZ8043500000123445670",
     "title": "Wrong length",
     "note": "One digit appended (21 characters instead of 20); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "KZ09A350000012344567",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for KZ; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "KZ24435000001234456!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 19 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "KZ399990000012344567",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "LB",
   "name": "Lebanon",
   "sepa": false,
   "length": 28,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "LB92000700000000123123456123",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "LB93000700000000123123456123",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 92 to 93; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "LB960007000000001231234561230",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "LB07A00700000000123123456123",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for LB; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "LB9200070000000012312345612!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "LB61999900000000123123456123",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "LC",
   "name": "Saint Lucia",
   "sepa": false,
   "length": 32,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "LC14BOSL123456789012345678901234",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "LC15BOSL123456789012345678901234",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 14 to 15; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "LC22BOSL1234567890123456789012340",
     "title": "Wrong length",
     "note": "One digit appended (33 characters instead of 32); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "LC91BOSLA23456789012345678901234",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for LC; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier BOSL is intact, so bank_data is still returned (BIC BOSLLCLCXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "LC14BOSL12345678901234567890123!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 31 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "LC86ZZZZ123456789012345678901234",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "LI",
   "name": "Liechtenstein",
   "sepa": true,
   "length": 21,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "LI7408806123456789012",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "LI7508806123456789012",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 74 to 75; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "LI08088061234567890120",
     "title": "Wrong length",
     "note": "One digit appended (22 characters instead of 21); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "LI18A8806123456789012",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for LI; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "LI740880612345678901!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 20 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "LI8199999123456789012",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "LT",
   "name": "Lithuania",
   "sepa": true,
   "length": 20,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "LT601010012345678901",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "LT611010012345678901",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 60 to 61; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "LT6810100123456789010",
     "title": "Wrong length",
     "note": "One digit appended (21 characters instead of 20); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "LT86A010012345678901",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for LT; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "LT60101001234567890!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 19 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "LT449999912345678901",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "LU",
   "name": "Luxembourg",
   "sepa": true,
   "length": 20,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "LU120010001234567891",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "LU130010001234567891",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 12 to 13; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "LU0300100012345678910",
     "title": "Wrong length",
     "note": "One digit appended (21 characters instead of 20); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "LU84A010001234567891",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for LU; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "LU12001000123456789!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 19 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "LU559970001234567891",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 997 (999 and 998 are assigned): the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "LV",
   "name": "Latvia",
   "sepa": true,
   "length": 21,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "LV97HABA0012345678910",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "LV98HABA0012345678910",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 97 to 98; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "LV07HABA00123456789100",
     "title": "Wrong length",
     "note": "One digit appended (22 characters instead of 21); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "LV430ABA0012345678910",
     "title": "Wrong structure",
     "note": "Position 5 must be a letter for LV; a digit is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "LV97HABA001234567891!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 20 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "LV38ZZZZ0012345678910",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "LY",
   "name": "Libya",
   "sepa": false,
   "length": 25,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "LY38021001000000123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "LY39021001000000123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 38 to 39; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "LY800210010000001234567890",
     "title": "Wrong length",
     "note": "One digit appended (26 characters instead of 25); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "LY19A21001000000123456789",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for LY; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "LY3802100100000012345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 24 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "LY20999001000000123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "MC",
   "name": "Monaco",
   "sepa": true,
   "length": 27,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "MC5810096180790123456789085",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "MC5910096180790123456789085",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 58 to 59; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "MC58100961807901234567890850",
     "title": "Wrong length",
     "note": "One digit appended (28 characters instead of 27); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "MC94A0096180790123456789085",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for MC; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "MC581009618079012345678908!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 26 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "MC7910096180790123456789095",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 26) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "MC9499999180790123456789085",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "MD",
   "name": "Moldova",
   "sepa": true,
   "length": 24,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "MD21EX000000000001234567",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "MD22EX000000000001234567",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 21 to 22; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "MD06EX0000000000012345670",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "MD21EX00000000000123456!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "MD93ZZ000000000001234567",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–6) replaced with ZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "ME",
   "name": "Montenegro",
   "sepa": true,
   "length": 22,
   "account_check": true,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "ME25510000012345678920",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "ME26510000012345678920",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 25 to 26; the ISO 7064 MOD 97-10 test fails. ME IBANs always carry the check digits 25, so the structure test fails as well (205).",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "ME735100000123456789200",
     "title": "Wrong length",
     "note": "One digit appended (23 characters instead of 22); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "ME36A10000012345678920",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for ME; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "ME2551000001234567892!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 21 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "ME46510000012345678930",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 21) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201). The recomputed check digits 46 are not the fixed 25 of ME IBANs, so the structure test fails too (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "ME15999000012345678920",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank. The recomputed check digits 15 are not the fixed 25 of ME IBANs, so the structure test fails (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "MK",
   "name": "North Macedonia",
   "sepa": true,
   "length": 19,
   "account_check": true,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "MK07200002785123453",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "MK08200002785123453",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 07 to 08; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "MK552000027851234530",
     "title": "Wrong length",
     "note": "One digit appended (20 characters instead of 19); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "MK05A00002785123453",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for MK; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "MK0720000278512345!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 18 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "MK28200002785123463",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 18) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "MK94999002785123453",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "MN",
   "name": "Mongolia",
   "sepa": false,
   "length": 20,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "MN580050099123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "MN590050099123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 58 to 59; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "MN6400500991234567890",
     "title": "Wrong length",
     "note": "One digit appended (21 characters instead of 20); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "MN33A050099123456789",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for MN; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "MN58005009912345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 19 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "MN139999099123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "MR",
   "name": "Mauritania",
   "sepa": false,
   "length": 27,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "MR1300020001010000123456753",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "MR1400020001010000123456753",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 13 to 14; the ISO 7064 MOD 97-10 test fails. MR IBANs always carry the check digits 13, so the structure test fails as well (205).",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "MR13000200010100001234567530",
     "title": "Wrong length",
     "note": "One digit appended (28 characters instead of 27); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "MR53A0020001010000123456753",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for MR; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "MR130002000101000012345675!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 26 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "MR3400020001010000123456763",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 26) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201). The recomputed check digits 34 are not the fixed 13 of MR IBANs, so the structure test fails too (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "MR7699999001010000123456753",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank. The recomputed check digits 76 are not the fixed 13 of MR IBANs, so the structure test fails (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "MT",
   "name": "Malta",
   "sepa": true,
   "length": 31,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "MT31MALT01100000000000000000123",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "MT32MALT01100000000000000000123",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 31 to 32; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "MT53MALT011000000000000000001230",
     "title": "Wrong length",
     "note": "One digit appended (32 characters instead of 31); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "MT71MALTA1100000000000000000123",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for MT; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "MT31MALT0110000000000000000012!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 30 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "MT62ZZZZ01100000000000000000123",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "MU",
   "name": "Mauritius",
   "sepa": false,
   "length": 30,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "MU43BOMM0101123456789101000MUR",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "MU44BOMM0101123456789101000MUR",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 43 to 44; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "MU06BOMM0101123456789101000MUR0",
     "title": "Wrong length",
     "note": "One digit appended (31 characters instead of 30); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "MU22BOMMA101123456789101000MUR",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for MU; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier BOMM is intact, so bank_data is still returned (BIC BOMMMUPLXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "MU43BOMM0101123456789101000MU!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 29 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "MU87ZZZZ0101123456789101000MUR",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "NI",
   "name": "Nicaragua",
   "sepa": false,
   "length": 28,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "NI79BAMC00000000000003123123",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "NI80BAMC00000000000003123123",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 79 to 80; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "NI26BAMC000000000000031231230",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "NI02BAMCA0000000000003123123",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for NI; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier BAMC is intact, so bank_data is still returned (BIC BAMCNIMAXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "NI79BAMC0000000000000312312!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "NI97ZZZZ00000000000003123123",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "NL",
   "name": "Netherlands",
   "sepa": true,
   "length": 18,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "NL02ABNA0123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "NL03ABNA0123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 02 to 03; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "NL16ABNA01234567890",
     "title": "Wrong length",
     "note": "One digit appended (19 characters instead of 18); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "NL22ABNAA123456789",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for NL; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier ABNA is intact, so bank_data is still returned (BIC ABNANL2AXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "NL02ABNA012345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 17 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "NL51ZZZZ0123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "NO",
   "name": "Norway",
   "sepa": true,
   "length": 15,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "NO8330001234567",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "NO8430001234567",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 83 to 84; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "NO34300012345670",
     "title": "Wrong length",
     "note": "One digit appended (16 characters instead of 15); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "NO37A0001234567",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for NO; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "NO833000123456!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 14 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "NO0730001234577",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 14) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "NO5299991234567",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "OM",
   "name": "Oman",
   "sepa": false,
   "length": 23,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "OM040280000012345678901",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "OM050280000012345678901",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 04 to 05; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "OM4702800000123456789010",
     "title": "Wrong length",
     "note": "One digit appended (24 characters instead of 23); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "OM30A280000012345678901",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for OM; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "OM04028000001234567890!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 22 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "OM769990000012345678901",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "PK",
   "name": "Pakistan",
   "sepa": false,
   "length": 24,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "PK36SCBL0000001123456702",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "PK37SCBL0000001123456702",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 36 to 37; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "PK06SCBL00000011234567020",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "PK210CBL0000001123456702",
     "title": "Wrong structure",
     "note": "Position 5 must be a letter for PK; a digit is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "PK36SCBL000000112345670!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "PK14ZZZZ0000001123456702",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "PL",
   "name": "Poland",
   "sepa": true,
   "length": 28,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "PL10105000997603123456789123",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "PL11105000997603123456789123",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 10 to 11; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "PL641050009976031234567891230",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "PL79A05000997603123456789123",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for PL; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "PL1010500099760312345678912!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "PL41105000907603123456789123",
     "title": "Wrong account check digit",
     "note": "A changed digit in the account part is not reported for PL (the API answers 002), so this case breaks the check digit of the 8-digit bank/branch number instead: position 12 changed from 9 to 0 and the IBAN check digits recomputed. The IBAN itself passes, the national check fails (201); the altered bank/branch number matches no bank, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "PL55999999997603123456789123",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–12) replaced with 99999999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "PS",
   "name": "Palestine",
   "sepa": false,
   "length": 29,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "PS92PALS000000000400123456702",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "PS93PALS000000000400123456702",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 92 to 93; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "PS06PALS0000000004001234567020",
     "title": "Wrong length",
     "note": "One digit appended (30 characters instead of 29); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "PS160ALS000000000400123456702",
     "title": "Wrong structure",
     "note": "Position 5 must be a letter for PS; a digit is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "PS92PALS00000000040012345670!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 28 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "PS38ZZZZ000000000400123456702",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "PT",
   "name": "Portugal",
   "sepa": true,
   "length": 25,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "PT50003310311234567890197",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "PT51003310311234567890197",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 50 to 51; the ISO 7064 MOD 97-10 test fails. PT IBANs always carry the check digits 50, so the structure test fails as well (205).",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "PT980033103112345678901970",
     "title": "Wrong length",
     "note": "One digit appended (26 characters instead of 25); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "PT31A03310311234567890197",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for PT; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "PT5000331031123456789019!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 24 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "PT55003310311234567890107",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 24) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201). The recomputed check digits 55 are not the fixed 50 of PT IBANs, so the structure test fails too (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "PT92999910311234567890197",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank. The recomputed check digits 92 are not the fixed 50 of PT IBANs, so the structure test fails (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "QA",
   "name": "Qatar",
   "sepa": false,
   "length": 29,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "QA54QNBA000000000000693123456",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "QA55QNBA000000000000693123456",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 54 to 55; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "QA94QNBA0000000000006931234560",
     "title": "Wrong length",
     "note": "One digit appended (30 characters instead of 29); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "QA09QNBAA00000000000693123456",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for QA; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier QNBA is intact, so bank_data is still returned (BIC QNBAQAQAXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "QA54QNBA00000000000069312345!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 28 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "QA78ZZZZ000000000000693123456",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "RO",
   "name": "Romania",
   "sepa": true,
   "length": 24,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "RO66BACX0000001234567890",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "RO67BACX0000001234567890",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 66 to 67; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "RO91BACX00000012345678900",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "RO220ACX0000001234567890",
     "title": "Wrong structure",
     "note": "Position 5 must be a letter for RO; a digit is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "RO66BACX000000123456789!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "RO37ZZZZ0000001234567890",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "RS",
   "name": "Serbia",
   "sepa": true,
   "length": 22,
   "account_check": true,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "RS35105008123123123173",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "RS36105008123123123173",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 35 to 36; the ISO 7064 MOD 97-10 test fails. RS IBANs always carry the check digits 35, so the structure test fails as well (205).",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "RS831050081231231231730",
     "title": "Wrong length",
     "note": "One digit appended (23 characters instead of 22); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "RS16A05008123123123173",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for RS; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "RS3510500812312312317!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 21 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "RS56105008123123123183",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 21) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201). The recomputed check digits 56 are not the fixed 35 of RS IBANs, so the structure test fails too (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "RS31999008123123123173",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank. The recomputed check digits 31 are not the fixed 35 of RS IBANs, so the structure test fails (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "RU",
   "name": "Russia",
   "sepa": false,
   "length": 33,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "RU0204452560040702810412345678901",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "RU0304452560040702810412345678901",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 02 to 03; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "RU98044525600407028104123456789010",
     "title": "Wrong length",
     "note": "One digit appended (34 characters instead of 33); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "RU15A4452560040702810412345678901",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for RU; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "RU020445256004070281041234567890!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 32 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "RU2304452560040702810412345678911",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 32) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "RU3999999999940702810412345678901",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–13) replaced with 999999999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "SA",
   "name": "Saudi Arabia",
   "sepa": false,
   "length": 24,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "SA4420000001234567891234",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "SA4520000001234567891234",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 44 to 45; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "SA59200000012345678912340",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "SA58A0000001234567891234",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for SA; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "SA442000000123456789123!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "SA3699000001234567891234",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–6) replaced with 99: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "SC",
   "name": "Seychelles",
   "sepa": false,
   "length": 31,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "SC74MCBL01031234567890123456USD",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "SC75MCBL01031234567890123456USD",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 74 to 75; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "SC25MCBL01031234567890123456USD0",
     "title": "Wrong length",
     "note": "One digit appended (32 characters instead of 31); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "SC32MCBLA1031234567890123456USD",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for SC; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier MCBL is intact, so bank_data is still returned (BIC MCBLSCSCXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "SC74MCBL01031234567890123456US!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 30 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "SC75ZZZZ01031234567890123456USD",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "SD",
   "name": "Sudan",
   "sepa": false,
   "length": 18,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "SD8811123456789012",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "SD8911123456789012",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 88 to 89; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "SD95111234567890120",
     "title": "Wrong length",
     "note": "One digit appended (19 characters instead of 18); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "SD32A1123456789012",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for SD; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "SD881112345678901!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 17 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "SD1699123456789012",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–6) replaced with 99: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "SE",
   "name": "Sweden",
   "sepa": true,
   "length": 24,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "SE7280000810340009783242",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "SE7380000810340009783242",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 72 to 73; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "SE59800008103400097832420",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "SE27A0000810340009783242",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for SE; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "SE728000081034000978324!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "SE9380000810340009783252",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 23) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "SE5800000810340009783242",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 000 (999 is assigned): the IBAN is structurally valid but no bank matches, so bank_data comes back empty. With the bank unknown the account check is not performed (004).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "SI",
   "name": "Slovenia",
   "sepa": true,
   "length": 19,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "SI56192001234567892",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "SI57192001234567892",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 56 to 57; the ISO 7064 MOD 97-10 test fails. SI IBANs always carry the check digits 56, so the structure test fails as well (205).",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "SI071920012345678920",
     "title": "Wrong length",
     "note": "One digit appended (20 characters instead of 19); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "SI78A92001234567892",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for SI; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "SI5619200123456789!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 18 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "SI61192001234567802",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 18) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201). The recomputed check digits 61 are not the fixed 56 of SI IBANs, so the structure test fails too (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "SI83999991234567892",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank. The recomputed check digits 83 are not the fixed 56 of SI IBANs, so the structure test fails (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "SK",
   "name": "Slovakia",
   "sepa": true,
   "length": 24,
   "account_check": true,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "SK8975000000000012345671",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "SK9075000000000012345671",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 89 to 90; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "SK03750000000000123456710",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "SK70A5000000000012345671",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for SK; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "SK897500000000001234567!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "SK1375000000000012345681",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 23) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "SK8299990000000012345671",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "SM",
   "name": "San Marino",
   "sepa": true,
   "length": 27,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "SM76P0854009812123456789123",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "SM77P0854009812123456789123",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 76 to 77; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "SM24P08540098121234567891230",
     "title": "Wrong length",
     "note": "One digit appended (28 characters instead of 27); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "SM10PA854009812123456789123",
     "title": "Wrong structure",
     "note": "Position 6 must be a digit for SM; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "SM76P085400981212345678912!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 26 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "SM97P0854009812123456789133",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 26) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "SM69P9999909812123456789123",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 6–10) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "SO",
   "name": "Somalia",
   "sepa": false,
   "length": 23,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "SO061000001123123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "SO071000001123123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 06 to 07; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "SO5710000011231234567890",
     "title": "Wrong length",
     "note": "One digit appended (24 characters instead of 23); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "SO10A000001123123456789",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for SO; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "SO06100000112312345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 22 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "SO919999999123123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–11) replaced with 9999999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "ST",
   "name": "Sao Tome and Principe",
   "sepa": false,
   "length": 25,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "ST23000200000289355710148",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "ST24000200000289355710148",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 23 to 24; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "ST710002000002893557101480",
     "title": "Wrong length",
     "note": "One digit appended (26 characters instead of 25); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "ST04A00200000289355710148",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for ST; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "ST2300020000028935571014!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 24 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "ST75999900000289355710148",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "SV",
   "name": "El Salvador",
   "sepa": false,
   "length": 28,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "SV43ACAT00000000000000123123",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "SV44ACAT00000000000000123123",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 43 to 44; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "SV34ACAT000000000000001231230",
     "title": "Wrong length",
     "note": "One digit appended (29 characters instead of 28); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "SV18ACATA0000000000000123123",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for SV; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier ACAT is intact, so bank_data is still returned (BIC ACATSVS1XXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "SV43ACAT0000000000000012312!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 27 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "SV66ZZZZ00000000000000123123",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "TL",
   "name": "Timor-Leste",
   "sepa": false,
   "length": 23,
   "account_check": true,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "TL380010012345678910106",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "TL390010012345678910106",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 38 to 39; the ISO 7064 MOD 97-10 test fails. TL IBANs always carry the check digits 38, so the structure test fails as well (205).",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "TL8600100123456789101060",
     "title": "Wrong length",
     "note": "One digit appended (24 characters instead of 23); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "TL64A010012345678910106",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for TL; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "TL38001001234567891010!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 22 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "TL590010012345678910116",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 22) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201). The recomputed check digits 59 are not the fixed 38 of TL IBANs, so the structure test fails too (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "TL439999012345678910106",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with 9999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank. The recomputed check digits 43 are not the fixed 38 of TL IBANs, so the structure test fails (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "TN",
   "name": "Tunisia",
   "sepa": false,
   "length": 24,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "TN5904018104004942712345",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "TN6004018104004942712345",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 59 to 60; the ISO 7064 MOD 97-10 test fails. TN IBANs always carry the check digits 59, so the structure test fails as well (205).",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "TN59040181040049427123450",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "TN28A4018104004942712345",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for TN; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "TN590401810400494271234!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "TN8004018104004942712355",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 23) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201). The recomputed check digits 80 are not the fixed 59 of TN IBANs, so the structure test fails too (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "TN1599018104004942712345",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–6) replaced with 99: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank. The recomputed check digits 15 are not the fixed 59 of TN IBANs, so the structure test fails (205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "TR",
   "name": "Turkey",
   "sepa": false,
   "length": 26,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "TR190006200009112345678901",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "TR200006200009112345678901",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 19 to 20; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "TR5800062000091123456789010",
     "title": "Wrong length",
     "note": "One digit appended (27 characters instead of 26); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "TR23A006200009112345678901",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for TR; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "TR19000620000911234567890!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 25 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "TR599999900009112345678901",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–9) replaced with 99999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "UA",
   "name": "Ukraine",
   "sepa": false,
   "length": 29,
   "account_check": false,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "UA903052992990004149123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "UA913052992990004149123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 90 to 91; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "UA0230529929900041491234567890",
     "title": "Wrong length",
     "note": "One digit appended (30 characters instead of 29); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "UA77A052992990004149123456789",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for UA; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "UA90305299299000414912345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 28 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "UA179999992990004149123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–10) replaced with 999999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "VA",
   "name": "Vatican City",
   "sepa": true,
   "length": 22,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "VA59001123000012345678",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "VA60001123000012345678",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 59 to 60; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "VA640011230000123456780",
     "title": "Wrong length",
     "note": "One digit appended (23 characters instead of 22); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "VA81A01123000012345678",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for VA; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "VA5900112300001234567!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 21 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "VA86999123000012345678",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–7) replaced with 999: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "VG",
   "name": "British Virgin Islands",
   "sepa": false,
   "length": 24,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "VG07ABVI0000000123456789",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "VG08ABVI0000000123456789",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 07 to 08; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "VG94ABVI00000001234567890",
     "title": "Wrong length",
     "note": "One digit appended (25 characters instead of 24); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "VG40ABVIA000000123456789",
     "title": "Wrong structure",
     "note": "Position 9 must be a digit for VG; a letter is placed there and the check digits recomputed, so only the structure test fails. The bank identifier ABVI is intact, so bank_data is still returned (BIC ABVIVGVGXXX).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "chars",
     "iban": "VG07ABVI000000012345678!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 23 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "VG93ZZZZ0000000123456789",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "XK",
   "name": "Kosovo",
   "sepa": false,
   "length": 20,
   "account_check": true,
   "branch": true,
   "cases": [
    {
     "id": "valid",
     "iban": "XK051212012345678906",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. The account check answers 002. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "XK061212012345678906",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 05 to 06; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "XK5312120123456789060",
     "title": "Wrong length",
     "note": "One digit appended (21 characters instead of 20); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "002",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "XK31A212012345678906",
     "title": "Wrong structure",
     "note": "Position 5 must be a digit for XK; a letter is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "XK05121201234567890!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 19 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "201",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "account",
     "iban": "XK261212012345678916",
     "title": "Wrong account check digit",
     "note": "One account digit changed (position 19) and the IBAN check digits recomputed: the IBAN itself passes, the national account check does not (201).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "bank",
     "iban": "XK569912012345678906",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–6) replaced with 99: the IBAN is structurally valid but no bank matches, so bank_data comes back empty. The account check answers 201 for the unknown bank.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "201",
      "country": "007"
     },
     "bank": false
    }
   ]
  },
  {
   "code": "YE",
   "name": "Yemen",
   "sepa": false,
   "length": 30,
   "account_check": false,
   "branch": false,
   "cases": [
    {
     "id": "valid",
     "iban": "YE20ALMF0000000000001234560101",
     "title": "Valid IBAN",
     "note": "Registry example: check digits, length and structure all pass. No national account check for this country, so the account validation answers 004. The bank is in our directory.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": true
    },
    {
     "id": "checkdigit",
     "iban": "YE21ALMF0000000000001234560101",
     "title": "Wrong IBAN check digits",
     "note": "Check digits changed from 20 to 21; the ISO 7064 MOD 97-10 test fails.",
     "expect": {
      "chars": "006",
      "iban": "202",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "length",
     "iban": "YE25ALMF00000000000012345601010",
     "title": "Wrong length",
     "note": "One digit appended (31 characters instead of 30); check digits recomputed, so length and structure fail (203, 205).",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "structure",
     "iban": "YE070LMF0000000000001234560101",
     "title": "Wrong structure",
     "note": "Position 5 must be a letter for YE; a digit is placed there and the check digits recomputed, so only the structure test fails.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "chars",
     "iban": "YE20ALMF000000000000123456010!",
     "title": "Illegal character",
     "note": "Last character replaced with \"!\". The API reports 206, drops the character and runs the other checks on the remaining 29 characters: check digits, length and structure fail (202, 203, 205).",
     "expect": {
      "chars": "206",
      "iban": "202",
      "length": "203",
      "structure": "205",
      "account": "004",
      "country": "007"
     },
     "bank": false
    },
    {
     "id": "bank",
     "iban": "YE65ZZZZ0000000000001234560101",
     "title": "Valid IBAN, bank unknown",
     "note": "Bank identifier (positions 5–8) replaced with ZZZZ: the IBAN is structurally valid but no bank matches, so bank_data comes back empty.",
     "expect": {
      "chars": "006",
      "iban": "001",
      "length": "003",
      "structure": "005",
      "account": "004",
      "country": "007"
     },
     "bank": false
    }
   ]
  }
 ],
 "global": [
  {
   "iban": "US64SVBKUS6S3300958879",
   "title": "Country does not use IBAN",
   "note": "Check digits are mathematically correct, but the United States is not an IBAN country: the API answers 207.",
   "expect": {
    "chars": "006",
    "iban": "001",
    "length": "003",
    "structure": "205",
    "account": "004",
    "country": "207"
   },
   "bank": false
  },
  {
   "iban": "GB33 BUKB 2020 1555 5555 55",
   "title": "Spaces in the input",
   "note": "The valid GB IBAN with the usual printed grouping. v4 reports the spaces as illegal characters (206) but strips them for the remaining checks, which all pass; the bank is identified as well.",
   "expect": {
    "chars": "206",
    "iban": "001",
    "length": "003",
    "structure": "005",
    "account": "002",
    "country": "007"
   },
   "bank": true
  },
  {
   "iban": "gb33bukb20201555555555",
   "title": "Lower-case input",
   "note": "Letters in lower case. Expected to be upper-cased before validation and to equal the valid GB example; the verify script confirms it.",
   "expect": {
    "chars": "006",
    "iban": "001",
    "length": "003",
    "structure": "005",
    "account": "002",
    "country": "007"
   },
   "bank": true
  }
 ]
}