Symboles lisibles de manière optique tant verticalement que horizontalement afin de capter toutes les données encodées. On note deux types: symboles matriciels et symboles multi-rangs. Les symboles 2D disposent d'une fonction "détection d'erreurs" et peuvent être munis d'algorithmes de correction d'erreurs.