Running SmartSelfie™ Authentication (Register) on Flutter

  1. Create a Callback Endpoint

  2. Get your user's Selfie

  3. Register the user

  4. Submit the Job to Smile ID

  5. Interpret your results

Registering a User

The SmartSelfie™ Authentication entails comparing a SmartSelfie™ against the Selfie on file of a registered user. To register a user, the job request payload is exactly the same as a SmartSelfie™ Authentication except for two differences (both changes are to be made in the Making a Job Request section of this page):

  1. Since you are just registering the user, you need a new user_id (details of Key in Making a Job Request section of this page)

  2. Set the job_type to "4" (details of Key in Making a Job Request section of this page)

If you want to perform a SmartSelfie™ Authentication for a user you've previous Registered or performed ran a successful Biometric KYC or Document Verification on, you can skip the "Registering a User" section in the rest of this page.

Get the User's Selfie

To successfully run SmartSelfie™ Authentication jobs you need to submit the user's selfie.Please see SmartSelfie capture as specified here, it is important to recognise that the tag supplied and or returned from this is what will need to be used to submit the Job

Submit the Job to Smile ID

var partnerParams = HashMap<String, String>();
partnerParams["user_id"] = <User ID>;
partnerParams["job_id"] = <Job ID>;

Step 2 Optional .Set the user id info if need be for updating the selfie or re enrolling a user id

// Instantiate the metadata which

var userIdInfo = HashMap<String, String>();
userIdInfo["allow_re_enroll"] = <true/false> //==> will allow reuse of user ids
userIdInfo["use_enrolled_image"] = <true/false> // ==> will allow to update enrolled selfie

Step 2: Optional Set Geo Information

var geoInfo = HashMap<String, String>();
geoInfo["altitude"] = <Altitude>;// a string value of a latitude
geoInfo["longitude"] = <Longitude>;// a string value of a longitude

Step 3: Submit the Job

 var submitResult = await SmileFlutter.submitJob( String tag,
      int jobType,
      bool isProduction,
      String callBackUrl,
      Map<String, String>? partnerParams,
      Map<String, String>? idInfo,
      Map<String, String>? geoInfo);
  • jobType should be set to 4 and is required

  • isProduction (required)should be set to true if you intent to run in production and false if you intend to run in sandbox, it is important to note you cannot run real ID Numbers check on sandbox, for test data please see here

  • callBackUrl (Optional)can be null but if not it should be a url which the job data will be posted to depending on the status the job is in

  • partnerParams (Optional)This is the object create in the step above related to partner params

  • geoInfo (Optional) This is any information that may be necessary to associate the job with any geolocation

Step 4: Interpret your results

The result hashmap will be an object which will contain results returned from the api this contains strongly typed method to get the response as individual items or as json object or as a string, for more information on how to interpret results you can read more about result codes and responses in the SmartSelfie™ Authentication section of the docs.

Last updated