How to Convert ISIN to WKN: Complete Guide with Examples

Last updated: February 2026 · 8 min read

If you work with German securities, you've likely encountered both ISIN and WKN numbers. While the ISIN (International Securities Identification Number) is the global standard, the WKN (Wertpapierkennnummer) remains deeply embedded in Germany's financial infrastructure. This guide explains exactly how the two relate and how to convert between them.

🔧 Quick conversion: Use our free ISIN to WKN converter tool for instant results. This guide explains the underlying logic.

Understanding the ISIN-WKN Relationship

The relationship between ISIN and WKN is straightforward for German securities: the WKN is literally embedded inside the ISIN. Every German ISIN follows this structure:

Component Characters Example Description
Country Code1–2DEAlways "DE" for German securities
Padding3–5000Three zeros as padding
WKN6–11766403The 6-character WKN
Check Digit129Luhn algorithm check digit

So the ISIN DE0007664039 contains the WKN 766403 at positions 6–11. The conversion is essentially a matter of extracting or wrapping these characters.

Step-by-Step: ISIN → WKN

Converting a German ISIN to a WKN takes three steps:

  1. Verify the country code. Check that the ISIN starts with "DE". If it doesn't, the security is not German, and it won't have a standard WKN. (Some international securities do have WKNs assigned by German exchanges, but these can't be derived from the ISIN structure alone.)
  2. Remove the prefix and check digit. Strip the first 5 characters ("DE" + "000") and the last character (check digit). You're left with 6 characters.
  3. Handle leading zeros. If the remaining 6 characters start with a zero (e.g., "0BAY01"), it's part of the WKN. WKNs can contain both letters and digits. The result is your WKN.

Worked Examples

ISIN→ Strip Prefix/SuffixWKNSecurity
DE0007664039DE000 766403 9766403Volkswagen AG
DE0007164600DE000 716460 0716460SAP SE
DE000BAY0017DE000 BAY001 7BAY001Bayer AG
DE0005140008DE000 514000 8514000Deutsche Bank AG
DE0008430026DE000 843002 6843002Munich Re

Step-by-Step: WKN → ISIN

The reverse conversion—WKN to ISIN—requires one additional step: calculating the Luhn check digit.

  1. Start with the country code. Prepend "DE" for a German security.
  2. Add padding. Insert "000" between the country code and the WKN. This creates an 11-character string: DE000 + WKN.
  3. Calculate the check digit. Apply the Luhn algorithm (also called the "double-add-double" method) to compute the 12th character. The algorithm works by converting letters to numbers (A=10, B=11, ..., Z=35), then applying modular arithmetic.
  4. Append the check digit. The result is your complete ISIN.

The Luhn Algorithm for ISINs

The Luhn check digit calculation for ISINs works as follows:

  1. Convert all letters to numbers: A=10, B=11, ..., Z=35. Digits remain unchanged.
  2. Concatenate all resulting digits into a single string.
  3. Starting from the rightmost digit, double every second digit.
  4. If doubling produces a number greater than 9, subtract 9 from it.
  5. Sum all digits.
  6. The check digit is (10 - (sum mod 10)) mod 10.

⚠️ Common mistake: Many implementations get the "starting position" wrong. For ISINs, you double the digits at even positions when counting from the right of the expanded digit string. Getting this wrong will produce an incorrect check digit about 90% of the time.

What About Non-German Securities?

The direct structural conversion only works for German ISINs (starting with "DE"). However, many international securities also have WKNs assigned by German exchanges for trading on venues like XETRA or the Frankfurt Stock Exchange.

For example, Apple Inc. has:

  • ISIN: US0378331005 (US country code, contains CUSIP, not WKN)
  • WKN: 865985 (assigned by German exchange, not derivable from the ISIN)

For these cases, you need a lookup database or API that maps between the identifiers. Our converter tool handles these cross-border lookups using a comprehensive securities database.

Where WKN Is Still Used

Despite the global adoption of ISIN as the primary identifier, WKN remains relevant in several contexts:

  • German brokers and banks: Most German online brokers (comdirect, Trade Republic, Scalable Capital, ING DiBa) still prominently display WKNs alongside ISINs in their platforms.
  • German financial media: Publications like Börse Online, Handelsblatt, and finanzen.net routinely reference WKNs. Many German investors search for stocks by WKN rather than ISIN.
  • Derivative products: Structured products (Zertifikate, Optionsscheine) issued in Germany are commonly identified by their WKN, especially in marketing materials.
  • Legacy systems: Older banking and settlement systems in Germany still use WKN as a primary key internally.
  • Tax reporting: German tax documents and annual statements frequently list both identifiers.

Historical Context

The WKN system was introduced in 1955 by the German banking association (Bundesverband deutscher Banken) to standardize securities identification across German financial institutions. Originally, WKNs were purely numeric and 6 digits long.

In 2003, the WKN system was expanded to include alphanumeric characters (letters A–Z in addition to digits 0–9) to accommodate the growing number of securities, particularly derivative products. This change increased the theoretical capacity from 1 million to over 2 billion unique identifiers.

When ISINs were adopted globally in the 1990s and 2000s, Germany integrated the WKN into the ISIN structure by using it as the national security identifier portion. This design decision means that for German-issued securities, the two systems are inherently linked—a feature that's unique to Germany and makes conversion particularly straightforward.

Programmatic Conversion

If you need to convert identifiers programmatically, here's the logic in pseudocode:

// ISIN → WKN (German securities only)
function isinToWkn(isin):
    if isin.length != 12: return error("Invalid ISIN length")
    if not isin.startsWith("DE"): return error("Not a German ISIN")
    wkn = isin.substring(5, 11)  // characters 6-11
    return wkn

// WKN → ISIN
function wknToIsin(wkn):
    if wkn.length != 6: return error("Invalid WKN length")
    base = "DE000" + wkn
    checkDigit = calculateLuhnCheckDigit(base)
    return base + checkDigit

// Luhn check digit for ISIN
function calculateLuhnCheckDigit(code):
    // Convert letters: A=10, B=11, ..., Z=35
    digits = ""
    for char in code:
        if char is letter: digits += (char - 'A' + 10)
        else: digits += char
    
    // Double every second digit from right
    sum = 0
    for i from digits.length-1 to 0:
        d = int(digits[i])
        if (digits.length - i) is even: d = d * 2
        if d > 9: d = d - 9
        sum += d
    
    return (10 - (sum % 10)) % 10

Common Pitfalls

  • Assuming all WKNs are numeric. Since 2003, WKNs can contain letters. For example, Bayer AG's WKN is BAY001.
  • Confusing WKN with other 6-character codes. A SEDOL is also 7 characters (6 + check digit), but it's a completely different system used in the UK.
  • Trusting the conversion for non-DE ISINs. Extracting characters 6–11 from a US ISIN gives you part of the CUSIP, not a WKN.
  • Ignoring alphanumeric WKNs in regex validation. If your system validates WKNs with [0-9]{6}, it will reject valid WKNs like BAY001. Use [A-Z0-9]{6} instead.

Frequently Asked Questions

Can I convert any ISIN to a WKN?

Directly, only German ISINs (starting with "DE"). For international securities, you need a database lookup, as the WKN is assigned independently by German exchanges.

Is the WKN being phased out?

Not in practice. While ISIN is the official standard for regulatory purposes, WKN remains widely used in Germany. All major German brokers, financial media, and tax documents continue to display WKNs. It's likely to persist for decades due to its deep integration into German financial culture.

Are WKNs unique globally?

WKNs are unique within the German system. However, the same 6-character string might coincidentally match an identifier in another country's system. Always use WKN in conjunction with the German market context to avoid ambiguity.

How do I validate a WKN?

Unlike ISINs and CUSIPs, WKNs have no check digit. A valid WKN is simply 6 alphanumeric characters. The only way to verify that a WKN refers to an actual security is to look it up in a database.

Try It Yourself

Convert ISIN to WKN instantly with our free tool — no registration required.

Open Converter →