2D -viivakoodi on graafinen esitys numero- tai kirjainsarjasta. Se on suunniteltu helppokäyttöiseksi, pienikokoiseksi ja helposti luettavaksi skannerilla. Viivakoodi tunnistaa kohteen, henkilön tai muun kohteen yksilöllisellä numerolla, joka mahdollisesti linkittää tietokannan tietoihin. Tämän avulla viivakoodin skannaus tuo esiin hinnat, tuotekuvaukset tai lääketieteelliset potilastiedot riippuen skannausjärjestelmän toiminnasta. Toisin kuin sen yksiulotteinen vastine, 2D-viivakoodi pystyy tallentamaan paljon enemmän tietoa, pääasiassa siksi, että se käyttää ruudukon kaltaista pistejoukkoa yksinkertaisen rivisarjan sijasta.
2D-viivakoodi kehittyi yksiulotteisesta suunnittelusta, joka on kehitetty auttamaan päivittäistavarakauppojen varaston hallinnassa. Monien vuosikymmenten aikana se on käynyt läpi useita muutoksia, kun tekniikka hitaasti tavoittaa konseptin. Lopulta konseptin toteuttaminen ja levittäminen eri puolilla maailmaa tarvitsi yhteistyötä useiden suurten yritysten välillä.
2D-viivakoodi on edistysaskel yksiulotteisen viivakoodin suhteen useista syistä. Se pystyy edustamaan muutakin kuin numeerista tietoa ja voi sen sijaan edustaa kirjaimia, numeroita ja muita merkkejä. Se sisältää myös virheenkorjausmenetelmän, jolla varmistetaan, että koodi luetaan tietokoneeseen oikein.
Arkaluonteisilla aloilla 2D -viivakoodi voi sisältää myös erilaisia salausmenetelmiä. Yksi näistä on peittää se, mikä muutoin voisi näkyä normaalina datana levittämällä kuvaan merkityksettömiä symboleja tai kuvioita. Toinen tapa on salata tiedot ja salata ne uudelleen ennen tulostamista, mikä tarjoaa lisäsuojaa luvattoman henkilön lukemien tietojen suojaamiseksi.
Jotkin 2D -viivakoodit pystyvät tallentamaan yli 7,000 merkkiä painettuun muotoonsa. Tämän ansiosta niitä on voitu tallentaa ja lähettää paljon enemmän tietoa kuin tavallinen yksiulotteinen viivakoodi. Niitä voidaan käyttää tietojen tallentamiseen henkilötodistuksiin ja lääketieteellisiin karttoihin tai tekstitiedostojen lähettämiseen. Niistä on tullut jopa mainosajoneuvoja, koska ne voidaan skannata mobiililaitteilla, joihin on ladattu asianmukainen ohjelmisto. Tämä on mahdollista, koska tiedot voidaan lähettää yksinomaan itse viivakoodin kautta ilman, että niitä tarvitsee indeksoida olemassa olevaan tietokantaan.
2D -viivakoodin muunnelmia on kehitetty. Näitä ovat 3D -viivakoodit, jotka syövytetään fyysisesti materiaalien pintaan valmistuksen aikana ja luetaan sitten määrittämällä ero syväterävyydestä. Radiotaajuustunnistus (RFID) poistaa suurimman osan 2D-viivakoodin optisista piirteistä ja käyttää sen sijaan painettua piiriä viivakooditietojen lähettämiseen vastaanottimille, jotka voivat lukea sen. Tästä kehityksestä huolimatta yksiulotteisia ja 2D-viivakoodeja käytetään edelleen yleisimmin.