# Offers Integration

Follow this section if you want to integrate Offers in PayUCheckoutPro SDK

### Create Offers List

Create a list of offers that you want to pass to the CheckoutPro SDK. For each offer in list, offer title, offer description, offer key and offer payment types need to be passed. On Checkout Page SDK will show the best offer applicable on that payment mode based on the offers list sent to the SDK. Below is an example code for offers list

{% tabs %}
{% tab title="Java" %}

```java
 ArrayList<PayUOfferDetails> offerDetails = new ArrayList<>();
 PayUOfferDetails payUOfferDetails1 = new PayUOfferDetails();
 payUOfferDetails1.setOfferTitle("Instant discount of Rs.2");
 payUOfferDetails1.setOfferDescription("Get Instant dicount of Rs.2 on all Credit and Debit card transactions");
 payUOfferDetails1.setOfferKey("OfferKey@9227");

 ArrayList<PaymentType> offerPaymentTypes1 = new ArrayList<>();
 offerPaymentTypes1.add(PaymentType.CARD);
 payUOfferDetails1.setOfferPaymentTypes(offerPaymentTypes1);

 PayUOfferDetails payUOfferDetails2 = new PayUOfferDetails();
 payUOfferDetails2.setOfferTitle("Instant discount of Rs.2");
 payUOfferDetails2.setOfferDescription("Get Instant dicount of Rs.2 on all NetBanking transactions");
 payUOfferDetails2.setOfferKey("TestOffer100@9229");

 ArrayList<PaymentType> offerPaymentTypes2 = new ArrayList<>();
 offerPaymentTypes2.add(PaymentType.NB);
 payUOfferDetails2.setOfferPaymentTypes(offerPaymentTypes2);

 offerDetails.add(payUOfferDetails1);
 offerDetails.add(payUOfferDetails2);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
 val offerDetails = ArrayList<PayUOfferDetails>()
 offerDetails.add(PayUOfferDetails().also {
            it.offerTitle = " Instant discount of Rs.2"
            it.offerDescription = "Get Instant dicount of Rs.2 on all Credit and Debit card transactions"
            it.offerKey = "OfferKey@9227"
            it.offerPaymentTypes = ArrayList<PaymentType>().also {
                it.add(PaymentType.CARD)
            }
        })
  offerDetails.add(PayUOfferDetails().also {
            it.offerTitle = " Instant discount of Rs.2"
            it.offerDescription = "Get Instant dicount of Rs.2 on all NetBanking transactions"
            it.offerKey = "TestOffer100@9229"
            it.offerPaymentTypes = ArrayList<PaymentType>().also {
                it.add(PaymentType.NB)
            }
        })
```

{% endtab %}
{% endtabs %}

### Pass Offers List to SDK

To pass the Offers List created in above section to the SDK. Create a Object of PayUCheckoutProConfig and set Offers List as below

{% tabs %}
{% tab title="Java" %}

```java
 PayUCheckoutProConfig checkoutProConfig = new PayUCheckoutProConfig();
 checkoutProConfig.setOfferDetails(offerDetails);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
 val checkoutProConfig = PayUCheckoutProConfig()
 checkoutProConfig.offerDetails = offerDetails
```

{% endtab %}
{% endtabs %}

This checkoutProConfig object should be passed in PayUCheckoutPro.open() method as mentioned [here](https://payumobile.gitbook.io/sdk-integration/android/payucheckoutpro/customized-integration/sdk-configuration)
