Additional Document Scan

🪪 Additional Document Scan Workflow – Ditto ID IDV SDK

This document explains the end-to-end process and API interactions involved in performing an Additional Document Scan using the Ditto ID IDV SDK.


šŸŽÆ Purpose

The Additional Document Scan feature enables the mobile app to request and capture a secondary identity document from a logged-in user. This may be required in scenarios such as:

  • Multi-document KYC
  • Policy-based re-verification
  • Additional compliance or audit steps

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

  1. āœ… User logs in to the mobile app.
  2. šŸ“² App calls initiateIDVAdditionalDocumentScan(reason) to trigger the scan.
  3. šŸ”” SDK triggers event getIDVDocumentScanProcessStartConfirmation.
  4. šŸ–¼ļø App displays a prompt explaining why the document is required and shows a Start button.
  5. šŸ‘† User taps Start.
  6. šŸ“¤ App responds using setIDVDocumentScanProcessStartConfirmation(true, workflow).
  7. šŸ“ø SDK launches scanner and captures the document.
  8. 🧠 SDK performs OCR and extracts document details.
  9. šŸ“„ SDK triggers getIDVConfirmDocumentDetails with OCR data.
  10. 🧾 App shows the extracted fields for user review (e.g., Name, DOB).
  11. šŸ‘¤ User taps Confirm or Rescan:
    • If Confirm: setIDVConfirmDocumentDetails(true, mode)
    • If Rescan: setIDVConfirmDocumentDetails(false, mode)
  12. āœ… SDK triggers onIDVAdditionalDocumentScan with the final results.
  13. 🟢 App displays success screen or proceeds to the next step.


flowchart TD

    userLogsIn[User Logs In] --> onUserLoggedIn[SDK triggers onUserLoggedIn]
    onUserLoggedIn --> initiateIDVAdditionalDocumentScan[App calls initiateIDVAdditionalDocumentScan]
    initiateIDVAdditionalDocumentScan --> getIDVDocumentScanProcessStartConfirmation[SDK triggers getIDVDocumentScanProcessStartConfirmation]
    getIDVDocumentScanProcessStartConfirmation --> setIDVDocumentScanProcessStartConfirmation[App calls setIDVDocumentScanProcessStartConfirmation]
    setIDVDocumentScanProcessStartConfirmation --> initiateDocCapture[SDK initiates Document Capture]
    initiateDocCapture --> scanDoc[User scans Document]
    scanDoc --> onIDVAdditionalDocumentScan[SDK triggers onIDVAdditionalDocumentScan]

    %% Success Callback Styling
    style onUserLoggedIn fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style getIDVDocumentScanProcessStartConfirmation fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style onIDVAdditionalDocumentScan fill:#d4fdd4,stroke:#228b22,stroke-width:2px

    %% App-Initiated Call Styling
    style initiateIDVAdditionalDocumentScan fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
    style setIDVDocumentScanProcessStartConfirmation fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
    

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


šŸ“¦ APIs Involved

API / EventPurpose
initiateIDVAdditionalDocumentScanTriggers the scan
getIDVDocumentScanProcessStartConfirmationRequests user consent
setIDVDocumentScanProcessStartConfirmationLaunches scanner if user agrees
getIDVConfirmDocumentDetailsReturns extracted document fields
setIDVConfirmDocumentDetailsConfirms or cancels the extracted data
onIDVAdditionalDocumentScanFinal data delivery after confirmation

🧾 Example Screen Content

  • ā€œPlease scan your secondary identity proofā€
  • ā€œEnsure the document is in focus and readableā€
  • Buttons:
    • āœ… ā€œStart Scanā€
    • šŸ” ā€œRescanā€
    • āœ”ļø ā€œConfirmā€

🧠 Notes

  • This flow is available only after user login.
  • The challengeMode in this flow is typically 11.
  • The final result is received via the onIDVAdditionalDocumentScan event.