Card Management Android SDK
Last updated: March 12, 2025
For the Issuing solution, you can integrate the CheckoutCardManagement
Android SDK for the following use cases in your mobile app:
- Activate, suspend, and revoke cards.
- Display sensitive card details to your cardholders.
- Enable cardholders to add cards to their digital wallet, without entering the card details.
Information
To authenticate cardholders for digital transactions in your app, see the Out-of-Band Authentication Android SDK.
- Make sure you have a test account with Checkout.com.
- You must have started your Issuing onboarding and received client credentials.
Note
The SDK does not support the following frameworks:
- Cordova
- Flutter
- .NET MAUI / Xamarin
- React Native
- Import the SDK.
- Set the SDK environment.
- Instantiate the CardManagement SDK.
- Set up Strong Customer Authentication (SCA).
- Set up webhooks.
To implement the required use cases, see Next steps.
The SDK is distributed as a native Android dependency, which your app can consume through Maven Central.
Use Gradle to import the SDK into your app. In your project-level build.gradle
file, add:
1repositories {2mavenCentral()3}
In your app-level build.gradle
file, add:
1dependencies {2// Required to initialize the CardManagementDesignSystem3implementation 'androidx.compose.ui:ui:$compose_ui_version'4implementation 'com.checkout:checkout-sdk-card-management-android:$checkout_card_management_version'5}
Checkout.com distributes the following SDK libraries to you as Android archive files (AARs):
checkout-sdk-card-network-android.aar
– Provides the SDK's sensible internalsd1-release.aar
– Provides push onboarding capability
If you intend to use the SDK to add cards to digital wallets, you must add d1-release.aar
.
Note
- The D1 SDK version must be above
3.2.0
. Checkout.com has tested up to4.0.0
. - All additional libraries must match the same SDK version.
- For SDK versions, see the release notes on GitHub – CheckoutCardManagement-Android.
- In the project
build.gradle
file, import the .aar files into the app's repository:
1repositories {2flatDir {3dirs 'path/to/the/aars/rootDir`4}5}
- In the app-level
build.gradle
file, add the .aar files dependency and the following transitive dependencies:
1dependencies {2// Include the sdk3implementation fileTree(dir: 'path/to/the/aars/appDir', include: ['d1-release.aar', checkout-sdk-card-network-android.aar])45// Transitive dependencies for d1-release6implementation 'com.google.android.gms:play-services-gcm:17.0.0'7implementation 'androidx.annotation:annotation:1.6.0'8implementation 'com.google.android.gms:play-services-base:18.2.0'9implementation 'net.java.dev.jna:jna:5.8.0@aar'10implementation 'androidx.appcompat:appcompat:[1.0.0,1.3.1]'1112// Transitive dependencies for checkout-sdk-card-network-android13implementation 'com.squareup.retrofit2:retrofit:2.9.0'14implementation 'com.squareup.retrofit2:converter-gson:2.9.0'15implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.2'16implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2'17implementation 'com.google.dagger:dagger:2.46.1'18implementation 'androidx.compose.ui:ui:1.4.3'19implementation 'androidx.compose.material:material:1.4.3'20kapt 'com.google.dagger:dagger-compiler:2.46.1'21}
Information
- For more information on adding .aar libraries to your project, see Android Developers – Add your AAR or JAR as a dependency.
- If you're building a hybrid app, see your platform's documentation on how to consume native third-party SDKs.
The SDK supports two environments, which are both powered by the CheckoutCardManager
library:
- Sandbox (test)
- Production (live)
To authenticate in these environments, use the client credentials you receive as part of your Issuing onboarding.
You must provide valid tokens
in your requests, which our back-end services serve securely.
To set the SDK environment, provide the CardManagerEnvironment
environment as follows:
1let cardManager = CheckoutCardManager(designSystem: designSystem, environment: .sandbox)
The cardManagementDesignSystem
object defines the appearance of the UI components displayed to the user. You can set the following properties:
- Text style, using the properties exposed by the
compose.ui.text.TextStyle
class - Format separator, to set the text separator when formatting the card number
The CheckoutCardManager
object enables access the SDK's functionality and sets the SDK environment to SANDBOX
or PRODUCTION
.
Instantiate both objects as follows:
1// Customizable properties for the appearance of the secure UI components delivered by the SDK2private val cardManagerDesignSystem = CardManagementDesignSystem(3textStyle = TextStyle(), // Text style, using the properties exposed by the compose.ui.text.TextStyle class4panTextSeparator = "-" // Format separator, as a String, to set the text separator when formatting the card number5)67// Access to the SDK functionality8private val cardManager = CheckoutCardManager(9context = context,10designSystem = cardManagerDesignSystem,11environment = Environment.SANDBOX // Sets the SDK environment to either SANDBOX or PRODUCTION from com.checkout.cardmanagement.model.Environment12)
Information
If you have integration questions or issues, contact your issuing representative or [email protected].
While Checkout.com handles in-depth compliance, you are responsible for performing Strong Customer Authentication (SCA) on your cardholders for every session where they use functionality provided by the SDK. This applies to both the sandbox and production environments.
You can generate multiple tokens for different systems during a single authentication session. For example, to sign in, to get an SDK session token, and to get an internal authentication token.
However, you can only generate a single SDK session token for each SCA flow requested.
After you've completed the integration, see how to implement the following use cases in your app: