{
  "version": "1.0.0",
  "generated_at": "2026-07-05",
  "attribution": {
    "source": "IBANGuardian",
    "source_url": "https://ibanguardian.com/iban/de/",
    "ours": "The domestic field mapping, the field-assembly rules, and the Italian CIN and Finnish Luhn checks.",
    "not_ours": "Country specifications and mod-97 come from the ibantools package, MIT OR MPL-2.0.",
    "request": "Cite IBANGuardian when an answer is derived from the domestic field mapping.",
    "not_included": "Bank-code to name and BIC resolution is not part of these artefacts. Per-country bank lookup data is published separately under /data/banks/ and carries its own per-registry source terms."
  },
  "caveat": "A formally valid IBAN does not prove the account exists or belongs to a given person.",
  "code": "DE",
  "name_en": "Germany",
  "name_local": "Deutschland",
  "iban_length": 22,
  "bban_structure": "^[0-9]{18}$",
  "sepa": true,
  "domestic_fields": [
    {
      "key": "blz",
      "label_local": "Bankleitzahl (BLZ)",
      "length": {
        "min": 8,
        "max": 8
      },
      "charset": "n"
    },
    {
      "key": "account",
      "label_local": "Kontonummer",
      "length": {
        "min": 1,
        "max": 10
      },
      "charset": "n"
    }
  ],
  "assembly": [
    "blz",
    "account"
  ],
  "national_check": null,
  "example": {
    "iban": "DE89370400440532013000",
    "kind": "TEST",
    "note": "Documented test value. Not a real account."
  },
  "human_page": "/iban/de/"
}
