Releases: microblink/blinkid-flutter
v8000.0.0
- Updated to Android SDK v8000.0.0 and iOS SDK v8000.0.0
What's new
- The list of all supported documents and result fields is now available here.
- SDK modularization & enhanced flexibility: We’ve transformed our core architecture. Features previously known as "fallback modes" are now independent SDK modules.
- Tailored implementation: Users can now toggle specific modules such as Capture, Barcode, MRZ, or VIZ scanners to build a workflow that fits their exact needs.
- Total control: This modular approach offers more flexibility, allowing you to use BlinkID as a comprehensive recognition tool or a specialized scanner, all while leveraging our latest feature updates.
- Expanded barcode support: When operating in Barcode Mode, BlinkID is no longer limited to PDF417.
- Universal scanning: We've added support for QR codes, Code 128, Code 39, ITF, EAN, UPC, and DataMatrix.
- Versatility: This expansion allows the SDK to be used across a wider variety of document types beyond standard IDs.
- Streamlined extraction & data redaction (anonymization): We are putting more power in the hands of our integrators by removing restrictive custom rules.
- Document rules: Custom document rules have been removed. Customers can now implement their own logic based on result completeness to determine how a document is processed.
- Data redaction (Anonymization): We’ve transitioned away from fixed data redaction (anonymization) rules. You can now programmatically decide which fields to mask and how to handle them based on the specific data returned.
- We are transitioning our terminology from 'anonymization' to 'data redaction' to more accurately reflect the nature of this feature.
- Intelligent timeout mechanism: To balance performance with accuracy, we've introduced a new timeout feature
- Non-Blocking scans: Ensures a smooth user experience by preventing "stuck" scan states.
- Step-by-Step decisions: After each extraction step, you can decide whether the current data is sufficient or if the SDK should continue processing to gather more information.
- Document-specific improvements
- EU residence permits: For documents with redundant fields on both the front and back, BlinkID now intelligently merges these into the top-level results for better data consistency.
- Egypt driver’s license: Enhanced data extraction to now include Date of Birth (DOB) as an additional field.
- Zimbabwe ID: Improved data extraction to support and return both alphabetic and numeric characters within the document number field.
- We have added extraction of date of birth from document numbers on Egypt DL.
- If a residence permit has a "remarks" field on both the front and back side, values of these fields will be combined in the top level result.
Bug fixes
- Date conversion accuracy: Resolved an issue where Islamic-to-Gregorian date conversions could occasionally differ by +/- 1 day. These conversions are now precise and consistent.
- We have fixed MRZ parsing rules for Zimbabwe ID and the new version of Brunei ID; these are now successfully extracted.
New documents support
- Argentina - Polycarbonate Passport
- Bhutan - Identity Card
- Georgia - Polycarbonate Passport
- Jamaica - Identity Card
- Maldives - Driver's License
- Mongolia - Identity Card
- New Zealand - Proof Of Age Card
- Pakistan - Origin Card
- Saint Kitts And Nevis - Polycarbonate Passport
- South Sudan - Identity Card
- Virgin Islands Of The United States - Driver's License
- Virgin Islands Of The United States - Identity Card
New document versions for supported documents
- Argentina - Alien ID
- Argentina - Identity Card
- Armenia - Identity Card
- Australia, Australian Capital Territory - Driver's License
- Australia, Australian Capital Territory - Identity Card
- Brunei - Identity Card
- Bulgaria - Residence Permit
- Denmark - Driver's License
- Georgia - Identity Card
- Greece - Residence Permit
- Guatemala - Alien ID
- Guatemala - Identity Card
- Guyana - Paper Passport
- Kosovo - Driver's License
- Kyrgyzstan - Polycarbonate Passport
- Liechtenstein - Identity Card
- Mauritius - Identity Card
- Nigeria - Identity Card
- Puerto Rico - Driver's License
- Puerto Rico - Identity Card
- Uganda - Identity Card
- USA - Paper Passport
- USA - Polycarbonate Passport
- USA, Montana - Driver's License
- USA, Montana - Identity Card
- USA, New York City - Identity Card
- Venezuela - Driver's License
New segments supported on documents
- Pakistan, proof of registration: renamed fathersName to additionalNameInformation
- Mauritania, ID: renamed documentNumber to personalIdNumber
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
Breaking changes
- Module-based scanning settings: flat fields on
BlinkIdScanningSettings(e.g.glareDetectionLevel,CroppedImageSettings) are replaced by optional module configs:DocumentCaptureModuleSettings,MrzModuleSettings,BarcodeModuleSettings,VizModuleSettings - UX settings: use
BlinkIdScanningUxSettings(already renamed fromBlinkIdUiSettingsin v7.6; v8000 builds on the module model) - Method signatures:
performScanandperformDirectApiScanuse named parameters instead of positional arguments - SDK settings constructor:
BlinkIdSdkSettings(licenseKey: ...)— the v7 positionalsdkLicenseKeyparameter name is gone - Class filter: prefer
ClassFilter()..includeDocuments = [...]/..excludeDocuments = [...]instead ofClassFilter.withIncludedDocumentClasses(...) - Anonymization → redaction:
AnonymizationSettings/ fixed rules removed; useRedactionSettings(DirectAPI) orRedactionSettingsResolver(camera scan) - Custom document rules removed:
customDocumentRulesonBlinkIdScanningSettingsis no longer supported — implement completeness logic in your app - Session timeouts:
BlinkIdSessionSettingsaddsstepTimeoutDurationandinactivityTimeoutDuration(milliseconds) - Enum/result changes: see Minor API changes below (
VIRGIN_ISLANDS_US→VIRGIN_ISLANDS_OF_THE_UNITED_STATES, removedFieldTypevalues, newcardAccessNumber, etc.)
For step-by-step migration examples, see the Migrating from v7.x section in the README and the native v8000 migration guide.
Minor API changes
- Added new items to enums:
- new
FieldTypeenum values:CardAccessNumber - new
Typeenum values:ORIGIN_CARD - new
Countryenum value:VIRGIN_ISLANDS_OF_THE_UNITED_STATES
- new
- Added member results to
ScanningResultandVizResult:- 'cardAccessNumber'
- Removed items from enums:
- removed
FieldTypeenum values: RemovedParentsLastName2,ParentsFirstName2,ChinPermanentExpiry - removed
Countryenum value:VIRGIN_ISLANDS_US
- removed
v7.7.0
- Updated to Android SDK v7.7.1 and iOS SDK v7.7.0
What's New
- Barcode extraction is marked as optional on documents where barcode detecton has bad performance (Cuba ID and Passport, Philippines DL, Haiti ID, Sudan ID, Egypt ID, Ecuador Passport, Ghana Passport, Iraq Passport, Nicaragua Passport, Pakistan Passport)
Bug fixes
- In situations where some fields on different sides of a document have values in multiple alphabets it could happen that while merging results we overwrite them and keep only one alphabet. With this version this is fixed and both alphabets are returned.
- Fixed issue with incorrect retrieval of properties
primaryIDandsecondaryIDfrom theMrzResult.
New documents support
- Angola - Identity Card
- Antigua And Barbuda - Paper Passport
- Barbados - Paper Passport
- Belize - Paper Passport
- Benin - Driver's License
- Benin - Polycarbonate Passport
- Bermuda - Paper Passport
- Bermuda - Polycarbonate Passport
- Bhutan - Paper Passport
- Botswana - Paper Passport
- Brazil, Acre - Identity Card
- Brazil, Espirito Santo - Identity Card
- Brazil, Mato Grosso Do Sul - Identity Card
- Brazil, Paraiba - Identity Card
- Brazil, Piaui - Identity Card
- Brazil, Rio Grande Do Norte - Identity Card
- Brazil, Tocantins - Identity Card
- Central African Republic - Paper Passport
- Chad - Paper Passport
- Chad - Polycarbonate Passport
- Congo - Paper Passport
- Democratic Republic Of The Congo - Paper Passport
- Djibouti - Paper Passport
- Djibouti - Polycarbonate Passport
- Equatorial Guinea - Paper Passport
- Equatorial Guinea - Polycarbonate Passport
- Eswatini - Identity Card
- Ethiopia - Paper Passport
- Federated States Of Micronesia - Paper Passport
- Gabon - Paper Passport
- Gabon - Polycarbonate Passport
- Ghana - Polycarbonate Passport
- Ghana - Social Security Card
- Guinea - Driver's License
- Guinea Bissau - Paper Passport
- Guinea Bissau - Polycarbonate Passport
- India, Odisha - Driver's License
- India, Uttarakhand - Driver's License
- Ireland - Proof Of Age Card
- Laos - Paper Passport
- Lesotho - Paper Passport
- Liberia - Driver's License
- Liberia - Social Security Card
- Madagascar - Paper Passport
- Malawi - Driver's License
- Mauritania - Identity Card
- Mauritania - Polycarbonate Passport
- Mexico - Social Security Card
- Mongolia - Paper Passport
- Mongolia - Polycarbonate Passport
- Namibia - Paper Passport
- Niger - Paper Passport
- Nigeria - Nin Card
- Papua New Guinea - Paper Passport
- Philippines - eID
- Philippines - MySSS Card
- Puerto Rico - Identity Card
- Saint Thomas And Prince - Paper Passport
- Saint Vincent And The Grenadines - Paper Passport
- Seychelles - Paper Passport
- Seychelles - Polycarbonate Passport
- South Sudan - Polycarbonate Passport
- Taiwan - Paper Passport
- Togo - Gendarmerie ID
- Togo - Military ID
- Togo - Police ID
- Togo - Residence Permit
- Togo - Voter ID
- Tonga - Paper Passport
- Yemen - Paper Passport
- Ghana - Health Insurance Card
New document versions for supported documents
- Afghanistan - Identity Card
- Cameroon - Identity Card
- Chile - Driver's License
- Colombia - Alien ID
- Costa Rica - Identity Card
- Malaysia - Driver's License
- Moldova - Identity Card
- Netherlands - Driver's License
- Panama - Driver's License
- South Korea - Driver's License
- South Korea - Identity Card
- Sweden - Driver's License
- UK - Polycarbonate Passport
- USA - Veteran ID
- USA, Alaska - Identity Card
- USA, California - Driver's License
- USA, California - Identity Card
- USA, North Carolina - Driver's License
- USA, Texas - Driver's License
- USA, Texas - Identity Card
- USA, Texas - Weapon Permit
- Vietnam - Driver's License
- Zimbabwe - Identity Card
New segments supported on documents
- Greece, Estonia, Finland, Hungary, Ireland, Latvia, Lithuania, Norway, Romania, Slovenia, Croatia, Slovakia, Poland, Malta, Austria, Luxembourg, Netherlands, Bulgaria, Portugal, Cyprus, Sweden, Czechia, Belgium, Germany, Italy, Spain, Switzerland, Denmark - Residence Permit: remarks, residencePermitType
- Belgium, Minors ID: added parentsInfo vector
- Nicaragua, Passport: barcode
- USA, Social Security Card: workRestriction
- China, Identity Card: permanentExpiry (Chinese)
Minor API changes
-
Added new items to enums:
- new
FieldTypeenum values:effectiveDate,parentsLastName,parentsLastName2,parentsFirstName2,workRestriction,parentsFirstName,socialSecurityStatus,legalStatus,husbandName,chinPermanentExpiry - new
DocumentTypeenum values:ninCard,mysssCard,gendarmerieId,policeId - new
Countryenum value:saintThomasAndPrince - new
Regionenum values:acre,espiritoSanto,matoGrossoDoSul,paraiba,piaui,rioGrandeDoNorte,tocantins,odisha,uttarakhand
- new
-
Added member results to
BlinkIdScanningResultandVizResulteffectiveDatehusbandNamelegalStatussocialSecurityStatusworkRestrictionparentsInfo(new class)
v7.6.1
- Updated to Android SDK v7.6.1 and iOS SDK v7.6.2
What's New
- For some documents document type was returned as None, which was causing confusion. To prevent this, we are filling in document type from the barcode in case customers are using BarcodeId mode.
- The fix is applied to all the AAMVA types, plus some others (Argentina, Canada, Colombia, Nigeria, Panama, Paraguay, SouthAfrica)
v7.6.0
- Updated to Android SDK v7.6.0 and iOS SDK v7.6.0
What's New
- Added two new methods in
BlinkidFlutter:loadBlinkIdSdk&unloadBlinkIdSdkloadBlinkIdSdk- Initializes and loads the BlinkID SDK if it is not already loaded. This method can be called in advance to preload the SDK before starting a scanning session. Doing so reduces loading time for theperformScanandperformDirectApiScanmethods since all resources will already be available and the license verified.unloadBlinkIdSdk- Terminates the BlinkID SDK and releases all associated resources. This method safely shuts down the SDK instance and frees any allocated memory. If the parameterdeleteCachedResourcesis set totrue, the method performs a complete cleanup, including deletion of all downloaded and cached SDK resources from the device.
- You can now configure the SDK to load resources locally instead of downloading them. Set
downloadResourcesto false, and provide the local resource path usingresourceLocalFolder(Android) andbundleIdentifier(iOS). - Added support for capturing the back of US and India passports that feature a barcode
- Prevent parsing of two-line MRZ in TD1 format unless it's explicitly allowed. This will prevent false positive MRZ extraction on documents where the last line of the MRZ is covered or not fully visible
New Documents Support
- Angola - Paper Passport
- Bahrain - Polycarbonate Passport
- Burkina Faso - Polycarbonate Passport
- Cameroon - Driver's License
- Canada, Manitoba - Metis Federation Card
- East Timor - Polycarbonate Passport
- El Salvador - Paper Passport
- Eritrea - Paper Passport
- France - Adr Certificate
- Germany - Adr Certificate
- Ghana - Voter ID
- India, Telangana - Driver's License
- Ivory Coast - Paper Passport
- Japan - Polycarbonate Passport
- Liberia - Paper Passport
- Liberia - Voter ID
- Malawi - Identity Card
- Malawi - Paper Passport
- Maldives - Polycarbonate Passport
- Mali - Paper Passport
- Mauritius - Paper Passport
- Oman - Vehicle Registration
- Paraguay - Polycarbonate Passport
- Rwanda - Driver's License
- Senegal - Driver's License
- Sierra Leone - Paper Passport
- Somalia - Paper Passport
- Switzerland - Adr Certificate
- Togo - Driver's License
- Togo - Paper Passport
- USA, Maryland - Medical Marijuana ID
- Vietnam - Paper Passport
New Document Versions for Supported Documents
- Chile - Polycarbonate Passport
- India - Paper Passport
- Moldova - Identity Card
- Pakistan - Identity Card
- Peru - Identity Card
- Romania - Identity Card
- Slovakia - Identity Card
- USA, California - Driver's License
- USA, California - Identity Card
- USA, New Hampshire - Identity Card
- USA, Georgia - Medical Marijuana ID
- USA, Pennsylvania - Medical Marijuana ID
- USA, South Carolina - Driver's License
- USA, South Carolina - Identity Card
- USA, Texas - Driver's License
- USA, Texas - Identity Card
New Segments Supported on Documents
- Switzerland, Residence Permit -
dateOfEntry - Hungary, Identity Card -
maidenName,nationality,sexOrGender,documentNumber,dateOfBirth - Greece, Identity Card -
fathersName(Latin and Greek),mothersName(Latin and Greek),personalIdNumber,issuingAuthority(Greek),municipalityOfRegistration(Greek) - Mexico, Voter ID -
sectionCode,stateCode,municipalityCode,localityCode - Mexico, Consular Voter ID -
stateCode,stateName
Renamed segments
- Hungary - Identity Card -
additionalNameInformation->mothersName
New languages
- Added 33 new languages (see full list here)
Breaking changes
- Renamed the
bundleURLtobundleIdentifierinBlinkIdSdkSettings. - Renamed
BlinkIdUiSettingstoBlinkIdScanningUxSettings.
Native platform changes
iOS
- The SDK was built with Xcode 26
Android
- Updated Kotlin to
v2.0.21in theblinkid-corelibrary. Theblinkid-uxandmicroblink-uxlibraries already used Kotlinv2.1.20. - Target SDK updated to API Level 36
Bugfixes
- Users are no longer forced to scan back sides of Alien and Refugee passports
- Fixed the issue with Togo ID where document number from VIZ was overriden by a wrong value from MRZ
Other changes
- Changed default
tiltDetectionLevelfromOfftoMid
v7.5.0
- Updated to Android SDK v7.5.0 and iOS SDK v7.5.0
What's New
- We introduced event tracking across the SDK lifecycle, giving you deeper insights into user journeys, success rates, and drop-off points during scanning sessions. These enhanced analytics make it easier to identify optimization opportunities and ensure the best possible user experience.
- Updated detection analysis logic in case of photo mode
- Added new
parsedresult member to the BarcodeResult which indicates whether the raw barcode data was successfully parsed - Barcode recognition is now allowed on all document classes; unparsable barcodes will be returned as raw data
Bugfixes
- Fixed crash when the optional
BlinkIdUiSettingsparameter was not being passed to theperformScanmethod.
v7.4.0
- Updated to Android SDK v7.4.0 and iOS SDK v7.4.0
New Documents Support
- Canada, Newfoundland And Labrador - Identity Card
- Canada, Northwest Territories - Driver's License
- Canada, Northwest Territories - Identity Card
- Canada, Prince Edward Island - Identity Card
- Canada, Yukon - Identity Card
New Document Versions for Supported Documents
- Canada, Yukon - Driver's License
Bug fixes
- Fixed issue with incorrect
DriverLicenseDetailedInfoserialization
v6.13.3
v7.3.0
- Updated to Android SDK v7.3.0 and iOS SDK v7.3.1
What's new
- Improved extraction for Canada/Nunavut ID and DL by introducing error correction for "1" and "I" characters which look the same in the font used on a document
- Added
BlinkIdUiSettingsfor customizing various aspects of the UI used during the scanning process
New Documents Support
- Canada, Nunavut - Driver's License
- Canada, Nunavut - Identity Card
- Liberia - Identity Card
- Mali - Identity Card
- UK - Military ID
New Document Versions for Supported Documents
- Bahrain - Identity Card
- Canada - Weapon Permit
- Chile - Alien ID
- Chile - Identity Card
- Finland - Driver's License
- Indonesia - Driver's License
- Kosovo - Identity Card
- Latvia - Polycarbonate Passport
- Mexico, Chiapas - Driver's License
- Mexico, Ciudad de Mexico - Driver's License
- Mexico, Durango - Driver's License
- Mexico, Jalisco - Driver's License
- Sri Lanka - Driver's License
- USA, Alaska - Driver's License
- USA, New Hampshire - Driver's License
- European Union - Health Insurance Card
New Beta Documents Support
- Canada - Non Card Tribal ID
- Dominica - Paper Passport
- Dominica - Polycarbonate Passport
- UAE - Diplomatic ID
- USA, Georgia - Medical Marijuana ID
New Document Versions for Beta-Supported Documents
- Egypt - Driver's License
- Mexico, Quintana Roo - Driver's License
- Philippines - Postal ID
- Vietnam - Identity Card
New Segments Supported on Documents
- European Union, Health Insurance Card -
countryCode - Italy, Identity Card -
documentOptionalAdditionalNumber - France, Identity Card -
additionalNameInformation - UK, Asylum Request -
residencePermitType,remarks - UK, Residence Permit -
residencePermitType,remarks,certificateNumber,nationalInsuranceNumber
Renamed segments
- Bahrain - Identity Card -
documentNumber->personalIdNumber
Bugs and fixes
- Fixed document number extraction from Canada/Nunavut barcodes
- Fix for ARGENTINA ID and ALIEN_ID documents - made separate barcode scanning step optional for these documents; they have a barcode on the front side, and requiring barcode extraction was causing the scanning process to get stuck on the front
- Fixed issue with
DateResultwhereday,monthandyearwere not properly returned
iOS-specific
- Fixed issue with adding
customDocumentRulesinBlinkIdScanningSettings
v6.13.2
v7.2.0
7.2.0
The version 7 release of the BlinkID SDK.
- Updated to Android SDK v7.2.0 and iOS SDK v7.2.0
- For more information about the inital version 7 release, see the release notes for the native SDKs for Android and iOS.
Breaking changes
-
The plugin now requires:
- iOS version 16.0 and above.
- Android API version 24 and above.
- Flutter version 3.29 and above.
-
Class
MicroblinkScannerhas been renamed toBlinkidFlutter. -
Method
scanWithCamerahas been renamed toperformScan. -
Method
scanWithDirectApihas been renamed toperformDirectApiScan. -
Many of the older settings have been renamed to be more intuitive, for more information see the blinkid_settings.dart file, and the native documentation for Android and iOS.
-
See section Version 7 plugin usage for more details about how to use each method, and how to handle the scanned results.
Version 7 plugin usage
The performScan method
The performScan method launches the BlinkID scanning process with the default UX properties.
It takes the following parameters:
- BlinkID SDK settings
- BlinkID session settings
- The optional ClassFilter object for filtering documents.
BlinkID SDK Settings - BlinkIdSdkSettings: the class that contains all of the available SDK settings. It contains settings for the license key, and how the models, that the SDK needs for the scanning process, should be obtained.
BlinkID Session Settings - BlinkIdSessionSettings: the class that contains various settings for the scanning session. It contains the settings for the ScanningMode and BlinkIdScanningSettings, which define various parameters that control the scanning process.
The optional ClassFilter class - ClassFilter: the class which controls which documents will be accepted or reject for information extraction during the scanning session.
- The implementation of the
performScanmethod can be viewed here in the blinkid_flutter_method_channel.dart file.
The performDirectApiScanning method
The performDirectApiScan method launches the BlinkID scanning process inteded for information extraction from static images.
It takes the following parameters:
- BlinkID SDK settings
- BlinkID session settings
- First image string in the Base64 format
- The optional second image string in the Base64 format
BlinkID SDK Settings - BlinkIdSdkSettings: the class that contains all of the available SDK settings. It contains settings for the license key, and how the models, that the SDK needs for the scanning process, should be obtained.
BlinkID Session Settings - BlinkIdSessionSettings: the class that contains various settings for the scanning session. It contains the settings for the [ScanningMode] and [BlinkIdScanningSettings], which define various parameters that control the scanning process.
The first image Base64 string - String: image that represents one side of the document. If the document contains two sides and the ScanningMode is set to automatic, this should contain the image of the front side of the document. In case the ScanningMode is set to single, it can be either the front or the back side of the document. If the document contains only one side (for example, various passports), the SDK will automatically detect it, and will not look for the other side.
The optional second image Base64 string - String: needed if the information from back side of the document is required and the ScanningMode is set to automatic.
- The implementation of the
performDirectApiScanmethod can be viewed here in the blinkid_flutter_method_channel.dart file. - All of the mentioned settings can be found in the blinkid_settings.dart file.
BlinkID result
-
Both methods return the
BlinkIdScanningResultobject, which contains the results of scanning a document, including the extracted data and images from the document. -
All of the available results can be viewed here.
Implementation guide