from typing import List


def _calculate_german_iban_checksum(
    iban: str, iban_fields: str = "DEkkbbbbbbbbcccccccccc"
) -> str:
    """
    Calculate the checksum of the German IBAN format.

    Examples
    --------
    >>> iban =        'DE41500105170123456789'
    >>> _calculate_german_iban_checksum(iban)
    '41'
    """
    numbers: List[str] = [
        value
        for field_type, value in zip(iban_fields, iban)
        if field_type in ["b", "c"]
    ]
    translate = {
        "0": "0",
        "1": "1",
        "2": "2",
        "3": "3",
        "4": "4",
        "5": "5",
        "6": "6",
        "7": "7",
        "8": "8",
        "9": "9",
    }
    for i in range(ord("A"), ord("Z") + 1):
        translate[chr(i)] = str(i - ord("A") + 10)
    for val in "DE00":
        translated = translate[val]
        for char in translated:
            numbers.append(char)
    number = sum(int(value) * 10 ** i for i, value in enumerate(numbers[::-1]))
    checksum = 98 - (number % 97)
    return str(checksum)