Selfie Biometric Capture

šŸ“ø Selfie Capture – Overview in Ditto ID Identity Verification (IDV)


🧭 Purpose

The selfie capture step in Ditto ID’s IDV flow ensures that the person submitting the document is the actual document holder. It enables biometric face matching and liveness detection, fulfilling compliance and security needs for:

  • KYC (Know Your Customer)
  • AML (Anti-Money Laundering)
  • Account activation or re-verification

🧠 Key Features

  • Liveness Detection: Confirms user is physically present
  • Face Match Scoring: Matches selfie with document photo
  • Front/Back Camera Toggle: Configurable through API
  • Anti-Spoofing: Detects masks, photos, or replays
  • Secure Flow: Fully handled inside SDK for tamper-resistance

šŸ‘Øā€šŸ’» Developer Responsibilities

  • Listen to getIDVSelfieProcessStartConfirmation
  • Show a UI with:
    • Instructional text: ā€œEnsure good lighting and a clear face viewā€
    • A ā€œStartā€ button
  • Call setIDVSelfieProcessStartConfirmation upon user action
  • Handle post-capture events or errors

šŸ”„ Workflow (Step-by-Step)

  1. āœ… User completes document verification
  2. šŸ”” SDK triggers getIDVSelfieProcessStartConfirmation
  3. šŸ–¼ļø App shows a screen with instructions to prepare for selfie capture
  4. šŸ‘¤ User taps "Start"
  5. šŸ“¤ App calls setIDVSelfieProcessStartConfirmation(true, useBackCamera, workflow)
  6. šŸ“· SDK launches selfie camera and captures the selfie
  7. 🧾 SDK triggers getIDVSelfieConfirmation
  8. šŸ–¼ļø App displays the captured selfie to the user
  9. šŸ‘† User taps:
    • āœ… "Confirm" āž App calls setIDVSelfieConfirmation(true, workflow, challengeMode)
    • šŸ” "Retake" āž App calls setIDVSelfieConfirmation(false, workflow, challengeMode)
  10. šŸ”„ If confirmed: SDK proceeds to the next step in the IDV workflow
  11. šŸ” If rejected: SDK re-launches selfie capture and returns to step 6
flowchart TD
    
   Start([Start]) -->|āœ… User completes document verification| B[šŸ”” SDK triggers getIDVSelfieProcessStartConfirmation]
    B --> C[šŸ–¼ļø App shows selfie prep screen]
    C -->|šŸ‘¤ User taps Start| E[šŸ“¤ App calls setIDVSelfieProcessStartConfirmation]
    E --> F[šŸ“· SDK launches selfie camera and captures selfie]
    F --> G[🧾 SDK triggers getIDVSelfieConfirmation]
    G --> H[šŸ–¼ļø App displays captured selfie to user with match result]
    H -->|šŸ‘† User choice| J[šŸ“¤ App calls setIDVSelfieConfirmation]
    J -->|Continue| L[šŸ”„ SDK proceeds to next step in IDV workflow]
    J -->|Rescan Document| M[SDK calls getIDVDocumentScanProcessStartConfirmation]
    J -->|Rescan Selfie| E
    
    style B fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style G fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style M fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style E fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
    style J fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px

🟩 Green - Callbacks issued by Ditto ID SDK
🟧 Orange - APIs invoked by the Client App