Android Migration

From 2025.0.4 to 2025.0.5

CaptureFlowCoordinator will now always capture receipt, regardless of the type of the provided in the launchCaptureFlow function call. Hence the documentType parameter of the launchCaptureFlow can be omitted. Function signature is backward compatible, though, so a provided documentType won’t affect function execution. See Launching Capture Flow on Android for an implmentation example.

From 2025.0.1 to 2025.0.4

No changes are required.

From 2025.0.0 to 2025.0.1

Backward compatibility was maintained, however please check the following:

  • Ensure compatibility with Gradle 9.2.0+ and AGP 8.13.1+
  • If using Capture Flow, validate error handling in your integration. While SDK’s APIs maintained backward compatibility, the error handling was improved. As a result some error states were not reported to the caller, now will be reported (as they should be).
  • CaptureFlowState.Transacting is no longer deprecated.

From 2023.1.5 to 2025.0.0

No changes are required.

From 2023.0.0…2023.1.4 to 2023.1.5

  • Platform compatibility have changed:

    • Android 7.x (SDK Version 24) is no longer supported, minimal supported Android version is 8.0 (SDK Version 26).
    • Android Gradle Plugin version was updated from 8.3 to 8.6

    See Supported Platforms page for complete information.

  • Because Sensibill SDK uses some Java 11 language APIs, the app’s Gradle configuration needs to be updated to enable desugaring support, as explained on Library Desugaring page:

    • In compileOptions of the gradle file, set isCoreLibraryDesugaringEnabled (Kotlin) or coreLibraryDesugaringEnabled (Groovy) flag.
    • In dependencies section, add coreLibraryDesugaring dependency, with correct library name and version.
  • The following permissions are no longer required and should be removed from the AndroidManifest.xml:

    • <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    • <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />

From 2022.0.11 to 2023.1.4

  • Replace the references:

    • Change com.getsensibill.oauthclient package to com.getsensibill.rest.client.v1.oauth package.
    • Change com.getsensibill.capturestandalone.models.CaptureConfig with com.getsensibill.capturestandalone.config.CaptureConfig
    • Change CaptureConfig.defaultConfig to CaptureConfig.defaultReceiptCaptureConfig
  • The CaptureFlowState.Transacting state was deprecated, and should be replaced with CaptureFlowState.DocumentUploading.

    For example the code:

     is CaptureFlowState.Transacting -> {
        val transaction = with(newState.transaction) { 

    should be replaced with:

      is CaptureFlowState.DocumentUploading -> {
        val update = with(newState.update) { ...
      is CaptureFlowState.Transacting -> {
        // No action, deprecated
  • com.getsensibill.core.InitializationBuilder now requires TokenProvider to be passed to it in constructor. Previously it was passed using an authTokenProvider method of the builder.

    Replace the following code:

      val builder = InitializationBuilder(this, environment)
      val tokenProvider = TokenProvider.fromLambda {...}
      builder.authTokenProvider(tokenProvider)

    with this code:

      val tokenProvider = TokenProvider.fromLambda {...}
      val builder = InitializationBuilder(this, environment, tokenProvider)