> ## Documentation Index
> Fetch the complete documentation index at: https://doc-test-my.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrate With Android Custom SDK

> Customise the default Razorpay Checkout form for your Android apps using the Custom SDK libraries.

With Razorpay Android Custom SDK, you can customise the Razorpay Checkout UI.

* Customise the look-and-feel such as colors and themes of your app's Checkout form.
* Validate customer inputs such as card number, expiry date and others using the [Luhn check algorithm](https://en.wikipedia.org/wiki/Luhn_algorithm).
* Configure and integrate the payment methods on the Checkout form.

<Warning>
  **Handy Tips**

  It is recommended to integrate with the [Razorpay Android Standard SDK](/docs/payments/payment-gateway/android-integration/standard) as it supports all payment methods by default. If you integrate with Custom Checkout SDK, you will need to integrate these manually.
</Warning>

## List of Razorpay Android Custom SDK Versions (Last 5 versions)

| Version No. | Release Date | Changes                                                                                                                                                                                                                                                                                                                        |
| ----------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 3.9.22      | 07 Aug 2024  | **Feature**: Implemented Gradle bill-of-materials for Razorpay Plugins such as [OTP-Assist](https://razorpay.com/docs/payments/payment-gateway/android-integration/custom/otp-assist).                                                                                                                                         |
| 3.9.21      | 12 Apr 2024  | **Bug Fix**: `Application not responding` crash fix for UPI Intent payments                                                                                                                                                                                                                                                    |
| 3.9.20      | 13 Dec 2023  | **Feature**: Added auto-read and auto-submit features for card and native OTP payments in the [OTP-Assist SDK](https://razorpay.com/docs/payments/payment-gateway/android-integration/custom/otp-assist)                                                                                                                       |
| 3.9.19      | 07 Nov 2023  | Changed the encryption mode                                                                                                                                                                                                                                                                                                    |
| 3.9.18      | 22 Aug 2023  | **Feature**: Added a new GPG Key to sign all artifacts, allowing you to verify the downloaded artifacts using the [public key](https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0xfc93fa80ce2cb687b7d4a9e1bdb7ee27d107b361) <br />  **Bug Fix**: `NullPointerException` fix in `isValidVpa` function during API timeouts |

<Check>
  **Update SDK**

  Check your [current SDK version](/docs/payments/payment-gateway/android-integration/custom/troubleshooting-faqs#3-how-can-i-check-the-razorpay-android). If it is outdated, please [update the SDK](/docs/payments/payment-gateway/android-integration/custom/troubleshooting-faqs#4-how-can-i-update-the-razorpay-android) to ensure uninterrupted settlements of your funds.

  From version 3.9.22 onwards, the latest version is automatically updated, eliminating the need for manual updates.
</Check>

## Sample Code

Check the sample code on [GitHub](https://github.com/razorpay/razorpay-android-custom-sample-app) to integrate.

## Prerequisites

<ul>
  <li> Create a <a href="https://dashboard.curlec.com/?screen=sign_in&next=app%2Fdashboard" target="_blank">Razorpay Curlec account</a>.</li>
  <li>Generate the <a href="/docs/payments/dashboard/account-settings/api-keys#generate-api-keys" target="_blank">API Keys</a> from the Dashboard. To go live with the integration and start accepting real payments, generate Live Mode API Keys and replace them in the integration.</li>
  <li>Know about the <a href="/docs/payments/payment-gateway/how-it-works" target="_blank">Payment Flow</a>.</li>
  <li>According to the PCI regulations, payment processing is not allowed on TLS v1. Hence, if the device does not have TLS v1.1 or v1.2, the SDK will throw an error in the onPaymentError method. Check the <a href="https://developer.android.com/reference/javax/net/ssl/SSLSocket#default-configuration-for-different-android-versions" target="_blank">TLS versions</a>.</li>
</ul>

## Integration Steps

Follow these integration steps:

1. [Build Integration](/docs/payments/payment-gateway/android-integration/custom/build-integration)
2. [Test Integration](/docs/payments/payment-gateway/android-integration/custom/test-integration)
3. [Go Live Checklist](/docs/payments/payment-gateway/android-integration/custom/go-live-checklist)

### Related Information

[Troubleshooting and FAQs](/docs/payments/payment-gateway/android-integration/standard/troubleshooting-faqs)
