Scanner Compatibility Matrix

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

Tested April 2026. iPhone Camera = iOS 18.4 / Visual Look Up. Android Camera = Pixel 9 / Google Lens. "Industrial" = Honeywell Xenon Ultra / Zebra DS9908. "Banking" = country-specific bank apps (Swiss banking app for SwissQR, etc.).

QR-family (1D-equivalent: universal)

TypeiPhone CameraAndroid CameraIndustrialNotes
QR CodeUniversal. The default for everything.
Micro QRCompact (≤35 chars). iOS reads from 18.0+.
rMQR~~Rectangular Micro QR (ISO/IEC 23941). Industrial scanners only — phones inconsistent.
GS1 Digital LinkStandard QR with structured URL — scans like any URL.

Other 2D symbologies

TypeiPhone CameraAndroid CameraIndustrialNotes
AztecBoarding passes, transit tickets. Phone cameras don't decode it. Use airline/transit app.
Data Matrix✓ (Lens)Pharma, medical, automotive parts marking. Google Lens reads; Apple does not.
PDF417✓ (limited)iOS 17+ reads driver-license PDF417. Other PDF417 mileage varies.
AAMVA driver-license✓ (Wallet)iOS 16+ recognises it for Apple Wallet ID. Otherwise needs a license-aware app.

1D barcodes (retail / industrial)

TypeiPhone CameraAndroid CameraIndustrialNotes
EAN-13 / UPC-ARetail standard. iOS recognises, opens product lookup.
EAN-8 / UPC-ECompact retail variants.
Code 128~Shipping labels. Industrial scanners only — phone cameras inconsistent.
Code 39 / 93 / Codabar~Inventory, libraries, blood banks. Industrial-only realistically.
ITF-14Shipping carton labels. Industrial scanners required.
VIN (Code 39)✓ (some apps)Vehicle ID. Specialised apps only on phones.

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-invoiceSaudi 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 entry was decoded with the named scanner against a reference payload generated by this tool. 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-04-13.