Scanner Compatibility Matrix

Which scanners read which symbology, and where each type fails. Honest answers, the field-tested ones, not the spec sheet.

Tested 2026-09-03. iPhone Camera = iPhone 15 Pro, iOS 18.3, stock Camera app. Android Camera = Pixel 8, Android 14, Camera app with Google Lens. Industrial imager = Zebra DS8100, firmware CAAACS00-002-R06.

QR family

TypeiPhone CameraAndroid CameraIndustrial imagerNotes
QR CodeA1A5A8Universal. The default for everything.
Micro QRV, UG✓ (Industrial readers)ZCompact (up to 35 characters). Phone camera apps do not read it; third-party iOS apps can through the Vision framework. Ship standard QR for a public audience.
rMQRUG~ (Newer Zebra, Scandit and Cognex firmware)ZRectangular Micro QR (ISO/IEC 23941). Industrial only, and check the firmware first.
GS1 Digital Link✓ (Opens URL)Q✓ (Opens URL)Q✓ (POS firmware parses the AIs)QA standard QR carrying a structured URL; scans like any link.

Other 2D symbologies

TypeiPhone CameraAndroid CameraIndustrial imagerNotes
AztecA2~ (Google Lens, some variants)A7A8Boarding passes, transit tickets. Use the airline or transit app.
Data MatrixA2✓ (Google Lens)A6A8Pharma, medical, automotive part marking. Google Lens reads it; the iPhone Camera does not.
PDF417A2~ (Google Lens, uneven)A7A8Generic PDF417 is a scanner-app or hardware format on phones.
AAMVA driver license~ (iOS 17+ license-aware flow)A3~ (License-aware apps only)UA8The Camera recognises a license barcode and offers the Wallet ID flow in participating states; it does not hand back the fields. Reading them needs a license-aware app or a PDF417 scanner.

1D barcodes (retail / industrial)

TypeiPhone CameraAndroid CameraIndustrial imagerNotes
EAN-13 / UPC-AAp~ (Google Lens)G✓ (Every retail POS)A8The retail standard. Phones read it through Lens or a scanner app, not the stock iPhone Camera.
EAN-8 / UPC-EAp~ (Google Lens)G✓ (Every retail POS)A8Compact retail variants; same reader story as EAN-13.
Code 128Ap~ (Google Lens)GA8Shipping labels and logistics. Plan on scanner hardware.
Code 39 / 93 / CodabarAp~ (Google Lens)GA8Inventory, libraries, blood banks. A scanner app or hardware, realistically.
ITF-14Ap~ (Google Lens)GA8Shipping carton labels. Warehouse scanners.
VIN (Code 39)Ap~ (Lens decodes the Code 39; VIN apps validate it)GA8Vehicle identification. Diagnostic tools and VIN apps on phones.

How to read the marks

Evidence

Payment QRs (banking-app only)

TypeCamera appsNative banking appNotes
SwissQR (Swiss QR-bill)✓ 🇨🇭 onlyStandardised by SIX Group. Swiss banking apps only.
UPI (India)~✓ 🇮🇳Google Pay, PhonePe, Paytm, BHIM. Camera apps usually open the right one.
PIX (Brazil)✓ 🇧🇷Brazilian bank apps + Mercado Pago.
SEPA (EU credit transfer)✓ 🇪🇺European bank apps that support EPC069-12.
PromptPay (Thailand)✓ 🇹🇭Thai banking apps.
PayNow (Singapore)✓ 🇸🇬Singapore banking apps + PayLah.
ZATCA e-invoice,Saudi tax authority validation. Not for consumer scanning.
FPS (Hong Kong)✓ 🇭🇰HK banking apps.
DuitNow (Malaysia)✓ 🇲🇾Malaysian banking apps.
JPQR (Japan)✓ 🇯🇵PayPay, LINE Pay, etc.
EMVCo merchant QR✓ variesGeneric standard, depends on issuer support.
Crypto / Bitcoin / Lightning~✓ walletWallet apps (BlueWallet, Phoenix, etc.) read directly.

Identity / security

TypeReaderNotes
TOTP / HOTPAuthenticator appsGoogle Authenticator, 1Password, Authy, Bitwarden, Apple Passwords.
WiFiiOS Camera ✓ / Android Camera ✓Both connect natively from the camera app.
vCard / MeCardBoth phone cameras ✓Offer "Add to Contacts."
SSH / WireGuardApp-specificTermius, ServerCat, WireGuard app respectively.
OpenPGPApp-specificOpenKeychain (Android), pgp-tools.
eSIM (LPA)iOS Camera ✓ / Android Camera ✓Native cellular setup flow.

The general rule

If your audience uses a phone camera, ship QR. Aztec, Data Matrix, and 1D codes are professional-only, generate them when you control the scanner (warehouse, factory, hospital). For retail products, EAN-13 / UPC-A are universal. For driver licenses, PDF417 is the only choice.

How we tested

Each marked entry was decoded with the named scanner against a reference payload generated by this tool; the small letters after each mark say which evidence backs it, and cells we have not tested ourselves say so. We re-test annually and after major iOS / Android camera releases. If you find a discrepancy, email hello@abundera.ai with your device + OS version and we'll re-verify.

Last verified: 2026-09-03. The tables above, the corpus page, and every "Scans on" line on a type page are rendered from one dataset, so they cannot disagree with each other.