Skip to main content

Android SDK Version Matrix

Activation runs on top of the Paper Receipt SDK, and the two are released in lockstep: every Paper Receipt SDK release that supports Activation is built and verified against exactly one Activation SDK version. Use the pairs in the table below as they are; don't mix versions across rows.

Compatibility matrix​

Versions are BOM versions: com.microblink.blinkreceipt:blinkreceipt-bom for the Paper Receipt SDK and com.actualplatform:activation-bom for the Activation SDK.

Paper Receipt SDKActivation SDKAGPcompileSdkminSdkRelease notes
2.5.01.2.09.3.137241.2.0
2.4.11.2.09.3.137241.2.0
2.4.01.2.09.3.137241.2.0
2.3.11.1.29.3.137241.1.2
2.3.01.1.19.3.137241.1.1
2.2.11.1.19.2.137241.1.1
2.2.01.1.09.2.136241.1.0
2.1.11.0.09.2.136241.0.0
2.1.01.0.09.2.036241.0.0
2.0.x——3623No Activation support

How to read the columns:

  • AGP (Android Gradle Plugin) is the version the pairing was built and verified with — the nearest version known to work. Start from it if you hit build or manifest-merge problems after an upgrade.
  • compileSdk is the minimum your app must compile against. Your app's targetSdk is independent of it and does not need to change.
  • minSdk is the lowest Android API level the pairing supports.
Only pair versions from the same row

Each Paper Receipt SDK release is built and verified against the Activation SDK version in its row, and no other combination is tested or supported. When you upgrade one SDK, upgrade the other to the same row.

Declaring the dependencies​

The Paper Receipt SDK does not bring the Activation SDK in transitively — declare both, each through its own BOM, at the versions from the same row:

build.gradle.kts
dependencies {
// Paper Receipt SDK
implementation(platform("com.microblink.blinkreceipt:blinkreceipt-bom:2.5.0"))
implementation("com.microblink.blinkreceipt:blinkreceipt-recognizer")
implementation("com.microblink.blinkreceipt:blinkreceipt-camera-ui")

// Activation SDK
implementation(platform("com.actualplatform:activation-bom:1.2.0"))
implementation("com.actualplatform:activation")
}

Each BOM keeps every artifact of its SDK on one matching version, so you never declare individual module versions.

Upgrading across rows​

Move one row at a time when you can, and read each Activation release's upgrade checklist on the way — every Activation release requires recompiling your app against it, and several contain breaking changes:

UpgradeWhat to read
To 2.5.0 / 1.2.0Paper Receipt 2.5.0 release notes — Activation stays on 1.2.0
To 2.4.x / 1.2.01.2.0 release notes — Error Flows and per-scan sessions
To 2.3.1 / 1.1.21.1.2 release notes — TestOptions.Ads removed, new Rewards subtypes
To 2.2.1 or 2.3.0 / 1.1.11.1.1 release notes — compileSdk 37 required
To 2.2.0 / 1.1.01.1.0 release notes — reward-currency and theming rework

See Prerequisites for the rest of the setup requirements.