NEWSMRZ Scanner is now part of barKoder.What it means for you →

DOCUMENTATION

Flutter

Cross-platform apps

Documentation / Cross-platform apps

On this page

Package: mrzscanner on pub.dev. It replaces the 1.x plugin mrzscanner_flutter, which had a different API.

Needs: Flutter 3.24 or later (Dart 3.5), Android 7.0 (API 24) or later, iOS 15 or later (Swift Package Manager or CocoaPods).

Install

flutter pub add mrzscanner

Android: minSdk = 24 in android/app/build.gradle(.kts). iOS: a camera usage text in ios/Runner/Info.plist:

<key>NSCameraUsageDescription</key>
<string>Scans the MRZ of passports and ID cards.</string>

Use

import 'package:mrzscanner/mrzscanner.dart';

await MRZScanner.registerLicense('MRZ2...');      // once; without it some fields are masked

final result = await MRZScanner.scan(const ScanSettings(documentTypes: {DocumentType.passport, DocumentType.id}));
if (result.status == ScanStatus.read) {
  final read = result.reads.first;
  print('${read.text} ${read.field('document_number')} ${read.checkDigitsValid}');
}

final fromPhoto = await MRZScanner.scanImage(path: photoPath);   // or bytes: jpegBytes

scan(settings) returns a ScanResult: status (read, stopped, timeout, permissionDenied, licenseInactive, error), reads and elapsed. ScanSettings has the settings in Scan settings: continuous, duplicateTimeout, confirmation, timeout, torch, zoom, vibrateOnRead, arOverlay, documentTypes, regionOfInterest, isolateMrz, isolatedHeight, title.

Each MrzRead has text, checkDigitsValid, kind, fields (field(name) gives one as text), corners, and isolatedMrz / isolatedMrzBytes.

Updated Oct 24, 2026 ยท Questions? Ask us