The amount of data that can be represented by a QR code symbol depends on the data type (mode, or input character set), version (1, ..., 40, indicating the overall dimensions of the symbol, i.e. 4 × version number + 17 dots on each side), and error correction level. The maximum storage capacities occur for version 40 and error correction level L (low), denoted by 40-L. |
The information capacity of a QR code varies based on several factors: the data type (mode), the version, and the error correction level. |

|
Here's a detailed breakdown of each of these factors: |
1. Data Type (Mode) |
QR codes can encode data in different modes, which determine the type of data being stored. The main modes are: |
Numeric: Only digits (0-9). Alphanumeric: Includes digits (0-9), uppercase letters (A-Z), and a few special characters (space, $, %, *, +, -, ., /, :). Byte: Binary data (8-bit bytes), which can include characters from the ISO/IEC 8859-1 character set. Kanji: Double-byte characters from the Shift JIS character set, used for Japanese text. Structured Append: Allows data to be split across multiple QR codes. FNC1 in First Position: For use in GS1 QR codes. FNC1 in Second Position: Allows for additional industry-specific applications. |

|
2. Version |
QR codes come in 40 different versions, each specifying the dimensions of the code: Version 1: 21x21 modules (dots). Version 2: 25x25 modules. ... Version 40: 177x177 modules. Each increase in version adds 4 modules to each side of the QR code, allowing for more data to be stored. |

|
3. Error Correction Level |
QR codes include error correction to ensure that the data can still be read even if the code is partially damaged. There are four levels of error correction: L (Low): Recovers 7% of data. M (Medium): Recovers 15% of data. Q (Quartile): Recovers 25% of data. H (High): Recovers 30% of data. Higher error correction levels increase the redundancy in the QR code, which reduces the amount of data that can be stored but improves robustness. |

|
Maximum Storage Capacities |
For the highest version (40) and the lowest error correction level (L), the maximum storage capacities for each mode are as follows: |
Numeric Mode Version 40-L: Up to 7,089 characters |
Alphanumeric Mode Version 40-L: Up to 4,296 characters |
Byte Mode Version 40-L: Up to 2,953 bytes |
Kanji Mode Version 40-L: Up to 1,817 characters |

|
Example |
Let's consider an example with version 40 and error correction level L: Numeric: A QR code of version 40-L can encode up to 7,089 numeric characters. This is ideal for encoding long sequences of digits, such as a long series of telephone numbers or IDs. Alphanumeric: For alphanumeric characters, version 40-L can encode up to 4,296 characters. This can be useful for encoding textual data that includes letters and numbers. Byte: When encoding binary data, version 40-L can store up to 2,953 bytes, allowing for more complex data types, including ASCII text and binary files. Kanji: In the Kanji mode, version 40-L can encode up to 1,817 Kanji characters, which is useful for Japanese text. |

|
Error Correction Impact |
The error correction level impacts the storage capacity significantly. For example, at error correction level H (high), the capacity for the same version would be reduced because more space is used for error correction codewords. |
Version 40-H Capacities Numeric: 4,296 characters Alphanumeric: 2,953 characters Byte: 1,817 bytes Kanji: 1,127 characters |

|
Conclusion |
The data capacity of a QR code is influenced by the type of data being encoded, the version of the QR code, and the error correction level chosen. Version 40 with error correction level L offers the maximum capacity, but higher levels of error correction provide better data recovery at the cost of reduced capacity. |