Skip to main content

License handling

License key

In order to run the Scanbot SDK within your production app, you must purchase and use a valid Scanbot SDK license.

Each license key is valid only for a given app bundle identifier. You will be unable to use any of the SDK features if the license key is corrupted, expired, or invalid in any other way.

Trial license

The Scanbot SDK will run without a license for one minute per session. To get a free 7-day trial license, please submit the Trial License Form on our website.

Please kindly note that a trial license can only be used in a development and staging environment. You are not allowed to publish your app to the App Store, Play Store, or any 3rd party app store without a production license.

Purchase a production license

To receive pricing information or purchase a production license for the Scanbot SDK, please request a quote.

License checks in production apps

Example code for checking the license status:

import io.scanbot.sdk.barcode_scanner.ScanbotBarcodeScannerSDK

// Check the license status:
val licenseInfo = ScanbotBarcodeScannerSDK(activity).licenseInfo
LoggerProvider.logger.d("ExampleApplication", "License status: ${licenseInfo.status}")
LoggerProvider.logger.d("ExampleApplication", "License isValid: ${licenseInfo.isValid}")
LoggerProvider.logger.d("ExampleApplication", "License message: ${licenseInfo.licenseStatusMessage}")

if (licenseInfo.isValid) {
// Making your call into ScanbotSDK API is now safe.
// e.g. start barcode scanner
}

Scanbot Barcode SDK also have a special callback that helps handle the Scanbot SDK license status.

val licenseInfo = ScanbotBarcodeScannerSDKInitializer()
.license(this, "YOUR_SCANBOT_SDK_LICENSE_KEY")
.licenceErrorHandler(IScanbotSDKLicenseErrorHandler { status, feature, message ->
LoggerProvider.logger.d("ScanbotSDK", "license status:${status.name}, message: $message")
when (status) {
StatusFailureNotSet,
StatusFailureCorrupted,
StatusFailureWrongOS,
StatusFailureAppIDMismatch,
StatusFailureExpired -> {
// license is completely invalid
}
StatusOkay,
StatusTrial -> {

}
}
})
.initialize(this)

licenseInfo - an object that represents the license information. It is also available from ScanbotBarcodeScannerSDKInitializer(context).licenseInfo

licenseInfo.status - an enum for the current license status:

licenseInfo.licenseStatusMessage - a string that helps to understand the current license status

  • StatusOkay - The license is valid and accepted.
  • StatusTrial - No license set yet. The SDK is in trial mode.
  • StatusFailureNotSet - No license set yet. The SDK's trial mode is over.
  • StatusFailureCorrupted - No license active. The set license was unreadable or has an invalid format.
  • StatusFailureWrongOS - No license active. The set license does not cover the current operating system.
  • StatusFailureAppIDMismatch - No license active. The set license does not cover the current app's bundle identifier.
  • StatusFailureExpired - No license active. The set license is valid but it has expired.

licenseInfo.expirationDate - returns Date of license key expiration or null if license is not valid

Updating the license in production apps

The expiration date and the feature list of a license are contained in an encrypted data part of the license key string. This means a renewal or extension of a license will cause a new license key string to be generated.

To renew an expired license or extend a valid license with additional Scanbot SDK features, you will have to deploy a new version of the app with updated license key.

Alternatively, the new key may be dispatched via Firebase Remote Config or loaded from your Web API, but we do not provide an out-of-the box solution for this.

Want to scan longer than one minute?

Generate a free trial license to test the Scanbot SDK thoroughly.

Get your free Trial License

What do you think of this documentation?