Low Code Integration - Hosted OneSDK

An alternative low-code integration for customers that want to onboard as soon as possible with as litle as possible.

Introduction

Our goal is to simplify integration for our customers. Using our self-hosted onboarding URL via OneSDK, you can seamlessly connect with FrankieOne services with little or no code required.

Hosted OneSDK provides an easy low-code integration for our customers to seamlessly connect to FrankieOne services.

Hosted OneSDK also allow customers to receive updates automatically without them having to touch the code. By having a consistent and controlled experience on the FrankieOne side we have ensured the integration is ‘best practice’ and meets the security standards, and thus better compliance and data protection, which reduces a lot of engineering and security overheads from customers aiming to go live as soon as possible.

✅ Benefits

The FrankieOne Hosted OneSDK solution provides enterprise clients:

  • One API integration for both Web and Mobile applications with all the IDV vendors are covered in the same API

  • An onboarding URL that is hosted and managed by FrankieOne.

  • The ability to send the URL via SMS or easily open it within mobile and web applications via iFrame or WebView

  • Have the Send Biometrics link in Portal, which is also available for individual and UBO/Associated entities in Portal

  • The benefit of FrankieOne handling the URL without the customer having to install OneSDK on their side. If a new beta feature is released, it can be automatically enabled, or optionally choose to use the most stable version.

  • A seamless, low-code integration for faster development and market entry.

  • A significant improvement on the end-user onboarding experience, reducing the time spent to addressing issues and re-initiating processes by having the ability to send onboarding link via the FrankieOne Portal, as needed.

Integration

Integrating FrankieOne Hosted OneSDK is as simple as you generating an onboarding URL to use within your native mobile and web application to onboard your end users.

Step 1. Generating an onboarding URL using API

To generate the URL, use Hosted Onboarding API with the following sample body request. There are a couple of pe-defined flowIds you can use:

flowIdDescription
idvAll in one IDV flow to capture OCR and Biometrics
ocr_onlyOnly capture OCR without Biometrics
manual_kyc (coming soon)eKYC only flow (Manual capture)
doc_uploadRequesting additional documents to be attached to a business entity

Sample Request - New customer reference

{
    "applicationRef": "UNIQUE_APPLICATION_REF",
    "customerRef": "UNIQUE_REFERENCE",
    "consent": true,
    "flowId": "idv",
    "phoneNumber": "04xxxxxxxx",
    "phoneCode": "+61",
    "recipientName": "TEST",
    "sendSMS": true
}

Sample Request - Existing entityId

{
    "consent": true,
    "phoneNumber": "04xxxxxxxx",
    "phoneCode": "+61",
    "flowId": "idv",
    "sendSMS": true,
    "entity": {
        "entityId": "",
        "addresses": [
            {
                "country": "AUS"
            }
        ],
        "extraData": [
            {
                "kvpKey": "application_reference",
                "kvpType": "id.external",
                "kvpValue": "<UNIQUE_APPLICATION_REF>"
            },
            {
                "kvpKey": "customer_reference",
                "kvpType": "id.external",
                "kvpValue": "<UNIQUE_REFERENCE>"
            }
        ],
        "name": {
            "displayName": "",
            "familyName": "Test",
            "givenName": "Test",
            "honourific": "",
            "middleName": ""
        }
    }
}

📘

Sending the Onboarding URL through SMS

To send the Onboarding URL as a link to the end-user's mobile phone, make sure to include the phoneNumber value and set the sendSMS parameter to true. This will send an SMS with the onboarding link.

When the end-users select the link they will be redirected to the FrankieOne-hosted onboarding page.

The SMS content is configurable along with the expiry of the URL. To configure the SMS content, please contact Technical support.

Sample Response format

{
  "status": "success",
  "url": "https://verify.uat.frankie.one?=vJ2GKbXSHkVyt3e3uSXNk2",
  "urlExpiry": "string",
  "entity": {...}
 }

The Onboarding URL will be returned ("url": "value"). You can take this value and share it to your end-user to complete the onboarding process.

Here's the complete response format:

{
  "status": "success",
  "url": "https://verify.uat.frankie.one?=vJ2GKbXSHkVyt3e3uSXNk2",
  "urlExpiry": "string",
  "entity": {
    "addresses": [
      {
        "addressId": "string",
        "addressType": "string",
        "buildingName": "string",
        "careOf": "string",
        "country": "string",
        "endDate": "string",
        "extraData": [
          {
            "kvpKey": "string",
            "kvpType": "string",
            "kvpValue": "string"
          }
        ],
        "longForm": "string",
        "postalCode": "string",
        "region": "string",
        "startDate": "string",
        "state": "string",
        "streetName": "string",
        "streetNumber": "string",
        "streetType": "string",
        "suburb": "string",
        "town": "string",
        "unitNumber": "string",
        "unstructuredLongForm": "string"
      }
    ],
    "dateOfBirth": {
      "country": "string",
      "dateOfBirth": "string",
      "locality": "string",
      "unstructuredDateOfBirth": "string",
      "yearOfBirth": "string"
    },
    "entityId": "string",
    "entityProfile": "string",
    "entityType": "string",
    "extraData": [
      {
        "kvpKey": "string",
        "kvpType": "string",
        "kvpValue": "string"
      }
    ],
    "gender": "string",
    "identityDocs": [
      {
        "country": "string",
        "createdFromScan": true,
        "documentId": "string",
        "documentStatus": "string",
        "extraData": [
          {
            "kvpKey": "string",
            "kvpType": "string",
            "kvpValue": "string"
          }
        ],
        "idExpiry": "string",
        "idIssued": "string",
        "idNumber": "string",
        "idSubType": "string",
        "idType": "string",
        "manuallyModified": true,
        "region": "string"
      }
    ],
    "name": {
      "displayName": "string",
      "familyName": "string",
      "givenName": "string",
      "honourific": "string",
      "middleName": "string"
    }
  }
}

