Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Device fingerprinting can be used to stop fraudsters from attempting to hack, break into, or spam application as well as offer detailed insights into any customer that’s coming onto your iOS application. Applying the Device Fingerprinting module Account takeovers, multiple account signups and payments can easily be avoided.

To implement SEON SDK for iOS, follow the steps below.


NOTE: If the listed permissions are not available for the application, the values collected using those permissions will be ignored. We recommend using as much permission as possible based on your use-case to provide reliable device fingerprint.


The recommended approach for installing SeonSDK is via the CocoaPods package manager, as it provides flexible dependency management and simple installation.

Using CocoaPods

Install CocoaPods if not already available:

gem install cocoapods

To integrate SeonSDK into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'SeonSDK'

Then you can use install as usual:

pod install

Using Swift package manager

URL for the repository:


Swift Integration


To be able to use the SDK in projects written in Swift you should add the use_frameworks ! attribute to the Podfile:


After that the SDK can be imported like any other library:

@import SeonSDK

Alternatively a bridging header file can be used importing the SDK there:

#import <SeonSDK/SEONFingerprint.h>

If you opt to use a bridging header, the path to the header must be set in Build Settings -> Objective-C Bridging Header


let seonfp = SEONFingerprint()

// Enable logging
seonfp.setLoggingEnabled(loggingEnabled: true)

// Set session_id
seonfp.sessionId = "CUSTOM_SESSION_ID"

// Compute fingerprint asynchronously
seonfp.getFingerprintBase64 { seonFingerprint, error in
      if let error{
        // Handle the error
      } else{
        //set seonFingerprint as the value for the session
        //property of your Fraud API request.

Objective-C Integration

@import SeonSDK;


// Enable logging
[[SEONFingerprint sharedManager] setLoggingEnabled:true]

// Set session_id
[[SEONFingerprint sharedManager] setSessionId:@"[CUSTOM_SESSION_ID]"];

// Compute fingerprint asynchronously
[[SEONFingerprint sharedManager]
   getFingerprintBase64:^(NSString *seonFingerprint, NSError *error) {
      if (error == nil){
        //set seonFingerprint as the value for the session
        //property of your Fraud API request.
      } else{
        // Handle error



  • Significantly improved the uniqueness and stability of the device_hash property. With the current change the value should persist through app reinstalls.

Note: This is NOT a breaking change for the device_hash property. The value only changes for a small subset of devices, where the device_hash wasn't unique previously.


  • Fix system_uptime to correctly return the elapsed time in seconds since the last cold boot instead of the unix timestamp.


  • Internal improvements.
  • Internal changes for upcoming features.


Important Integration changes

  • Starting from v5 there is a change in SEON’s API Policy. From now on SEON might introduce new fields in the SDK with minor versions. We advise you to integrate in a way that addition of new fields is handled gracefully.

  • device_hash field is calculated differently, resulting in different values for a given device. This means these values are going to break between versions.

  • Minimum deployment target has been raised to iOS 11.0

  • SeonFingerprint class has been renamed to SEONFingerprint

  • fingerprintBase64With has been renamed to getFingerprintBase64 and changed to return the fingerprint asynchronously. Thread management is fully handled by the SDK internally and doesn’t require any extra effort from the integration side.

  • getFingerprintBase64’s completion handler now returns an NSError object which contains details about possible integration and runtime errors. For now the following errors are forwarded by the SDK:

    • SEONErrorInvalidSessionID
    • SEONErrorFingerprintFailed

New features and improvements

  • Introducing screen capturing detection
  • Introducing call status detection
  • Introducing various new response fields, listed below
  • General performance improvements
  • Improved stability of device hash
  • Improved error handling
  • Added PrivacyInfo manifest

New response fields

  • is_biometrics_enabled Flags whether biometrics on the phone are enabled or not. This will help determining the end user’s security awareness.
  • is_passcode_enabled Flags whether a passcode is enabled or not on the phone. This will help determining the end user’s security awareness.
  • is_ios_app_on_mac Flags when the host process is an iOS app running on a Mac. The value of the property is true for apps built using Mac Catalyst.
  • is_on_call Flags if the phone is on a call during the transaction. High value security information which can be tied to fraud.
  • is_screen_captured Flags if the phone’s screen is captured during the transaction. High value security information which can be tied to fraud.
  • can_send_mail Flags if the phone is set up for email sending.
  • can_send_text Flags if the phone is set up for text sending. Information whether the device is set up for use properly, false values for either is suspicious if the device is a phone.
  • timezone_identifier Returns the current system time zone’s geopolitical region ID. Eg.: Europe/Budapest

Removed response fields

The following fields are no longer collected and removed from the Fraud API response to comply with Apple’s required reason API policy:

  • free_storage
  • total_storage
  • last_boot_time
  • carrier_name
  • carrier_country


  • Added class name prefixes to avoid collision with other frameworks
  • Fixed minor bug where fingerprint generation could cause cuts in audio playback
  • Added missing network configurations
  • Added missing devices from device_name's output


  • Internal changes to prepare for upcoming features and improvements


  • Changed fingerprint method to be async, improving speed and reliability
  • device_ip fields are now available
  • Performance improvements


  • Swift integration improvements


  • Minor fixes and integration improvements


  • XCFramework support


  • iOS 14 compatibility
  • Stability and performance improvements


  • Removed background HTTP request for data transmission, the SDK returns an encrypted, base64 encoded string to use with SEON's REST API
  • Removed public key support
  • Bugfixes and security improvements


  • iOS 14 compatibility


  • Stability and compatibility improvements


  • Bugfixes and security improvements


  • Bugfixes and performance improvements


  • Bugfixes and performance improvements


  • startAnalyzingWithSession method has been removed
  • Added scanFingerprint method
  • Added public key support
  • Enhanced logging settings
  • Bugfixes and performance improvements


  • Fix bug related to enabled proximity sensor


  • Bugfixes and performance improvements


  • First stable build


No description or website provided.







No releases published


No packages published