Mobile App Integration
Integrate SmartID into your Android and iOS applications for device recognition, login tracking, and transaction monitoring.
ON THIS PAGE
Overview
The SmartID mobile SDK is available for both major platforms. It collects encrypted device fingerprint data and returns it via callbacks for your app to send to your backend.
For non-native applications (React Native, Flutter, Ionic, etc.), integration is also supported through native bridges. Contact the SmartID team for bridge-specific documentation.
Android
Native SDK distributed via Maven. Supports Java and Kotlin. Minimum API level 21.
iOS
Native SDK distributed via Swift Package Manager. Supports Swift 5+. Minimum iOS 13.
Android SDK
Installation
Add the SmartID Maven repository and dependency to your project's build.gradle:
repositories {
// SmartID Maven repository
maven {
url 'https://mymavenrepo.com/repo/<repo_id>/'
}
}
dependencies {
implementation 'com.develsystems.smartid:demo:5.0.0'
} | Repository | https://mymavenrepo.com/repo/<repo_id>/ |
| Dependency | com.develsystems.smartid:demo |
| Version | 5.0.0 |
The Maven repository URL and dependency credentials are provided by the SmartID team during onboarding. Contact your account manager if you haven't received them.
Integration
The integration consists of two parts: collecting device data and sending it to your backend.
1. Collect Device Data
Use the SDK to obtain encrypted device information:
SmartId
.getInstance()
.GetRawData(/*optional*/ "backend_url")
.onSuccess((time, response) -> {
// response contains encrypted device data
// Send it to your backend with user credentials
})
.onFailure((time, message, errorCode) -> {
// Handle error – send empty data field
})
.start(); SmartId
.getInstance()
.GetRawData(/*optional*/ "backend_url")
.onSuccess { time, response ->
// response contains encrypted device data
// Send it to your backend with user credentials
}
.onFailure { time, message, errorCode ->
// Handle error – send empty data field
}
.start() Method Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
backend_url | String | Optional | Your backend URL. Used for additional security checks such as SSLPinning and PharmingAttack detection. |
Callback Parameters
| Parameter | Type | Description |
|---|---|---|
time | Long | Request duration in milliseconds |
response | String | Encrypted device data to send to SmartID API |
message | String | Error description (failure callback only) |
errorCode | Int | Error code (failure callback only) |
If the SDK returns a Failure callback, you must still send the login request to your backend, but with an empty data field.
2. Backend Processing
When the user submits their credentials, attach the encrypted <code>response</code> from SmartID and forward it to the SmartID API. See the API Reference for complete endpoint details, request attributes, and examples.
iOS SDK
Installation
Add the following packages via Swift Package Manager:
| SmartID SDK | https://github.com/DevelSystems/SmartID-iOS | Tag: 5.0.0 |
| KeychainAccess | https://github.com/kishikawakatsumi/KeychainAccess | Version: 4.2.2 |
Access to the SmartID iOS SDK repository is granted by the SmartID team during onboarding. Contact your account manager if you don't have access.
The KeychainAccess dependency is required for the SmartID iOS SDK to function correctly.
Integration
The integration consists of two parts: collecting device data and sending it to your backend.
1. Collect Device Data
Use the SDK to obtain encrypted device information:
SID.shared
.getRawData("backend_url") // optional parameter
.onSuccess(success: { time, response in
// response contains encrypted device data
// Send it to your backend with user credentials
})
.onFailure(failure: { time, message, errorCode in
// Handle error – send empty data field
})
.start() Method Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
backend_url | String | Optional | Your backend URL. Used for additional security checks such as SSLPinning and PharmingAttack detection. |
Callback Parameters
| Parameter | Type | Description |
|---|---|---|
time | Long | Request duration in milliseconds |
response | String | Encrypted device data to send to SmartID API |
message | String | Error description (failure callback only) |
errorCode | Int | Error code (failure callback only) |
If the SDK returns a Failure callback, you must still send the login request to your backend, but with an empty data field.
2. Backend Processing
When the user submits their credentials, attach the encrypted <code>response</code> from SmartID and forward it to the SmartID API. See the API Reference for complete endpoint details, request attributes, and examples.