To learn more about our onboarding API, please visit the Onboarding API reference.

Step 2. Update entity profile (Optional)

Once you generate the onboarding URL, grab the entityId from the previous API call and update the entity profile to use a recipe you want to run a verification check. To do this, use Update Entity API and the following sample body request to update theentityProfile:

{
    "entityId": "string", // entityId from the previous API call
    "entityProfile": "string" // Use a recipe that has been configured in your account
}

Alternatively, if you don't update theentityProfile, the default recipe in your account will be used for verification.

Step 3. Open the Onboarding URL

You can now open the URL on your mobile or desktop browser, or native application using Webview.

For example, the generated Onboarding URL is https://verify.uat.frankie.one?t=dFLfq4pbfMfnWUZ4SR8W5i.

You can use this URL in your native application as in the following examples:

Sample code for Android Java:

You can use the following example for your Android app using WebView:

webAppInterface = WebAppInterface(requireContext())  
        binding.webView.apply {  
            webViewClient = MyWebViewClient()  
            webChromeClient = MyWebChromeClient()  
            addJavascriptInterface(webAppInterface, "Android")  
            loadUrl("https://verify.uat.frankie.one?t=dFLfq4pbfMfnWUZ4SR8W5i">)  
        }

Sample code for React Native:

You can use the following example for your React Native app using in-app browser:

import { useState } from 'react';
import { Button, Text, View, StyleSheet } from 'react-native';
import * as WebBrowser from 'expo-web-browser';


export default function App() {
  const [result, setResult] = useState(null);

  const handlePressButtonAsync = async () => {
    const result = await WebBrowser.openBrowserAsync('https://verify.uat.frankie.one?t=dFLfq4pbfMfnWUZ4SR8W5i');
    setResult(result);
  };

  return (
    <View style={styles.container}>
      <Button title="Open WebBrowser" onPress={handlePressButtonAsync} />
      <Text>{result && JSON.stringify(result)}</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
    backgroundColor: '#ecf0f1',
  },
});

Additionally, to learn more about using OneSDK with native apps, visit Using OneSDK with native apps.

Using the Portal to send onboarding URL.

The Hosted OneSDK Onboarding URL can also be sent to the onboarding end user using the Portal.

📘

Enable Onboarding URL sending through the Portal

The feature to send the Onboarding URL using the Portal is enabled through your application configuration settings, and done by FrankieOne during your onboarding.

To enable or disable it for your account, please contact Technical Support.

If this feature is enabled during your onboarding with FrankieOne, you can send the Onboarding URL to your end users through the Portal.

To do so, do the following steps:

  1. Open the entity profile page of the end user. (If the entity hasn't been created, select the New Profile button to create a new one.)

    Profile page

    Profile page

  2. Select the Biometrics/OCR tab.

  3. Open the Biometrics menu on the left side and select Start Biometrics. This will open the Start Biometrics/OCR process modal.

  4. Select how you want to send the Onboarding URL to your end user, either by SMS or copying the link and sharing that with them.

    Start Biometrics/OCR Process modal.

    Start Biometrics/OCR Process modal.

  5. If you select, Send Link via Text Message, you'll need to enter the mobile phone number of the end user, and any internal comments you want to add. Select Send Link to send the Onboarding URL.

    Send Link (Onboarding URL) via Text Message.

    Send Link (Onboarding URL) via Text Message.

  6. If you select Copy Link, you'll be presented with the link to copy and share. Select Copy. Select Done afterwards.

    Copy Onboarding URL modal

    Copy Onboarding URL modal

    Once the end user opens the Onboarding URL, they will be required to open it in their mobile device so that the end-to-end process of identity verification is completed using the phone's camera (for OCR and liveness check).

    QR code to open Onboarding URL on a mobile device.

    QR code to open Onboarding URL on a mobile device.

After the end user completes the onboarding steps on his mobile device, the entity profile will be updated with the collected information.

Once the information has been collected and added into the entity profile, you can continue managing the profile.


Document Upload for KYB

To send a link to a third party entity to upload requested document for a business entity, follow this steps:

Make an API call to the onboarding-url API endpoint to generate the link.

Endpoint

POST https://api.latest.frankiefinancial.io/idv/v2/idvalidate/onboarding-url

Headers

X-Frankie-Customerid: YOUR_CUSTOMER_ID
X-Frankie-CustomerChildID: YOUR_CUSTOMER_CHILD_ID
api_key: YOUR_API_KEY

Specify the requested documents in the request body.

Body

{  
  "flowId": "doc_upload",  
  "senderName": "OneSDK-Testing-Sender-Name",  
  "requestedDocuments": [{  
      "documentType": "BANK_STATEMENT"  
    },  
    {  
      "documentType": "TRUST_DEED"  
    }  
  ],  
  "entity": {  
    "entityId": "bc335f79-c167-36f6-3c70-d3c0a2d8c8b8"  
  }
}

Retrieve the onboarding URL from the API response.

Response

After a successful request, you will get a response with the onboarding URL, similar to the sample response below:

{  
    "status": "success",  
    "url": "https://verify.dev.frankie.one?t=KpnScuFzWVmCN64ZZUKU9g",  
    ...  
} 

Take note of this onboarding URL.

Forward the onboard URL to the third party.

Send the onboarding URL to the third party, and once they visit the URL, they will go through the forms. When they have completed the uploading flow, they will be prompted with or a success or error screen (if the upload is unsuccessful).

Review the documents in the Portal.

If the document upload is successful, these documents will appear in the supporting document tab of a business entity in the Portal.