Journey coverage is planned for this flow. Split capture and standalone document upload are
the two remaining gaps, and both are on the journey roadmap. If your integration needs one of
them, tell your Customer Success Manager — customer demand is how we decide which lands first.
Until then, the steps below are the supported way to build it.
Overview
The split flow uses the OCR and Biometrics components separately instead of the combined IDV flow. This gives you full control over the journey between document capture and facial verification — you can customize loading states, handle OCR results before proceeding to biometrics, and optionally insert a review screen between the two. Modules used:ocr, biometrics, form (WELCOME, CONSENT, DOCUMENT, LOADING screens)
Instead of building from scratch, fork an existing flow from the public sample codes.
Daon provider: Document selection and the
documents parameter are not required when using the Daon provider — Daon provides its own document type selection screen. To use custom document selection instead of Daon’s built-in screen, contact your FrankieOne account team.Flow Diagram
1
Welcome Screen
Initial greeting and introduction to the verification process.
2
Consent Screen
Capture user consent for data processing.
3
Document Selection
User selects the type of document to capture.
4
OCR Capture
Camera-based document capture and data extraction.
5
Biometrics Capture
Facial verification via selfie capture.
6
Result
Verification outcome displayed.
Full Implementation
- Vanilla HTML/JS
- React
Step-by-Step Breakdown
1. Initialize the SDK
Pass the session object toOneSDK(). Include the ocr and form.provider recipe configuration.
2. Configure Components
Create form components for Welcome, Consent, Document selection, and a shared Loading screen. Create theocr and biometrics components separately.
3. Wire Up Events
Use.on(event) listeners to navigate between screens and transition from OCR to biometrics. A single loading screen is reused for both OCR and biometrics initialization — mounted to the overlay before each component, and unmounted when the component is ready.
Unmount clears the container. Calling
.unmount() on a component removes all content from the element it was mounted to — not just the component itself. Loading screens in this flow are mounted to a separate overlay element (#loading-overlay) so that unmounting them does not destroy the OCR or biometrics component underneath. If you’d rather not manage this yourself, the IDV journey assembles and maintains these screen transitions for you.4. Handle Results
Listen forresults on both the OCR and biometrics components. See Error Scenarios for details on handling failures.