Android
Latest version: 2.4.10
Warning
Only for versions higher than 1.0.8
Versions after 1.0.8 bring significant enhancements to improve performance and ensure consistency between development environments. Although we have kept client-side changes to a minimum, we recommend that you consult the updated integration guide to make full use of the SDK's capabilities.
To support backward compatibility and ease migration, the “Old version” section offers references to help adapt your current integration.
Getting started
In order to perform an Onboarding or an Authenticate, you should follow those steps:
- Set up the SDK: install and import the SDK
- Get a token: request a token using your business credentials
- Start an onboarding or authenticate flow: launch a user workflow
- Get the user workflow result from SDK: use the Message handler to get insights about the user workflow
- Get the Analysis result: use your callback or the endpoint to get the analysis result
1. Set up the SDK
1.1. Project requirements
The proper functioning of the SDK necessitates the provision of several parameters. These parameters are essential for enabling the full range of functionalities offered by the SDK.
- minSdk or minSdkVersion = 24
1.2. Install SDK
ShareID use Maven to provide its SDK securely with authentication managed directly in dependencyResolutionManagement
into your settings.gradle
file.
repositories {
google()
mavenCentral()
maven {
url = uri("https://repository.shareid.net/repository/mvn-hosted/")
credentials {
username = "<your-repository-username>"
password = "<your-repository-password>"
}
}
}
1.3. Add the dependency
To install the SDK, you'll need to add the dependency in your app
module.
- Add the following to your
build.gradle
- You can now synchronise and use the SDK in your project
Info
Make sure you update your various dependencies, distributionUrl, IDE, gradle version or anything else.
Warning
Conflicts of dependency
The SDK directly integrates most of the dependencies it uses to simplify your integration.
However, conflicts may arise that require you to integrate dependencies yourself (notably kotlin, material3, compose, etc.).
2. Get a token
Use the credentials you received from ShareID's team to get an authentication token and launch an onboarding or authenticate workflow.
Depending on the SDK you are integrating (Onboarding/Authenticate), you may use an API here Get a Token
3. Start an onboarding or authenticate flow
Once you have added the SDK as a dependency and have your credentials, you can configure the SDK.
Kotlin
Java
Kotlin
private val activityResultLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val data: Intent? = result.data
}
}
private fun launchShareIdActivity() {
val intent = Intent(this, ShareIdMainActivity::class.java).apply {
putExtra(ShareIdMainActivity.SHARE_ID_METHOD, ShareIdMainActivity.SHARE_ID_ONBOARDING) // or SHARE_ID_AUTHENTICATE for Authenticat
putExtra(ShareIdMainActivity.SHARE_ID_SERVICE_TOKEN, "<your-token>")
// only for Authenticate
putExtra(ShareIdMainActivity.SHARE_ID_APPLICANT_ID, "<your-applicant-id>")
// To change the language
putExtra(ShareIdMainActivity.SHARE_ID_LANGUAGE, "en") // See supported languages at the end of the documentation
}
activityResultLauncher.launch(intent)
}
Java
private ActivityResultLauncher<Intent> activityResultLauncher =
registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
onActivityResult(1, result);
});
private void launchShareIdActivity() {
Intent intent = new Intent(getBaseContext(), ShareIdMainActivity.class);
intent.putExtra(ShareIdMainActivity.SHARE_ID_METHOD, ShareIdMainActivity.SHARE_ID_ONBOARDING); // or SHARE_ID_AUTHENTICATE for Authenticate
intent.putExtra(ShareIdMainActivity.SHARE_ID_SERVICE_TOKEN, "<your-token>");
// only for Authenticate
intent.putExtra(ShareIdMainActivity.SHARE_ID_APPLICANT_ID, "<your-applicant-id>");
// To change the language
intent.putExtra(ShareIdMainActivity.SHARE_ID_LANGUAGE, "en"); // See supported languages at the end of the documentation
activityResultLauncher.launch(intent);
}
Info
These examples also work with versions higher than 2.0.0, but we strongly recommend that you use the most recent method.
The service
specifies the service in the SDK:
onboarding
starts the onboarding processauthenticate
starts the authenticate process
Info
The initial SDK screen is automatically triggered upon execution of the method above.
But there is a third parameter for defining a context
in the event that it cannot be retrieved.
4. Get the user workflow result from SDK
To receive feedback from the SDK, you need to implement the messageHandler
closure, which manages various responses from the ShareID process.
This closure is triggered when the ShareID SDK completes an operation, fails, or encounters an error.
Kotlin
ShareID.shared.messageHandler = { result ->
when (result.type) {
success -> {
// ...
}
exit -> {
// ...
}
failure -> {
// ...
}
}
}
Java
private void onActivityResult(int requestCode, ActivityResult result) {
if (requestCode == 1) {
ShareId.getInstance().messageHandler(result, new MessageHandler() {
@Override
public void success(ShareIdResult shareIdResult) {
// ...
}
@Override
public void exit(ShareIdResult shareIdResult) {
// ...
}
@Override
public void failure(ShareIdResult shareIdResult) {
// ...
}
});
}
}
Warning
This example only works with versions lower than 2.0.0.
To view all possible end-of-process results in our SDK, please refer to the Message Handler for all success, exit and failure states.
5. Get the analysis result
When the processing of an onboarding or authenticate request is finished, you may receive the result through the callback if you provided it. You may also, fetch yourself the result by calling our API.
See Get the analysis result for more details.
Customisation
The ShareID Android SDK is built to be highly customisable, allowing for flexibility through various configuration options or by applying themes to adapt the user interface to your needs.
Configuration
To customise the SDK, pass a ShareID.Theme
after building the flow.
Kotlin
Java
Set the colors
Kotlin
Java
theme.getColors().setPrimaryColor(<your-color-argb>);
theme.getColors().setSecondaryColor(<your-color-argb>);
Name | Message | Color |
---|---|---|
primary |
The main color | ShareID blue (if nothing defined) |
secondary |
The main title text color | Black or White (depending on your light/dark theme and if nothing is set) |
The SDK uses the device language, but you can use the language
parameter to force a language before initialising the SDK.
Kotlin
Java
As soon as an error is returned by the SDK, an error screen is automatically displayed. Change the shouldShowError
parameter if you want to stop displaying them.
Kotlin
Java
Warning
Disabling this parameter exposes the SDK to potential malfunctions. Make sure you handle errors in your application by following what the response handler returns.
Localisation
Languages supported:
- 🇸🇦 (ar), 🇩🇪 (de), 🇬🇧 (en), 🇪🇸 (es), 🇫🇷 (fr), 🇮🇹 (it), 🇵🇱 (pl), 🇵🇹 (pt), 🇷🇴 (ro), 🇷🇺 (ru)