Face Match Flow

Current Flow Version - v1.2

Available Since - 1 Mar 2026

Overview

Face Match is an enterprise-grade biometric engine designed for high-precision 1:1 facial reconciliation. Architected as a robust backend-to-backend solution, it allows partners to programmatically submit two distinct image payloads, a "Selfie" image and a "Reference Document" to determine identity parity. Unlike rigid systems limited to specific ID types, Face Match is document-agnostic, capable of calculating biometric similarity across a diverse range of source materials, including national passports, driver’s licenses, or internal corporate credentials.

Key Features

Technical ImplementationStrategic Value
Agnostic Source MatchingAlgorithmic flexibility to compare real-time selfies against any provided reference document (KTP, Passport, KITAS, etc.).Universal Utility: Enables a single integration to support multi-national onboarding or varied document requirements.
Backend-to-Backend APISecure, RESTful architecture allowing partners to pass image data directly from their existing infrastructure.Architectural Freedom: Offers total control over the user interface and data flow, ensuring the engine fits into any established workflow.
Biometric Similarity ScoringGenerates a high-confidence similarity coefficient based on unique facial geometry and landmark mapping.Objective Risk Control: Replaces subjective manual verification with standardized, data-driven identity assurance.
Resolution ResilienceEngineered to extract high-fidelity templates even from suboptimal, low-resolution, or aged document portraits.Operational Efficiency: Minimizes false rejections caused by varying document print qualities or environmental factors.

High Level Flow

Web SDK (H5 Flow)


    sequenceDiagram
    autonumber
    actor User    
    participant PWA as Partner Web App
    participant PBE as Partner Backend

    box rgb(240, 240, 240) IAB
        participant WA as IAB Web App<br>(Mobile/Tablet/Desktop)
        participant WA_Mobile as IAB Web App<br>(Mobile)
        participant BE as IAB Backend
    end

    rect rgb(230, 245, 255)
        Note over PWA, BE: Initialization
        PWA->>PBE: Get launch URL
        PBE->>BE: Get launch URL for user with required params
        BE-->>PBE: Launch URL
        PBE-->>PWA: Launch URL
    end


    rect rgb(235, 230, 255)
        Note over PWA, BE: Capture image and Submission processing
        PWA->>WA: Invoke flow
    alt Device Have Camera
        rect rgb(2255, 245, 230)
            note over WA: Capture image(s)
            WA->>BE: Start submission processing
            note over BE: Submission Processing
            note over WA: Status Polling
            WA->>WA: Do next action:<br>- RETRY (From Capture Image)<br>- STATUS (Show IAB status screen)<br>- EXIT (Completed)
        end

    else Device doesn't have any camera
        rect rgb(254, 249, 235)
            note over WA: Display QR code on the screen
            User->>WA_Mobile: Scan QR code and open FR flow
            note over WA_Mobile: Capture image(s)
            WA_Mobile->>BE: Start submission processing
            note over BE: Submission Processing
            note over WA_Mobile: Status Polling
            WA_Mobile->>WA_Mobile: Do next action:<br>- RETRY (From Capture Image)<br>- STATUS (Show IAB status screen)<br>- EXIT (Completed)

            WA->>WA: Do next action:<br>- STATUS (Show IAB status screen)<br>- EXIT (Completed)
            User->>WA: Clicks CTA on success/error screen (when nextAction is STATUS)
            WA->>PWA: Sends callback to partner with status=COMPLETED/ERROR and error_code
        end
    end

    rect rgb(230, 245, 255)
        Note over PWA, BE: Get Result Details
        BE->>PBE: Submission Processing Compete Callback
        PWA->>PBE: Call "Get Submission Details" API <br/>(correlationId aka partner session id)
        PBE->>BE: Call "Get Submission Details" API (correlationId, partner token)
        BE-->>PBE: return submission details
        PBE-->>PWA: Continue processing
    end

    Note over PWA: Show/process result
    end

Detailed Steps:
  1. Partner BE calls the Generate Partner Token API on IAB BE to generate partner token, with client-id and pass-key provided by IAB.
    • This API returns a partner token along with its validity in response. Partner BE can use the same partner token for making multiple requests as long as the token is valid.
    • Once the token gets expired, partner BE can generate a new token using the same API.
    • This token needs to be passed in all subsequent API calls to IAB BE for authentication and authorisation.
  2. Partner BE calls the Initiate Flow API on IAB BE to generate the launch URL which will open the IAB flow. This API exposes several configuration parameters which allows the partner to customise the flow as per their requirements for which you can refer to the Web SDK Guide mentioned under the Integration Contracts section.
  3. The IAB supports two modes: launching the flow directly on the device, or displaying a QR code (Smart QR Mode) for the user to continue on a mobile device.
    • Smart QR mode is disabled (Default): The user proceeds directly to the flow.
    • Smart QR mode is enabled: the IAB FE detects whether the user's device has a camera.
      • Device has a camera:
        • The user proceeds to the onboarding screen of the corresponding flow.
        • The IAB FE captures the user's image(s) and uploads them to the IAB BE for processing.
      • Device does not have a camera:
        • The IAB FE displays a QR code on the screen.
        • The user scans the QR code with a mobile device and completes the flow in their mobile browser.
        • The IAB FE captures the user's image(s) from the mobile device and uploads them to the IAB BE for processing.
  4. For processing the image(s), partner needs to expose an API which IAB BE will call to get the reference Image. The image(s) captured by IAB FE will be compared against this reference image.
  5. IAB web app will poll IAB BE until the processing is done and show loader to the user in the meantime.
  6. Once the processing is done, IAB BE will return the relevant next action (RETRY, STATUS, EXIT) to IAB FE.
    • If the next action is RETRY, IAB FE will show a retry screen to the user and the user can either choose to retry the process or exit the flow.
    • If the next action is STATUS,
      • IAB FE will show a success/error screen with a CTA. IAB can hide this CTA upon request from the partner via BE configs.
      • On click of the CTA, IAB FE will send a callback to the partner FE with status and error_code.
    • If the next action is EXIT, IAB FE will immediately send a callback to the partner FE with status and error_code.
  7. To get the result of the submission, the Partner BE will call the Get Submission Details API on the IAB BE with the following relevant inputs:
    • x-partner-session-id
    • x-partner-user-id
    • x-partner-user-id-type
    • x-onekyc-token (partner token)
  8. IAB BE will return the submission result to partner BE.

Integration Contracts

Document NameLink
BE API GuideBE API Guide
Web SDK GuideWeb SDK Guide