v8001.0.0
Updated to BlinkID native SDKs v8001.0.0 (Android & iOS). See also the platform release notes.
What's new
- Accelerated support for newly issued documents
- Optimized document support and extraction pipeline to reduce time-to-production for newly issued identity documents, and to apply document-rule / knowledge improvements without a full SDK upgrade when possible.
- Zero-day readiness: depending on design availability and when a new document begins circulating, BlinkID can deliver 0-day support—and at a maximum, within 4 weeks of the document's release.
- Future-proof compliance: workflows can adapt to global document updates faster than before.
- Enhanced frame selection & image quality
- Smart quality selection: analyzes multiple frames and selects a crisp, stable image before extraction.
- Higher first-pass success by filtering blurry or unstable frames early.
- Flexible speed vs. quality tuning via
documentCaptureModule.inputImageSelectionStrategy(camera / video flow).
- Enhanced DirectAPI / photo-mode intelligence
documentCaptureModule.cropTypereplaces the former boolean cropped-image flag (InputImageCropType.notCropped|unknown|cropped).croppedandunknownapply to DirectAPI (photo) flows only; camera UX (performScan) requiresnotCropped.
- Expanded & improved barcode capabilities
- Aztec barcode support via
barcodeModule.aztecScanningEnabled. - Improved speed and accuracy for QR, DataMatrix, and selected 1D formats.
- Aztec barcode support via
- Parsing & extraction improvements
- Improved Persian digit recognition for regional documents.
- Mandatory data redaction: Netherlands DL QR code added to the redacted list.
- OTA (over-the-air) resources: configure separately from base ML resources via
BlinkIdSdkSettings.otaResourcesConfig(see API changes below). - Added
refreshLicenseLeaseto refresh the BlinkID SDK license lease while the SDK is initialized (see API changes below).
Bug fixes
- Document swap data caching: fixed an issue in continuous-video mode where data from a previously scanned document could persist after a new document was introduced. The SDK now detects document swaps and clears cached images (cropped faces, signatures, barcodes, etc.) to prevent cross-contamination.
- Fixed
resourcesConfig.requestTimeoutandotaResourcesConfig.requestTimeout: custom timeout values are now applied on Android and iOS (previously ignored or dropped on the bridge).
New documents support
- Bailiwick Of Jersey - Driver's License
- Bailiwick Of Jersey - Paper Passport
- Bailiwick Of Jersey - Polycarbonate Passport
- Botswana - Driver's License
- Brunei - Polycarbonate Passport
- Democratic Republic Of The Congo - Polycarbonate Passport
- Dominican Republic - Polycarbonate Passport
- Eswatini - Driver's License
- Gambia - Driver's License
- Georgia - Residence Permit
- Iceland - Identity Card
- Iceland - Residence Permit
- Japan - Specified Residence Card
- Liechtenstein - Residence Permit
- Liechtenstein - Resident ID
- Mali - Polycarbonate Passport
- Mauritania - Resident ID
- Monaco - Identity Card
- Monaco - Residence Permit
- Nepal - Identity Card
- Palestine - Identity Card
- San Marino - Identity Card
- Sudan - Driver's License
- UK, Northern Ireland - Voter ID
- USA, Arkansas - Medical Marijuana ID
- USA, Massachusetts - Medical Marijuana ID
- USA, Michigan - Medical Marijuana ID
- USA, New Jersey - Medical Marijuana ID
- Zambia - Residence Permit
New document versions for supported documents
- Bolivia - Driver's License
- Burkina Faso - Identity Card
- Central African Republic - Paper Passport
- Estonia - Identity Card
- Dominican Republic - Identity Card
- Guyana - Identity Card
- Israel - Identity Card
- Luxembourg - Polycarbonate Passport
- Mexico, Baja California - Driver's License
- Mexico, Hidalgo - Driver's License
- Oman - Identity Card
- Oman - Resident ID
- Uruguay - Identity Card
- USA, Mississippi - Identity Card
- USA, Nebraska - Driver's License
- USA, Nebraska - Identity Card
- USA, North Carolina - Identity Card
- USA, Oklahoma - Driver's License
- USA, Oklahoma - Identity Card
- USA, Texas - Weapon Permit
New extracted fields from documents
- Brazil national identity card and regional (22 regions) identity cards now extract parent names (
parentsInfo). - Croatia identity card: added support for cyrillic values in
sex,address,issuingAuthority,lastNameandfirstName, and latinsex. - Virgin Islands of the United States identity card and driver's license: added
documentSubtypeandspecificDocumentValidity. - Tunisia identity card: added arab values for
lastName,firstName,placeOfBirth; addeddateOfBirth. - Argentina identity card and alien identity card: use
cardAccessNumberinstead ofdocumentAdditionalNumber.
Requirements
- Flutter 3.44.1 or newer
- Dart 3.12.1 or newer
- iOS 16.0 or newer; Swift Package Manager must be enabled (
flutter config --enable-swift-package-manager) - Android API level 24 or newer; compileSdk 36; AGP 9.1.0; Kotlin 2.2.21
- Integrator apps do not need Jetpack Compose setup; Compose is used internally by BlinkID UX
API changes
Document class info (breaking)
DocumentClassInfo.country,region, anddocumentTypeare now nested objects (Country/Region/DocumentTypewithid?andrawValue) instead of flat enum/string values.- Use
idfor known, build-time classifications (same role as the old flat enums). - Use
rawValuewhen OTA introduces classifications not yet present in the typed enums.
- Use
ClassFilter/DocumentFilterstay flat: passCountryID/RegionID/DocumentTypeIDon the filter (not the nested result shape).
Document capture & barcode settings
documentCaptureModule.inputImageCropped(boolean) →documentCaptureModule.cropType:InputImageCropType.notCropped|unknown|cropped(defaultnotCropped).- Added
documentCaptureModule.inputImageSelectionStrategy:InputImageSelectionStrategy.singleImage|optimizeForSpeed|balanced|optimizeForQuality(camera / video; defaultbalanced). - Added
barcodeModule.aztecScanningEnabled(defaultfalse).
Scanning results
- Added
ethnicityonBlinkIdScanningResultandVizResult. - Added
fullNameonParentInfo. - Added
FieldType.parentFullNameandFieldType.ethnicityfor redaction.
License lease refresh
- Added
refreshLicenseLease()— refreshes the BlinkID SDK license lease. Can be called periodically to maintain an active license status; the required frequency depends on your license configuration. The SDK must already be initialized (vialoadBlinkIdSdkor a scanning method) before calling this method.
SDK settings: nested resources + OTA (breaking for customized resource fields)
Flat resource fields on BlinkIdSdkSettings move into nested configs. resourcesConfig.requestTimeout and otaResourcesConfig.requestTimeout are RequestTimeout? (three millisecond fields), not int?. Use RequestTimeout.all(milliseconds) or per-field configuration. Omit requestTimeout to keep native defaults (30 seconds per timeout).
| Old (flat) | New |
|---|---|
downloadResources |
resourcesConfig.download |
resourceDownloadUrl |
resourcesConfig.serviceUrl |
resourceLocalFolder |
resourcesConfig.localFolder |
resourceRequestTimeout |
resourcesConfig.requestTimeout (RequestTimeout, milliseconds) |
bundleIdentifier |
resourcesConfig.bundleIdentifier (iOS) |
New optional otaResourcesConfig:
| Field | Default | Notes |
|---|---|---|
checkForUpdates |
true |
When false, skips update checks; first-run download still occurs if OTA resources are missing locally |
strict |
false |
When true, SDK init fails if an OTA update download fails |
serviceUrl |
https://blinkid-ota.microblink.com |
Do not cross-wire with base resources URL (https://models.cdn.microblink.com/resources) |
localFolder |
platform default (microblink/blinkid/ota on Android, OTAMLModels on iOS) |
Keep separate from base resourcesConfig.localFolder |
requestTimeout |
native default (30 s per timeout) | Milliseconds; RequestTimeout with connectionTimeoutMilliseconds, writeTimeoutMilliseconds, readTimeoutMilliseconds; omit unset fields to keep native default for that timeout |
bundleIdentifier |
— | iOS prebundled OTA resources |
Minimal BlinkIdSdkSettings(licenseKey: ...) (and optional resourcesConfig: ResourcesConfig(download: true)) still works; OTA uses native defaults when otaResourcesConfig is omitted.
final sdkSettings = BlinkIdSdkSettings(
licenseKey: licenseKey,
resourcesConfig: ResourcesConfig(
download: true,
// serviceUrl / localFolder optional — platform defaults apply
// requestTimeout: RequestTimeout.all(30000), // optional — milliseconds
),
otaResourcesConfig: OtaResourcesConfig(
checkForUpdates: true,
strict: false,
),
);Not exposed in Flutter
Native intermediate analysis APIs added in v8001 (e.g. process/analysis crop signals, AwaitingMoreStableInputImages, vizExtractionType) are not part of the Flutter public API. Flutter continues to expose session settings and final BlinkIdScanningResult only.