Android Migration

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)