{
  "schema_version": 2,
  "contract_id": "ibangen_fixture_contract_2026_09_06",
  "description": "Synthetic IBAN format and checksum fixtures with explicit validation layers. No account ownership or payment-availability claims.",
  "source": "https://ibangen.com/apidoc#starter-kit",
  "source_version": "2026-09-06",
  "validation_contract": {
    "format": "Country structure and allowed characters for the five formats implemented by the example verifier.",
    "mod97": "ISO 13616 checksum result after whitespace removal and uppercasing.",
    "national_checksum": "Not evaluated by this starter verifier.",
    "registry_match": "Not evaluated; no claim that a bank or branch exists in a current registry.",
    "provider_scope": "Not applicable unless a payment provider explicitly documents the fixture."
  },
  "cases": [
    {
      "id": "de_valid",
      "iban": "DE89370400440532013000",
      "expected_valid": true,
      "checks": {"format": "pass", "mod97": "pass", "national_checksum": "not_evaluated", "registry_match": "not_evaluated", "provider_scope": "not_applicable"}
    },
    {
      "id": "de_formatted",
      "iban": "de89 3704 0044 0532 0130 00",
      "expected_valid": true,
      "checks": {"format": "pass_after_normalization", "mod97": "pass", "national_checksum": "not_evaluated", "registry_match": "not_evaluated", "provider_scope": "not_applicable"}
    },
    {
      "id": "gb_valid",
      "iban": "GB29NWBK60161331926819",
      "expected_valid": true,
      "checks": {"format": "pass", "mod97": "pass", "national_checksum": "not_evaluated", "registry_match": "not_evaluated", "provider_scope": "not_applicable"}
    },
    {
      "id": "fr_valid",
      "iban": "FR1420041010050500013M02606",
      "expected_valid": true,
      "checks": {"format": "pass", "mod97": "pass", "national_checksum": "not_evaluated", "registry_match": "not_evaluated", "provider_scope": "not_applicable"}
    },
    {
      "id": "no_valid",
      "iban": "NO9386011117947",
      "expected_valid": true,
      "checks": {"format": "pass", "mod97": "pass", "national_checksum": "not_evaluated", "registry_match": "not_evaluated", "provider_scope": "not_applicable"}
    },
    {
      "id": "be_valid",
      "iban": "BE68539007547034",
      "expected_valid": true,
      "checks": {"format": "pass", "mod97": "pass", "national_checksum": "not_evaluated", "registry_match": "not_evaluated", "provider_scope": "not_applicable"}
    },
    {
      "id": "de_bad_checksum",
      "iban": "DE88370400440532013000",
      "expected_valid": false,
      "checks": {"format": "pass", "mod97": "fail", "national_checksum": "not_evaluated", "registry_match": "not_evaluated", "provider_scope": "not_applicable"}
    },
    {
      "id": "de_truncated",
      "iban": "DE8937040044053201300",
      "expected_valid": false,
      "checks": {"format": "fail", "mod97": "not_run", "national_checksum": "not_evaluated", "registry_match": "not_evaluated", "provider_scope": "not_applicable"}
    },
    {
      "id": "invalid_character",
      "iban": "GB29NWBK6016133192681!",
      "expected_valid": false,
      "checks": {"format": "fail", "mod97": "not_run", "national_checksum": "not_evaluated", "registry_match": "not_evaluated", "provider_scope": "not_applicable"}
    },
    {
      "id": "empty",
      "iban": "",
      "expected_valid": false,
      "checks": {"format": "fail", "mod97": "not_run", "national_checksum": "not_evaluated", "registry_match": "not_evaluated", "provider_scope": "not_applicable"}
    }
  ]
}
