IDV Workflow

flowchart TD
   getActivationCode[SDK triggers getActivationCode]
   setActivationCode[App calls setActivationCode]
   subgraph documentScan[Document Scan]
      getIDVDocumentScanProcessStartConfirmation[SDK triggers getIDVDocumentScanProcessStartConfirmation]
      setIDVDocumentScanProcessStartConfirmation[App calls setIDVDocumentScanProcessStartConfirmation]
      getIDVConfirmDocumentDetails[SDK triggers getIDVConfirmDocumentDetails]
      setIDVConfirmDocumentDetails[App calls setIDVConfirmDocumentDetails]
   end
   subgraph selfie[Selfie Biometric Capture]
      getIDVSelfieProcessStartConfirmation[SDK triggers getIDVSelfieProcessStartConfirmation]
      setIDVSelfieProcessStartConfirmation[App calls setIDVSelfieProcessStartConfirmation]
      getIDVSelfieConfirmation[SDK triggers getIDVSelfieConfirmation]
      setIDVSelfieConfirmation[App calls setIDVSelfieConfirmation]
   end
   onIDVKYCProgress[SDK triggers onIDVKYCProgress]
   getIDVBiometricOptInConsent[SDK triggers getIDVBiometricOptInConsent]
   setIDVBiometricOptInConsent[App calls setIDVBiometricOptInConsent]
   getUserConsentForLDA[SDK triggers getUserConsentForLDA]
   setUserConsentForLDA[App calls setUserConsentForLDA]
   ldaPrompt[SDK triggers LDA prompt]
   provideLDA[User provides LDA]
   onUserLoggedIn[SDK triggers onUserLoggedIn]
   getPassword[SDK triggers getPassword]
   setPassword[App calls setPassword]
   getUser[SDK triggers getUser]

   getActivationCode --> setActivationCode
   setActivationCode --> documentScan
   setActivationCode -- attempts exhausted --> getUser
   getIDVDocumentScanProcessStartConfirmation --> setIDVDocumentScanProcessStartConfirmation
   setIDVDocumentScanProcessStartConfirmation --> getIDVConfirmDocumentDetails
   getIDVConfirmDocumentDetails --> setIDVConfirmDocumentDetails
   setIDVConfirmDocumentDetails --> selfie
   getIDVSelfieProcessStartConfirmation --> setIDVSelfieProcessStartConfirmation
   setIDVSelfieProcessStartConfirmation -- true --> getIDVSelfieConfirmation
   setIDVSelfieProcessStartConfirmation -- false --> getUser
   getIDVSelfieConfirmation --> setIDVSelfieConfirmation
   setIDVSelfieConfirmation -- false --> getIDVSelfieProcessStartConfirmation
   setIDVSelfieConfirmation --> onIDVKYCProgress
   onIDVKYCProgress --> getIDVBiometricOptInConsent
   onIDVKYCProgress -- kyc fails --> getUser
   getIDVBiometricOptInConsent --> setIDVBiometricOptInConsent
   setIDVBiometricOptInConsent --> getUserConsentForLDA
   getUserConsentForLDA --> setUserConsentForLDA
   setUserConsentForLDA -- false --> getPassword
   getPassword --> setPassword
   setPassword --> onUserLoggedIn
   setUserConsentForLDA -- true --> ldaPrompt
   ldaPrompt --> provideLDA
   provideLDA --> onUserLoggedIn
   ldaPrompt -- no lda --> getPassword

    style getActivationCode fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style getIDVDocumentScanProcessStartConfirmation fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style getUser fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style getIDVSelfieConfirmation fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style getIDVSelfieProcessStartConfirmation fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style getIDVConfirmDocumentDetails fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style onIDVKYCProgress fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style getIDVBiometricOptInConsent fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style getUserConsentForLDA fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style onUserLoggedIn fill:#d4fdd4,stroke:#228b22,stroke-width:2px
    style getPassword fill:#d4fdd4,stroke:#228b22,stroke-width:2px


    style setActivationCode fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
    style setIDVDocumentScanProcessStartConfirmation fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
    style setIDVSelfieConfirmation fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
    style setIDVConfirmDocumentDetails fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
    style setIDVBiometricOptInConsent fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
    style setUserConsentForLDA fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
    style setPassword fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px
    style setIDVSelfieProcessStartConfirmation fill:#ffe4b3,stroke:#ff8c00,stroke-width:2px



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