COVID-19 Update: A message to our Customers, Partners, and SALTO Systems Community. Read more.

Mobile SDK

Open doors with your mobile app, via Mobile Key functionality! The SALTO KS mobile SDKs make it easy to build a seamless door opening experience in your application.

Decrease your app’s time to market with our out-of-box support for opening doors with your smartphone, natively inside your applications. Let’s save you some time, so you can work on the unique parts of your app that matter the most.

Introduction 1

SALTO KS offers two types of credentials: Tag & Mobile Key


A tag is a physical device (contactless key fob) that works based on RFID. Tags represent the user’s physical credentials to a lock. Every valid tag can lock and unlock a lock. RFID technologies available: DESfire, Mifare. 13.56MHz contactless RFID identification. High security, by using password and encrypted Proximity fobs.


A Mobile Key is the virtual equivalent of a Tag. The Mobile Key is stored on the user’s mobile device, and when presented to a lock, it uses BLE (Bluetooth Low Energy) to open the lock. This way users can use their smartphones as a Tag, opening the lock without relying on internet connection; which makes Mobile Key as secure as using a physical Tag.

Technical information

The brain of a SALTO KS system is the IQ, it is the link between the lock and cloud. The IQ receives all changes and settings from your application and ensures that all locks are updated within seconds. A Mobile Key is generated using encryption keys that are normally unique per IQ. It is however possible to synchronise these keys between the IQs that are part of a collection, so you can use the Mobile Key on locks that are attached to different IQs


  • Extract your apps Public Key for Communicating with Connect API
  • Use Mobile Key from Connect API to open a lock
show me content for:IOSANDROID

Mobile Key SDK for iOS

This SDK for iOS contains the most up-to-date frameworks for integrating Mobile Key technology into your own iOS applications. It will setup the necessary security to communicate with Connect API, and unlock locks with encrypted Mobile Keys returned by the Connect API. The SDK for iOS includes iOS libraries and developer documentation to get you up and running quickly and easily.


iOS 10.0+ Xcode 8.1, 8.2, 8.3, and 9.0 Swift 4.2


First, you need to obtain a copy of the JustInMobile iOS SDK from Salto Systems. Once you have this copy, you can start using the SDK. To start using the SDK, please contact us.


The minimum required iOS version for this SDK is 8.0 and above. Apart from that, these frameworks must be included into the target project:

  •     SaltoJustINMobile.framework
  •     CoreBluetooth.framework
  •     Foundation.framework
  •     VirgilCrypto.framework
  •     VirgilCryptoAPI.framework
  •     VirgilCryptoApiImpl.framework
  •     VirgilSDK.framework
  •     VSCCrypto.framework

The current SaltoJustINMobile iOS SDK that is needed is SALTO JustIN Mobile SDK V2.3.0 The Virgil libraries can be found at

Setting Up

To use the iOS SDK you must first integrate the SDK into your app. You can install the SDK manually in a few easy steps.

Manual Installation

For new installations, please follow all steps. For upgrades, please follow steps 1 and 2. Locate the ClaySDK.framework. Drag ClaySDK.framework into your project. Check “Copy items into destination group’s folder” and make sure the appropriate targets are checked.

1. Open the Build Phases tab for the app’s target. Under Link Binary with Libraries add the required frameworks if they are not already included.

2. Switch to the Build Settings tab. Add -ObjC to the Other Linker Flags build setting. Under “Search Path” section set the “Framework Search Paths” to the location path of the ClaySDK.framework framework. Then, in your Targets Build Settings, set Enable Bitcode to NO


//'self' must conform to ClayDelegate, the apiKey will be provided to you let clay = ClaySDK(installationUID "SOME_UNIQUE_ID", apiKey: "THE_API_PUBLIC_KEY", delegate: self) let publicKey = clay.getPublicKey() //'yourOpenDoorDelegate' must conform to OpenDoorDelegate clay.openDoor(with: "your-encrypted-key", delegate: yourOpenDoorDelegate)


Android SDK 14+, Android Studio 2.3, Java 7

The Mobile Key feature, since it uses the BLE technology (Bluetooth Low Energy), requires permission for ACCESS_COARSE_LOCATION declared in the AndroidManifest.xml



First, you need to obtain a copy of the JustInMobile Android SDK from SALTO. Once you have this copy, include into your libs folder of your app’s ‘app’ module. Make sure you include the contents of your ‘libs’ folder in your module’s dependencies.


Download the latest JAR or grab via Gradle:

  • implementation ‘com.virgilsecurity.sdk:crypto-android:4.3.3’
  • implementation ‘com.virgilsecurity.sdk:sdk-android:4.3.3’
  • implementation ‘'
  • Implementation ‘com.myclay.claysdk:claysdk:0.3.33’


If you prefer not to use any of the aforementioned dependency managers, you can integrate SALTO KS SDK into your project manually.


To use:

IClaySDK claySDK = ClaySDK.init(context); String publicKey = claySDK.getPublicKey(); String mkey = "<YOUR_MKEY>"; try { claySDK.openDoor(mkey, new ILockDiscoveryCallback() { @Override public void onPeripheralFound() { // handle the onPeripheralFound event } @Override public void onSuccess() { // handle the onSuccess event } @Override public void onFailure(ClayException exception) { // handle the onFailure event } }); } catch (ClayException e) { // handle the exception }