Additional resources
- See Choose the right integration for you if you’re unsure which flow to follow.
- Access the Release notes or the Yuno Android SDK repository to verify the latest SDK version available.
- full-checkout Enrollment (Android): Automatic enrollment with pre-built UI components
Requirements
- Minimum SDK Version:
minSdkVersion21 or above - Java: Java 8 enabled
- AndroidX: Use AndroidX instead of older support libraries
- Android Gradle Plugin: 4.0.0 or above
- ProGuard: 6.2.2 or above
- Kotlin Gradle Plugin: 1.4.0 or above
- ELF Page Size Support: Compliant with Google’s 16 KB ELF page alignment requirements (Android 15 / ARMv9 ready)
ProGuard / R8 Configuration
If your project hasminifyEnabled = true, add these rules to your proguard-rules.pro file to ensure the SDK works correctly, especially with AGP 8.x+ R8 full mode.
Official Yuno ProGuard / R8 rules
Official Yuno ProGuard / R8 rules
Why are these rules necessary?
AGP 8.x+ enables R8 full mode by default, which aggressively strips generic type signatures. Without-keepattributes Signature, Gson’s TypeToken<T> can fail at runtime with java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType.Parameters
For the full list of parameters, see the Android SDK Common Reference.| Parameter | Description |
|---|---|
customerSession | Customer session ID from Create customer session API. Required. |
countryCode | ISO country code. Required. |
showEnrollmentStatus | Show enrollment result screen. Optional; default true. |
callbackEnrollmentState | Callback: enrollment state. Optional; requires initEnrollment in onCreate. |
requestCode | Optional; use if capturing result via onActivityResult. |
countryCode | Country for the enrollment. Required for apiClientEnroll. |
customerSession | Customer session ID. Required for apiClientEnroll. |
full-checkout Enrollment (Android)
Yuno full-checkout for Android provides enrollment with pre-built UI, card enrollment, status handling, and basic error management. See Requirements above.Step 1: Create a customer
Create a customer in Yuno’s system using the Create customer endpoint before enrolling payment methods. This endpoint returns acustomer_id. Then create a customer session using the Create Customer Session endpoint; use the returned customer_session when calling the enrollment methods.
Step 2: Include the library in your project
Add the Yuno library to your Android project:Add the Repository
Add Yuno’s Maven repository to your project’s Gradle configuration:build.gradle:
Permissions
The Yuno SDK includes theINTERNET permission by default, which is required to make network requests.
Step 3: Initialize SDK with the public key
Initialize the SDK:- Get your Public API Key from the Yuno Dashboard
- Create a custom application class if you haven’t already done so
- In the
onCreate()method of your application class, callYuno.initialize()with your API key:
YunoConfig to customize the SDK’s behavior. Include this configuration when calling Yuno.initialize(). The available options are:
Step 4: Enroll a new payment method
The enrollment process is a two-step flow. First, initialize the process to set up the necessary components. Then, start the UI flow to allow the user to enroll a payment method.4.1 Initialize the enrollment process
Call theinitEnrollment method within your activity’s onCreate method to prepare your app to handle the enrollment flow. This is a mandatory setup step required by the Android operating system to register the contract that allows the SDK to send the final enrollment status back to your app.
4.2 Start the enrollment flow
Call thestartEnrollment method to launch the user interface and begin the enrollment of a new payment method. You can call this method at any point after initEnrollment has been executed, such as when a user taps an “Enroll New Payment Method” button.
startEnrollment parameters:
| Parameter | Description |
|---|---|
customerSession | The session customer associated with the current enrollment process. |
countryCode | Country code where the payment is performed. See Country coverage for a complete list of supported countries and their codes. |
showEnrollmentStatus | Indicates whether the enrollment status should be shown. This parameter is optional and defaults to true. |
callbackEnrollmentState | A function that returns the current state of the enrollment process. This parameter is optional and defaults to null. To register this callback, you must call initEnrollment method in the onCreate method of the activity. Check the possible states that can be returned. |
requestCode | It is an optional parameter you must inform if you are going to use the onActivityResult method to capture the enrollment states. |