# Add the SDK to Your Project

This guide explains how to add the **Get Mini Android SDK** to your Android project. The SDK is distributed as a **local JAR library** that integrates directly into your application and communicates with an external certified PIN pad device.

The steps below follow the official integration model as documented in the manual.

---

## Requirements

Before adding the SDK to your project, ensure the following:

* Android Studio configured for Android application development
* Java 8 (or higher) compatibility enabled in your project
* An Android device compatible with the Get Mini PIN pad
* The Get Mini Android SDK JAR file provided by your technical contact

---

## Step 1: Add the SDK JAR to Your Project

The Get Mini Android SDK is distributed as a JAR file (e.g., `redcls-itpvpc-android.jar`). To include it in your project:

1. In Android Studio's Project Explorer, locate and expand your application module (typically `app/`)
2. Check if a `libs/` folder exists. If not, create one at `app/libs/`
3. Add the SDK JAR file to the `libs/` folder by dragging and dropping it, or by copying and pasting the file

Your project structure should look like this:

```
app/
 └── libs/
     └── redcls-itpvpc-android.jar
```

Once the JAR file is in the `libs/` folder, you will have access to all SDK functionality from your project.

---

## Step 2: Configure Dependencies (Optional)

In most projects, no additional dependencies are required as the SDK is self-contained. However, if you encounter cryptographic provider errors (like `NoSuchAlgorithmException`) or JSON parsing errors during login, add the following to your application-level `build.gradle` file:

```gradle
dependencies {
    // Get Mini Android SDK (local JAR)
    implementation files('libs/redcls-itpvpc-android.jar')

    // Troubleshooting dependencies (if needed)
    implementation(group: 'org.bouncycastle', name: 'bcprov-jdk16', version: '1.45')
    implementation 'com.google.code.gson:gson:2.8.5'
}
```

Sync your project with Gradle after adding these dependencies.

---

## Step 3: Configure Java Compatibility

Ensure your project is configured to use Java 8 or higher. Add or verify the following in your `app/build.gradle` file:

```gradle
android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    // If using Kotlin
    kotlinOptions {
        jvmTarget = "1.8"
    }
}
```

---

## Step 4: Verify the Integration

After syncing your project, verify that the SDK is correctly integrated by importing a core Get Mini class in your code:

```java
import redcls.itpvpc.RedCLSPinPadManager;
import redcls.itpvpc.RedCLSMerchantConfigurationManager;
import redcls.itpvpc.RedCLSConfigurationLibrary;
```

If Android Studio resolves these imports without errors, the SDK is successfully added to your project.

---

## Optional: ProGuard/R8 Configuration

If your project uses code shrinking (`minifyEnabled true`), you may want to add keep rules for the SDK classes to prevent obfuscation issues. Add the following to your `proguard-rules.pro` file:

```proguard
## Get Mini Android SDK
-keep class redcls.itpvpc.** { *; }
-keep interface redcls.itpvpc.** { *; }
-dontwarn redcls.itpvpc.**

## Required dependencies
-keep class org.bouncycastle.** { *; }
-dontwarn org.bouncycastle.**
```

<Callout type="note">

These ProGuard rules are optional and not explicitly required by the technical documentation, but may help prevent issues in release builds.

</Callout>

---

## Troubleshooting

**Build Error: Class Not Found**

* Verify that the JAR file is located in `app/libs/`
* Ensure the JAR file is referenced correctly in your `build.gradle` dependencies
* Sync the project again (File → Sync Project with Gradle Files)

**Import Not Recognized**

* Invalidate Android Studio caches (File → Invalidate Caches / Restart)
* Ensure the JAR file is not corrupted
* Verify you're using the correct SDK version for your integration

**Dependency Resolution Errors**

* Ensure you have internet connectivity for downloading BouncyCastle and Gson dependencies
* Check that your project repositories include `mavenCentral()` or `jcenter()`
* Verify the exact dependency versions specified in the technical documentation

---

## SDK Package Structure

The Get Mini Android SDK uses the following package structure:

* `redcls.itpvpc.*` - Core SDK classes and managers
* `redcls.itpvpc.data.*` - Data models and request/response objects
* `redcls.itpvpc.constants.*` - Constants and error codes

This differs from other SDKs that may use `es.redsys.*` packages.

---

## Next Steps

With the Get Mini SDK added to your project, continue with the following guides:

* [Configure Android Permissions](/en/get-mini/android-sdk/first-steps/configure-android-permissions) – Declare required Bluetooth and network permissions
* [Quickstart: Your First Sale](/en/get-mini/android-sdk/first-steps/android-sdk-quickstart) – Initialize the SDK, connect the PIN pad, and process a payment
* [Transaction Lifecycle](/en/get-mini/android-sdk/core-concepts/transaction-lifecycle) – Understand the full payment flow