Browser SDK
November 4, 2024
v2.10.0
Improvements
- Adjusted thresholds for screen detection model in order to decrease FAR and FRR of existing model
- Significant improvements in photocopy detection. Both the False Rejection Rate and False Acceptance Rate are reduced by ~50% as measured on the default match level.
- Improved automatic camera selection for iOS devices
- Fixed a memory leak in Safari
April 2, 2024
v2.9.0
Improvements
- Included hand, photocopy, and screen detection models to achieve liveness functionality
- Added anonymization info on which side was anonymized. String data is anonymized using an asterisk instead of blanking the result.
- Expanded the number of supported credit card types by 100%.
- Improved data extraction, including a 30% reduction in incorrect processing of CVV field.
What's new in the BlinkCard Recognizer?
- Improved scanning performance and added support for virtually any card layout
- Improved IBAN parser which now supports more IBAN formats
- Added option
allowInvalidCardNumber
which allows reading invalid card numbers to avoid endless scanning on samples and test cards:- use with care as it might reduce accuracy in certain situations in production
- for invalid card number the flag
cardNumberValid
inBlinkCardRecognizer.Result
will be set tofalse
- Added new settings
handScaleThreshold
,handDocumentOverlapThreshold
,screenAnalysisMatchLevel
,photocopyAnalysisMatchLevel
. These settings are used in combination with the new liveness features. - Added a new callback
LivenessStatusCallback
, which is invoked when each side of a card is scanned. It is called with one parameter, aLivenessStatus
enum. UseBlinkCardRecognizer.setLivenessStatusCallback
method to set the callback.
BlinkCard Recognizer Result
- Two new booleans:
firstSideAnonymized
andsecondSideAnonymized
have been added to indicate whether the first or second side of the card has been anonymized, respectively. - New result
documentLivenessCheck
which has new liveness model results. It contains liveness information about the first and second sides of the card. Liveness information contains the results of checks performed on the card using screen detection, photocopy detection, and the presence of a live hand.
Dynamic webassembly memory management
Depending on the device used, the SDK will allocate different amounts of memory on startup. This is primarily used as a mitigation mechanism for iOS's memory management, which often blocks webassembly memory growth.
Although it's not recommended, this can be overridden using WasmSDKLoadSettings.initialMemory
.
Other fixes:
- Fixed an issue where certain iOS devices would display a zoomed in preview.
February 24, 2023
v2.7.0
Platform-related SDK changes
- Added new
fallbackAnonymization
property toAnonymizationSettings
. Iftrue
, anonymization is applied on all fields of the image if extraction is uncertain.
Improvements
- Improved support for diverse credit card designs.
- Improved anonymization performance.
- The SDK can now be used with the
wasm-unsafe-eval
content security policy.
Bugfixes
- We've fixed a problem with camera focus on iPhone devices that use iOS 16 or newer, most notably iPhone 14.
- We've fixed a bug with CSS
::part()
pseudo-selector to enable safe CSS customization of nested elements likemb-camera-toolbar
.
Optimizing camera usage
- We are now preventing aborting the scanning process when using the UI component until the camera is not being fully initialized due to potential issues with reusing the camera's resources.
Environment changes
- We've updated environment to Node v16.3.0.
July 12, 2022
v2.6.1
- We've fixed a problem that has caused the enormous size of WebAssembly bundles.
July 8, 2022
v2.6.0
Improvements
- We've added support for 1000+ new credit card types.
- We've decreased wrong PAN field processing by 30% for horizontal credit cards, and by 60% for vertical credit cards.
- We've improved the Anonymization functionality for Quick Read formats on VISA credit cards, as well as general improvements for all other credit card types.
Platform-related SDK changes
- [BREAKING CHANGE] Due to security reasons, we've added a mechanism to load worker script from an external location.
- New property
WasmSDKLoadSettings.workerLocation
was added for this purpose and represents a path to the external worker script file. - If omitted, SDK will look for the worker script in the
resources
directory.
- New property
UI Improvements
- We've added property
recognitionPauseTimeout
to the UI component that defines scanning pause after the first side of a document has been scanned.- The purpose of this property is to give the end-user enough time to flip the document before scanning is resumed.
- Default value is
3800
and represents time in milliseconds.
- We've exposed property
cameraExperienceStateDurations
on the UI component that can be used to change the default durations of UI animations.
February 7, 2022
v2.4.3
- We've updated Microblink logo and color
December 23, 2021
v2.4.2
Platform-related SDK changes
- We've added methods for programmatically starting camera and image scan when using the UI component.
- It's possible to call
startCameraScan()
andstartImageScan(File)
methods on the custom web element.
- It's possible to call
- We've standardized error structures returned from the WebAssembly library and the UI component.
- See SDKError.ts and ErrorTypes.ts for a complete list of possible error codes.
- We've completed support for
part::
selector and added an example. - We've simplified integration of the UI component with Angular and React frameworks.
Bug fixes
- We've ensured that all SDK errors can be visible from
fatalError
andscanError
events in the UI component. - We've fixed a bug where a user couldn't upload an image after the camera scan failed to start.
- We've fixed a bug where the video feed wasn't released in the scenario where the UI component was removed from the DOM.
- We've improved memory management during the initialization of the UI component to avoid the creation of unnecessary web workers.
October 4, 2021
v2.4.1
Platform-related SDK changes
- We've added a camera management UI module for the selection of connected cameras
- We've added
VideoRecognizer.changeCameraDevice
method that can be used to change the active camera device during the scanning session
- We've added
- We've improved accessibility of the UI component by changing background contrasts and increasing default font sizes
Bug fixes
- We've optimised memory usage of the SDK by fixing a problem where every refresh of the UI component would result in a new instance of web worker
August 13, 2021
v2.4.0
New features
- From now on, BlinkCard reads and extracts the expiry date in MM/YYYY format.
Platform-related SDK changes
- We've improved the performance of the SDK by adding support for WebAssembly SIMD.
- This increases the scanning performance on compatible browsers up to 77% and up to 94% in cases when WebAssembly threads are also supported.
- Keep in mind that this feature requires a compatible browser. Only
advanced
andadvanced-threads
binaries are using SIMD. In case that the browser doesn't support this feature,basic
binary will be used.
- We've reduced the memory fragmentation during video processing, resulting in a smaller memory footprint.
June 29, 2021
v2.3.0
New features
- We've added support for vertical payment cards.
- As of this release, BlinkCard supports the Visa Quick Read format (the one where the card number spans through four lines).
- We've changed the threshold for "Camera too far" and "Camera too near" callbacks. From now on, the card needs to be closer to the camera.
SDK changes
- We've added a mechanism to automatically delete an instance of worker script in case of unsuccessful SDK initialization.
- New method
WasmSDK.delete()
was added for this purpose and is available on every instance of the SDK.
- New method
- We've changed improper error handling in the
VideoRecognizer
class.- From now on, it's possible to catch all errors that happen during the video recognition.
April 30, 2021
v2.2.2
SDK changes
- We've exposed a couple of functions that are used by the SDK to determine which WebAssembly bundle to load and from which location
- Function
detectWasmType()
returns the best possible WebAssembly bundle based on the features a browser supports. - Function
wasmFolder( WasmType )
returns the name of the resources subfolder of the provided WebAssembly bundle type. - For more information on how to implement these functions, see
WasmLoadUtils.ts
file.
- Function
Bugfixes
- Container width size on UI component for action label (
Scan or choose from gallery
) and action buttons (Device camera
andFrom gallery
) are now responsive on Safari.
April 20, 2021
v2.2.1
- We've fixed a broken
rollup.config.js
which resulted in an unusable UMD development bundle
April 19, 2021
v2.2.0
Breaking changes
- We've changed the way how recognizer options are set up when using the UI component
- You can now specify how a recognizer should behave by using the new
recognizerOptions
property. - To see the full list of available recognizer options, as well as examples on how to use them, check out the relevant source code.
- You can now specify how a recognizer should behave by using the new
Changes to the BlinkCardRecognizer
- We've added support for even more horizontal card layouts
- We've added anonymization options for string and image results:
- You can now hide the following fields:
- Card number
- Card number prefix
- CVV
- Owner
- IBAN
- Choose the
AnonymizationMode
for each field:None
ImageOnly
- Black boxes will cover chosen dataResultFieldsOnly
- String data will be redacted from the result, images are not anonymizedFullResult
- Both images and string data will be anonymized
- Card number has further anonymization options available through
CardNumberAnonymizationSettings
:prefixDigitsVisible
- Defines how many digits at the beginning of the card number remain visible after anonymizationsuffixDigitsVisible
- Defines how many digits at the end of the card number remain visible after anonymization
- You can now hide the following fields:
Performance improvements
- We've added three different flavors of WebAssembly builds to the SDK, to provide better performance across all browsers
- Unless defined otherwise, the SDK will load the best possible bundle during initialization:
Basic
Same as the existing WebAssembly build, most compatible, but least performant.Advanced
WebAssembly build that provides better performance but requires a browser with advanced features.AdvancedWithThreads
Most performant WebAssembly build which requires a proper setup of COOP and COEP headers on the server-side.
- For more information about different WebAssembly builds and how to use them properly, check out the relevant section in our official documentation
- Unless defined otherwise, the SDK will load the best possible bundle during initialization:
SDK changes
- Constructor of
VideoRecognizer
class is now public
Bugfixes
- We fixed the initialization problem that prevented the SDK from loading on iOS 13 and older versions
February 10, 2021
v2.0.0
- Initial release of the BlinkCard In-browser SDK
- Supported recognizers:
- BlinkCard recognizer specialized for scanning various credit or payment cards.