Skip to main content

License Handling | Android Document Scanner

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.

Getting a Trial License

The Scanbot SDK will run without a license for one minute per session! To get a free, "no-strings-attached" 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 Android App Store with a trial license.

Purchase a Production License

To get pricing information and purchase a production license for the Scanbot SDK please request a quote.

License checks in production apps

Please note: From version 1.60.0 we have removed the app termination mechanism on license error and have added a special callback that helps handle the Scanbot SDK license status.

val licenseInfo = ScanbotSDKInitializer()
.license(this, "")
.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 -> {
// license is valid but feature you trying to access is not available for this
// license key, handle this problem and reinit sdk with new license key if needed
when (feature) {
NoSdkFeature -> {}
EdgeDetection -> {}
// check for corresponding feature as needed
}
}
}
})
.initialize(this)

licenseInfo - a new object that represents the license information. It is also available from ScanbotSDK(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

Please also note: To renew an expired license or extend a valid license with new Scanbot SDK features, you will have to reinitialize the Scanbot SDK with the new updated license string.

val licenseInfo = ScanbotSDKInitializer()
.license(this, "YOUR_UPDATED_LICENSE_STRING")
...
.initialize(this)

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.

Want to scan longer than one minute?

Generate your free "no-strings-attached" Trial License and properly test the Scanbot SDK.

Get your free Trial License

What do you think of this documentation?