> ## Documentation Index
> Fetch the complete documentation index at: https://docs.y.uno/llms.txt
> Use this file to discover all available pages before exploring further.

# Lite SDK (Enrollment Android)

<Warning>
  **Orientation: Choosing Your Integration Flow**, before you begin, please review the [Official Integration Flow](/docs/sdks/overview/understanding-flows).

  * **Standard Flow ([Full Checkout](/docs/sdks/full-checkout/web-payments))**: Recommended for most merchants. Yuno handles the UI, security, and automatic updates for payment methods.
  * **Custom Flow (This SDK)**: Use this only if you require full control over the UX. **Note**: You will be responsible for manually handling payment statuses, 3DS transitions, and fraud routing data collection.
</Warning>

Follow this step-by-step guide to implement and enable Yuno's Lite Android SDK enrollment functionality in your application.

## Step 1: Include the library in your project

Before proceeding with the Lite SDK implementation, see the [SDK Integration Overview](/docs/sdks/overview/quickstart) for detailed instructions on how to properly integrate the SDK into your project.

Choose the integration method that best suits your development workflow and technical requirements. After completing the SDK integration, you can proceed with the following steps to implement the lite enrollment functionality.

## Step 2: Initialize SDK

Initialize the Yuno SDK in your `Application` class by providing a valid `PUBLIC_API_KEY`:

```kotlin theme={"theme":{"light":"github-dark","dark":"github-dark"}}
class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        Yuno.initialize(
            this,
            publicApiKey = "YOUR_PUBLIC_API_KEY",
            config = YunoConfig()
        )
    }
}
```

<Note>
  **Credentials**

  See the credentials page for more information: [/reference/getting-started/authentication](/reference/getting-started/authentication)
</Note>

## Step 3: Create a customer session

To start the enrollment process, you need to provide the `customer_session`. First, you need to create a customer. Use the [Create Customer](/reference/customers/create-customer) endpoint to create new customers. In the response, you will receive the customer `id`, which you use to create the customer session.

After creating the customer, you can create the customer session. Use the customer `id` and the [Create Customer Session](/reference/customer-sessions-enrollment/create-customer-session) endpoint. The `customer_session` will be provided in the response. You need a new `customer_session` every time you enroll in a new payment method.

## Step 4: Start the enrollment process

To provide a lite enrollment experience, you must first initialize the enrollment process and then launch the UI.

### 1. Initialize enrollment

Call `initEnrollment` in your activity's `onCreate` method to prepare the SDK for the enrollment flow.

```kotlin theme={"theme":{"light":"github-dark","dark":"github-dark"}}
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    
    initEnrollment { state ->
        Log.d("YunoEnrollment", "Enrollment state: $state")
    }
}
```

### 2. Launch enrollment UI

Call `startCheckout` with the sessions and configuration parameters to display the enrollment form.

```kotlin theme={"theme":{"light":"github-dark","dark":"github-dark"}}
startEnrollment(
    customerSession = "CUSTOMER_SESSION",
    countryCode = "US",
    showEnrollmentStatus = true,
    requestCode = 100 // Optional: defaults to 0
)
```

### Parameters

Configure the lite enrollment with the following options:

| Parameter              | Description                                                                                                             |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `customerSession`      | Refers to the current enrollment's [customer session](/reference/customer-sessions-enrollment/create-customer-session). |
| `countryCode`          | This parameter specifies the country code for which the enrollment is being set up.                                     |
| `showEnrollmentStatus` | Controls the visibility of the Yuno loading/spinner page during the enrollment process. Defaults to `true`.             |
| `requestCode`          | The request code used for the activity result. Defaults to `0`.                                                         |

## Step 5: Enrollment Status

When the enrollment process completes, the SDK invokes the callback provided in `initEnrollment`.

### Possible status values

* `SUCCEEDED`: The enrollment was successful.
* `FAIL`: The enrollment failed.
* `PROCESSING`: The enrollment is being processed.
* `REJECT`: The enrollment was rejected.
* `CANCELED`: The user canceled the enrollment.

<Note>
  **Demo App**

  In addition to the code examples provided, you can access the [Yuno Android SDK repository](https://github.com/yuno-payments/yuno-sdk-android) for a complete implementation of Yuno SDKs.
</Note>

## Error handling

Handle errors returned by the SDK in your app (e.g. failed enrollment, validation errors). For HTTP status and response codes, see [Status and response codes](/reference/getting-started/response-codes) in the API reference.

## Stay updated

Visit the [release notes](/changelog/android) for the latest SDK updates and version history.
