Skip to main content

SDK Initialization | Cordova 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.

App Identifier

Every app has a unique identifier (sometimes also known as "bundle identifier" or "application ID"). Your license will be bound to this identifier. To request a trial license or purchase a production license you have to provide us the bundle identifier of your app.

In a Cordova-based project this ID can typically be found in the config.xml file:

<?xml version='1.0' encoding='utf-8'?>
<widget id="" ...>

Get 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.


Free Developer Support

We provide free "no-strings-attached" developer support for the implementation & testing of the Scanbot SDK. If you encounter technical issues with integrating the Scanbot SDK or need advice on choosing the appropriate framework or features, please visit our Support Page.

The Scanbot SDK must be properly initialized before calling any API methods or launching UI screens. Make sure to call the initialization after the deviceready Cordova event has been fired. In an Ionic based project use the platform.ready() promise event.

import ScanbotSdk from 'cordova-plugin-scanbot-sdk';

private SDK = ScanbotSdk.promisify();

platform.ready().then(() => {

async initScanbotSdk()
const config: ScanbotSdkConfiguration = {
loggingEnabled: true,
licenseKey: '',
// see further config parameters
try {
const result = await this.SDK.initializeSdk(config);
} catch (e) {

It's recommended to implement the SDK initialization in a single location in your app. However, the SDK can be re-initialized multiple times during the app's runtime (e.g. in order to update the license key).

Config Parameters

  • loggingEnabled - Optional boolean flag to enable logging. See the "Logging" section below.
  • enableNativeLogging - Optional boolean flag that enables Scanbot SDK Core native logging (default is false, Android only).
  • licenseKey - Your license key for the Scanbot SDK. See the License key section below.
  • storageImageQuality - Optional image quality value. It defines the quality factor of JPEG images. The value must be between 1 and 100, where 100 means maximum quality and largest file size. The recommended default value is 80 which is a good compromise between image file size and document legibility.
  • storageImageFormat - Optional image format, either JPG or PNG. The recommended default value is JPG. Please note that PNG will result in larger image files! Also, the storageImageQuality value does not apply for PNG.
  • storageBaseDirectory - Optional directory as file URI to override the default storage base directory of the Scanbot SDK. Refer to the section Storage for more details.
  • documentDetectorMode - Optional mode for document detection.
    • 'ML_BASED' is the recommended mode, based on Machine Learning.
    • 'EDGE_BASED' legacy mode, based on classic Computer Vision algorithms.
  • fileEncryptionMode - Optional file encryption mode, AES128 or AES256.
  • fileEncryptionPassword - Optional file encryption password. Refer to the section "Storage Encryption" for more details.
  • useCameraX - If set to true, Camera X will be used for the RTU-UI components (Android only). Default is true.
  • allowGpuAcceleration - If set to true, GPU Acceleration will be enabled for Barcode Scanner, Document Scanner and Generic Document Recognizer (Android only). Default is true.
  • allowXnnpackAcceleration - Enables/disables XNNPACK acceleration for TensorFlow ML models, which provides highly optimized implementations of floating-point neural network operators (Android only)


When initializing the Scanbot SDK you can enable logging of the SDK. By default logging is disabled.

config.loggingEnabled = true;

On Android logs are printed into LogCat. The easiest way to check the log outputs on Android is to use Android Studio or Android Debug Bridge (adb) CLI. (e.g. $ adb logcat)

On iOS all logs are printed to the console. Please use Xcode to check the log outputs.

Please note: While it may be useful for development, consider switching logging OFF in production builds for security and performance reasons!

config.loggingEnabled = !environment.production;

Check License Status

Use the API method getLicenseInfo() to check the current state of the license. The SDK must be initialized.

const result = await this.SDK.getLicenseInfo();
if ( {
// OK, we have a valid (trial) license and can now call other Scanbot SDK methods.
// E.g. launch the Document Scanner
} else {
alert('Scanbot SDK license is not valid!');

👉 Please refer to the detailed section License Check in Production Apps to learn more about the license check and handling in production apps.

Next Steps

It's recommended to get a trial license key or a full production license to continue with the next steps.

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?