Introduction
A Device fingerprint is a way to combine certain attributes of a device (operating system, IP address, device language settings etc.) in order to identify unique devices.
Unit partners with select providers to detect and prevent potential fraud. To enjoy improved protection, you must add the device fingerprint to new application.
Implementation
Installation
For production use:
<script src="https://web-scripts.unit.co/unit-fraud-sdk.js"></script>
For sandbox use:
<script src="https://web-scripts.s.unit.sh/unit-fraud-sdk.js"></script>
Usage
After adding the script tag, the SDK will automatically initialize and collect device information:
try {
const deviceFingerprints = await window.UnitFraudSDK.getDeviceFingerPrint();
// output: [{"provider": "...", "value": "..."}, {"provider": "...", "value": "..."}]
const applicationData = {
// ... your application data ...
deviceFingerprints: deviceFingerprints
};
await submitApplication(applicationData);
} catch (error) {
console.error('Error getting device fingerprints:', error);
}
Installation
The Fraud SDK is part of the Unit React Native SDK:
- npm
- yarn
npm install @unit-finance/react-native-unit-sdk
yarn add @unit-finance/react-native-unit-sdk
Usage
import UnitSDK from '@unit-finance/react-native-unit-sdk';
import type { UNFingerprintResult } from '@unit-finance/react-native-unit-sdk';
// Initialize early in your app lifecycle
UnitSDK.manager.initialize();
const getDeviceFingerprint = async (): Promise<UNFingerprintResult[]> => {
const fingerprintResults = await UnitSDK.manager.fraud.getDeviceFingerprint();
// Include in your application submission
return fingerprintResults;
};
Core Interfaces
interface UNFraudManagerInterface {
getDeviceFingerprint(): Promise<UNFingerprintResult[]>;
}
interface UNFingerprintResult {
provider: UNFingerprintProvider;
value: string;
}
enum UNFingerprintProvider {
Socure = 'socure',
}
Changelog
1.0.2 (June 1, 2026)
- Fix:
UNFingerprintProvider.Socurevalue is now lowercase ('socure')
1.0.0 (May 18, 2026)
- Initial release
- Device fingerprinting via Socure
Installation
Add the Unit SDK or Unit Fraud SDK to your app's build.gradle:
dependencies {
// Full SDK (includes Fraud SDK)
implementation 'co.unit:unit-sdk:1.0.1'
// Or Fraud SDK only
implementation 'co.unit:unit-fraud:1.0.1'
}
unit-fraud is included in unit-sdk. Add the full SDK if you need other Unit capabilities, or add only unit-fraud for a smaller dependency footprint.
Usage
// Initialize in your Application class or early in the app lifecycle
UnitFraudSDK.manager.initialize()
// Get device fingerprints when needed
UnitFraudSDK.manager.getDeviceFingerprint { result ->
if (result.isSuccess) {
val fingerprintResults = result.getOrNull() ?: emptyList()
// Include in your application submission
} else {
val error = result.exceptionOrNull()
// Handle error
}
}
Core Interfaces
interface UNFraudManagerInterface {
fun initialize()
fun getDeviceFingerprint(completion: UNDeviceFingerprintCompletion)
}
typealias UNDeviceFingerprintCompletion = (Result<List<UNFingerprintResult>>) -> Unit
data class UNFingerprintResult(
val provider: UNFingerprintProvider,
val value: String
)
enum class UNFingerprintProvider(val value: String) { SOCURE("socure") }
sealed class UNFingerprintError : Throwable() {
object GeneralError : UNFingerprintError()
object SocureInitializeError : UNFingerprintError()
object SocureProcessDeviceError : UNFingerprintError()
}
Changelog
1.0.1 (May 28, 2026)
- Fix:
UNFingerprintProvidernow exposes a lowercasevalueproperty (SOCURE("socure"))
1.0.0 (May 14, 2026)
- Initial release
- Device fingerprinting via Socure
Installation
Add the Unit SDK or Unit Fraud SDK via Swift Package Manager:
dependencies: [
.package(url: "https://github.com/unit-finance/unit-ios-sdk.git", from: "1.0.0")
]
UnitFraud is included in UnitSDK. Add the full SDK if you need other Unit capabilities, or add only UnitFraud for a smaller dependency footprint.
Usage
// Initialize in your AppDelegate or early in the app lifecycle
UnitFraudSDK.manager.initialize()
// Get device fingerprints when needed
UnitFraudSDK.manager.getDeviceFingerprint { result in
switch result {
case .success(let fingerprintResults):
// Include in your application submission
case .failure(let error):
// Handle error
}
}
Core Interfaces
public protocol UNFraudManagerProtocol {
func initialize()
func getDeviceFingerprint(completion: @escaping UNDeviceFingerprintCompletion)
}
public typealias UNDeviceFingerprintCompletion = (Result<[UNFingerprintResult], UNFingerprintError>) -> Void
public struct UNFingerprintResult {
public let provider: UNFingerprintProvider
public let value: String
}
public enum UNFingerprintProvider { case socure }
public enum UNFingerprintError: Error {
case generalError
case socureInitializeError
case socureProcessDeviceError
}
Changelog
1.0.0 (May 14, 2026)
- Initial release
- Device fingerprinting via Socure
Features
The Device Fingerprint SDK collects various device attributes including:
- Operating system and version
- Browser type and version
- Screen resolution
- Device language settings
- IP address
- Time zone
- Hardware information
- And more...
Troubleshooting
If you encounter any issues:
- Ensure the script tag is properly added to your HTML
- Check your browser's console for any error messages
- Verify that you're using the correct script URL for your environment (production vs. sandbox)