Customer Journey / Digital Journey / Onboarding Customers – GBG IDscan Documentation

Customer Journey / Digital Journey / Onboarding Customers

IEOS-driven onboarding journeys

As part of GBG IDscan enterprise onboarding suite, the mobile journey capture service (MJCS) supports end-to-end customer onboarding journeys. The onboarding journey includes the following steps:

  • Front Document Scan
  • Back Document Scan
  • Proof of address A4 [4]Scan
  • Selfie Scan
  • Active Liveness
  • Passive Liveness
  • Triple Scan/Rescan

The set of journey actions will depend on your backend server configurations. You’ll need a Journey ID to access any journey.

Required actions

he following actions are confirmed and supported by the backend:

  1. Front (Initial scan)
    1. INITIAL // Send initial front of the document to get next action.
    2. FRONTSIDE:SECONDSCAN
    3. FRONTSIDE:THIRDSCAN
  2. BACK Side scan actions
    1. BACKSIDE
    2. BACKSIDE:SECONDSCAN
    3. BACKSIDE:THIRDSCAN
  3. CAPTURESELFIE scan actions
    1. SELFIE
    2. SELFIE:SECONDSCAN
    3. SELFIE:THIRDSCAN
  4. LIVENESS scan action
    1. LIVENESS (Face match upload)
    2. LIVENESS (Liveness result upload)
  5. NFC scan action
    1. NFC
  6. ADDRESSDOCUMENT scan actions
    1. ADDRESSDOCUMENT
    2. ADDRESSDOCUMENT:SECONDSCAN
    3. ADDRESSDOCUMENT:THIRDSCAN
  7. PASSIVE LIVENESS scan actions
    1. PASSIVE_LIVENESS
    2. PASSIVE_LIVENESS:SECONDSCAN
    3. PASSIVE_LIVENESS:THIRDSCAN
  8. Journey Finished action
    1. NONE

Contact your GBG Technical Account Manager for information about your specific journey and actions available to you (supportcase@idscan.com).

Create or implement an instance of CustomerJourneyEventListener

The journey is defined by the IEOS Customer Journey configuration. It’s as easy as implementing a listener and then calling another activity.

Java

 private CustomerJourneyEventListener customerJourneyEventListener = new CustomerJourneyEventListener() {
 
   /**
   * Provides version information
   *
   */
   @Override
   public void onServerInfo(@NotNull ResponseVersionInfo info) {
 
   }
 
   /**
   * Called back if customer clicked back or exits Customer Journey.
   */
   @Override
   public void onJourneyCanceled(@NotNull CustomerJourneyError customerJourneyError) {
 
   }
 
   /**
   * Callback for failure from which we dit not succeed to restore our self.
   */
   @Override
   public void onJourneyFailed(@NotNull CustomerJourneyError customerJourneyError) {
 
   }
 
   /**
   * Callback if journey was successfully completed.
   */
   @Override
   public void onJourneyCompleted(@NotNull ResponseJourney responseJourney) {
 
   }
};

Kotlin

    private val customerJourneyEventListener = object : CustomerJourneyEventListener {
 
   /**
   * Callback if journey was successfully completed.
   */
   override fun onJourneyCompleted(responseJourney: ResponseJourney) {
 
   }
 
   /**
   * Callback for failure from which we dit not succeed to restore our self.
   */
   override fun onJourneyFailed(customerJourneyError: CustomerJourneyError) {
   }
 
   /**
   * Called back if customer clicked back or exits Customer Journey.
   */
   override fun onJourneyCanceled(customerJourneyError: CustomerJourneyError) {
   }
 
   /**
   * Provides version information
   *
   */
   override fun onServerInfo(info: ResponseVersionInfo) {
   }
}

Register your implementation using

Please note: Kotlin registers before and unregisters after response as register would create a new instance and not override old.

To register the listener:

//Start the service in onStart and attach the listener   
     @Override
     protected void onStart() {
         super.onStart();
         MjcsEventService.registerService(this, mjcsEventService -> {
             service = mjcsEventService;
             service.setCustomerJourneyEventListener(customerJourneyEventListener);
             return null;
         });
     }
 //Detach listener in onStop and stop the service
     @Override
     protected void onStop() {
         service.setCustomerJourneyEventListener(null);
         service.unregisterService(this);
         super.onStop();
     }

kotlin

//Start the service in onStart and attach the listener   
 override fun onStart() {
         super.onStart()
         registerService(this) {
             service = it
             service.customerJourneyEventListener = customerJourneyEventListener
         }
     }
 //Detach listener in onStop and stop the service
 override fun onStop() {
         service.customerJourneyEventListener = null
         service.unregisterService(this)
         super.onStop()
     }

Create an intent wit Customer journey configuration:

Kotlin

val config = CustomerJourneyConfig.Builder(
                 baseUrl = baseUrl, // Add server base URL if POC server provided by GBG IDscan its most likely https://company.idscan.cloud
                 credentials = Credentials(username, password), // Add Scanning Area credentials or use parameter name token and add it.
                 certificates = emptyList(), // Reffer to section: SSL pinning CustomerJourney
         ).build()
 // Call to open Customer Journey
         val customerJourney = Intent(this, CustomerJourneyActivity::class.java)
         customerJourney.putExtra(CustomerJourneyActivity.EXTRA_CONFIG, config)
         startActivity(customerJourney)

Please note: For security reasons ensure that credentials provided from a mobile device are scanning are and don’t have other permissions as this could compromise the security of your IEOS instance.

Don’t forget to add a check for camera permissions!

Possible onJourneyFailed(CustomerJourneyError) codes.

CodeDescription
EnterpriseService.EXCEPTION_ERRORReturns when Web service experienced an unrecoverable situation and returns a localized exception message.
500Internal server error, more information on the server side.
408Server time out
401Unauthorized, possibly bad credentials.
400Bad Request
Other error HTTP status codes possible https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
CustomerJourneyErrorErrors from customer journey itself
NONENo error.
GENERALGeneral error check message
NO_SERVER_RESPONSEJourney Failed server didn’t respond.
UNKNOWN_REQUIRED_ACTIONJourney Failed because of unknown action
CAMERAJourney Failed because of camera failure
WEB_INITIALIZINGCreating a webservice instance failed
WEB_INITIALIZING_BAD_URLCreating Retrofit instance failed with IllegalArgumentException
EXECUTION
Execution error, most likely exceptions from which we are not recovering, will send exception localized message.

For more information check JavaDocs on possible call exceptions.

Was this page helpful?