What's New
Document Support
BlinkIdScanningResult and VizResult are extended with optional fields that support new document data. The new ParentInfo type (with firstName / lastName) is exported from the result module.
| Field | Type | Description |
|---|---|---|
parentsInfo
| ParentInfo[]
| Parent first and last name (e.g. Belgium Minors ID) |
effectiveDate
| DateResult<StringResult>
| Effective date of the document |
husbandName
| StringResult
| Husband's name |
legalStatus
| StringResult
| Legal status on the document |
socialSecurityStatus
| StringResult
| Social security status |
workRestriction
| StringResult
| Work restriction (e.g. USA Social Security Card) |
FieldType is now an explicit string union, ensuring TypeScript types match all supported extraction fields. New literals include effectiveDate, parentsFirstName, parentsLastName, workRestriction, socialSecurityStatus, legalStatus, husbandName, chinPermanentExpiry (Chinese-script permanent expiry), and other dependent/document/vehicle/locality field types.
New documents (68)
New versions for existing documents (23)
New fields on existing documents
remarks, residencePermitType
parentsInfo
workRestriction
permanentExpiry (Chinese script)
SDK Improvements
createScanningSession is now the primary session API
createScanningSession(...) replaces createBlinkIdScanningSession(...) as the primary API. The old name is kept as a deprecated backward-compatible alias and will be removed in a future version.
Improved frame processing performance
ImageData buffers are now automatically transferred to the Worker rather than copied on each frame, reducing per-frame memory allocation and GC pressure. After process(...) returns, the original ImageData.data.buffer is intentionally detached and can no longer be read from the main thread.
Automatic UI state transitions after page capture
After a page is captured, the UX Manager now automatically walks through document-type-specific transition states before resuming capture:
- Two-sided IDs:
PAGE_CAPTURED → FLIP_CARD → INTRO_BACK_PAGE - Passports with barcode:
PAGE_CAPTURED → MOVE_LAST_PAGE → INTRO_LAST_PAGE - Passports without barcode: rotation-dependent chains (e.g.
PAGE_CAPTURED → MOVE_TOP → INTRO_TOP_PAGE)
Integrations that depend on exact UI-state timing or key sequences should account for these new intermediate states.
New destroy() method on BlinkIdUxManager
Provides explicit teardown for the UX Manager instance.
Clearer UI state introspection
rawUiStateKey is deprecated and replaced by two explicit getters:
uiStateKey— the stabilized, visible state key (what the feedback UI currently shows).mappedUiStateKey— the latest raw candidate key from the detector before stabilization (useful for debugging).
Configurable help tooltip delays
Help tooltip timings are now configurable via FeedbackUiOptions. The legacy timeout APIs on BlinkIdUxManager are deprecated in favor of the new options.
New "result_retrieval_failed" processing error
BlinkIdProcessingError now includes "result_retrieval_failed" to surface errors that occur when retrieving the final result from the scanning session.
Camera improvements
- Frame capture is now suppressed while the document tab is hidden; queued requests resume automatically when the tab becomes visible again.
- Double-tap zoom on camera UI elements is prevented on mobile browsers.
- The
z-indexof the camera UI overlay (when no target element is provided) is now configurable.
Accessibility improvements
Screen-reader support and ARIA semantics have been improved across the SDK's UI components, including the feedback overlay and capture dialog.
Device-specific help dialog copy
The help dialog now tailors its on-screen guidance text for desktop and mobile platforms.
Bug Fixes
- Multi-alphabet field merging: When fields on different sides of a document had values in more than one alphabet, the merging step could silently drop one of the alphabets. Both alphabets are now returned correctly.
feedbackUiOptionsignored:feedbackUiOptionswas being reassigned to an empty object, causing all passed configuration to be silently ignored.- Removed non-functional
feedbackLocalizationprop: ThefeedbackLocalizationproperty onBlinkIdComponentOptionswas a no-op and has been removed. Pass localization strings viafeedbackUiOptions.localizationStringsinstead. - Barcode extraction now optional on low-performance documents: Barcode extraction is marked as optional on documents where barcode detection has poor reliability: Cuba ID and Passport, Philippines DL, Haiti ID, Sudan ID, Egypt ID, Ecuador Passport, Ghana Passport, Iraq Passport, Nicaragua Passport, and Pakistan Passport.
Breaking Changes
BlinkIdUxManager construction replaced by async factory
The BlinkIdUxManager constructor is no longer supported. All instantiation must go through the new createBlinkIdUxManager factory, which is async and returns Promise<BlinkIdUxManager>.
Before:
const uxManager = new BlinkIdUxManager(cameraManager, scanningSession, options);After:
const uxManager = await createBlinkIdUxManager(
cameraManager,
scanningSession,
options,
);The BlinkIdUxManager type remains exported for typing purposes.
Session deletion is now the caller's responsibility
safelyDeleteScanningSession() has been removed from BlinkIdUxManager, and the deleteSession parameter has been removed from getSessionResult(). The UX Manager no longer automatically deletes the underlying WebAssembly scanning session on your behalf.
If you create more than one BlinkIdScanningSession per SDK load, you must now explicitly call scanningSession.delete() once you are done with the session to free WebAssembly heap memory. Integrations that reuse a single session for the lifetime of the page are unaffected.
UI state key renames
Several UI state keys have been renamed. Integrations that reference state keys by name should update accordingly. Notable example: SENSING_FRONT → FRONT_PAGE_NOT_IN_FRAME.
Camera dialog locale key renamed
The capture-dialog title locale key has been renamed from scan_document to dialog_title. Update any custom translation files accordingly — the translated string value can remain the same.