# Listeners & Interfaces

ReferralHero provides various interfaces with its SDK that can be used to receive a callback upon successful execution, or in case of some error while executing the API.

You can use these callbacks to:&#x20;

* Track the execution of the API
* Check if the API call is successful or not
* Receive API response data or some other data depending on the API
* Get error message in case the API call fails

### RHReferralCallBackListener

Callback interface for when the ***AddSubscriber***, ***UpdateSubscriber*****,** and also use in ***other*** API finishes execution.

This interface is used to receive a callback while updating Subscriber detail and status.

There are 2 methods in this Listener like success and failure methods

```kotlin
fun onSuccessCallback(response: String?)
fun onFailureCallback(response: String?)
```

onSuccessCallback method call, when the API finishes execution With success if api execution finishes with exception it will call onFailureCallback.

**Parameters**

response – String check below response for reference

**Subscriber Data Class Sample Response**

```kotlin
{
    "status": "ok",
    "data": {
        "id": "sub_8645f85ac894",
        "name": "Test User 10",
        "email": "test10@gmail.com",
        "phone_number": "",
        "crypto_wallet_address": "",
        "crypto_wallet_provider": "",
        "extra_field": "",
        "extra_field_2": "",
        "option_field": "",
        "conversion_amount": 0,
        "code": "3ab0f674",
        "position": 10,
        "referred": false,
        "referred_by": {},
        "people_referred": 0,
        "promoted": false,
        "promoted_at": null,
        "verified": true,
        "verified_at": 1684403108,
        "points": 0,
        "risk_level": 0,
        "host": "https://app.referralhero.com/dashboard/lists/MFxxxxxxxxxx/analytics/traffic",
        "source": null,
        "device": null,
        "status":"",
        "referral_link": "https://app.referralhero.com/dashboard/lists/MFxxxxxxxxxx/analytics/traffic?mwr=3ab0f674",
        "created_at": 1684403108,
        "last_updated_at": 1684403108,
        "response": "subscriber_created"
    },
    "calls_left": null,
    "timestamp": 1684403108
}
```

### RHMyReferralCallBackListener

Callback interface for when the Get My Referral API finishes execution.

This interface is used to receive a callback while retrieving my Referral details.

There are 2 methods in this Listener like success and failure methods

```kotlin
fun onMyReferralSuccessCallback(response: String?)
fun onMyReferralFailureCallback(response: String?)
```

onMyReferralSuccessCallback method call, when the API finishes execution With success if api execution finishes with exception it will call onMyReferralFailureCallback.

**Parameters**

response– ApiResponse\<ListSubscriberData>  check below response for reference

**Get My Referral Sample Response**

```kotlin
{
  "status": "ok",
  "data": {
    "response": "subscribers_retrieved",
    "subscribers": [
      {
        "id": "sub_fa49ba0d30e9",
        "name": "Test User 10",
        "email": "test125@gmail.com",
        "phone_number": "",
        "crypto_wallet_address": "",
        "crypto_wallet_provider": "",
        "extra_field": "",
        "extra_field_2": "",
        "option_field": "",
        "conversion_amount": 0,
        "code": "dededb46",
        "position": 20,
        "referred": true,
        "referred_by": {
          "id": "sub_d0cc231dce89",
          "name": "Test name",
          "email": "test26@gmail.com",
          "code": "0879561f",
          "people_referred": 1,
          "points": 0
        },
        "people_referred": 0,
        "promoted": false,
        "promoted_at": null,
        "verified": true,
        "verified_at": 1684985427,
        "points": 0,
        "risk_level": 0,
        "host": "https://app.referralhero.com/dashboard/lists/MFxxxxxxxxxx/analytics/traffic",
        "source": null,
        "device": null,
        "referral_link": "https://app.referralhero.com/dashboard/lists/MFxxxxxxxxxxx/analytics/traffic?mwr=dededb46",
        "created_at": 1684985427,
        "last_updated_at": 1684985427
      }
    ],
    "pagination": {
      "total_pages": 1,
      "current_page": 1,
      "per_page": 50,
      "total_objects": 1
    }
  },
  "calls_left": null,
  "timestamp": 1685012334
}
```

### RHLeaderboardReferralCallBackListener

Callback interface for when the Get My Referral API finishes execution.

This interface is used to receive a callback while retrieving my Referral details.

There are 2 methods in this Listener like success and failure methods

```kotlin
fun onLeaderboardReferralSuccessCallback(response: String?)
fun onLeaderboardReferralFailureCallback(response: String?)
```

onLeaderboardReferralSuccessCallback method call, when the API finishes execution With success if api execution finishes with exception it will call onLeaderboard ReferralFailureCallback.

**Parameters**

response– ApiResponse\<RankingDataContent>  check below response for reference

**Get Leaderboard Sample Response**

```kotlin
{
  "status": "ok",
  "data": {
    "ranking": [
      {
        "id": "sub_7b9be1ed8ccb",
        "name": "Test User 10",
        "email": "test15@gmail.com",
        "phone_number": "",
        "crypto_wallet_address": "",
        "crypto_wallet_provider": "",
        "extra_field": "",
        "extra_field_2": "",
        "option_field": "",
        "conversion_amount": 0,
        "code": "2c2dbefb",
        "position": 1,
        "referred": false,
        "referred_by": {
          
        },
        "people_referred": 0,
        "promoted": false,
        "promoted_at": null,
        "verified": true,
        "verified_at": 1685018462,
        "points": 0,
        "risk_level": 0,
        "host": "https://app.referralhero.com/dashboard/lists/MFxxxxxxxxxx/analytics/traffic",
        "source": null,
        "device": null,
        "status":"",
        "referral_link": "https://app.referralhero.com/dashboard/lists/MFxxxxxxxxx/analytics/traffic?mwr=2c2dbefb",
        "created_at": 1685018462,
        "last_updated_at": 1685020506
      },
      {
        "id": "sub_06e2af5a2236",
        "name": "Test User multi1",
        "email": "testorganic3@gmail.com",
        "phone_number": "",
        "crypto_wallet_address": "",
        "crypto_wallet_provider": "",
        "extra_field": "",
        "extra_field_2": "",
        "option_field": "",
        "conversion_amount": 0,
        "code": "afd54225",
        "position": 2,
        "referred": false,
        "referred_by": {
          
        },
        "people_referred": 0,
        "promoted": false,
        "promoted_at": null,
        "verified": true,
        "verified_at": 1685018562,
        "points": 0,
        "risk_level": 0,
        "host": "https://app.referralhero.com/dashboard/lists/MFxxxxxxxx/analytics/traffic",
        "source": null,
        "device": null,
        "status":"",
        "referral_link": "https://app.referralhero.com/dashboard/lists/MFxxxxxxxx/analytics/traffic?mwr=afd54225",
        "created_at": 1685018562,
        "last_updated_at": 1685018562
      }
    ],
    "count": 2
  },
  "calls_left": null,
  "timestamp": 1685020750
}
```

### RHRewardsCallBackListener

Callback interface for when the Get Rewards API finishes execution.

This interface is used to receive a callback while retrieving my Referral details.

There are 2 methods in this Listener like success and failure methods

```kotlin
fun onRewardsSuccessCallback(response: String?)
fun onRewardsFailureCallback(response: String?)
```

onRewardsSuccessCallback method call, when the API finishes execution With success if api execution finishes with exception it will call onRewardsFailureCallback.

**Parameters**

response– ApiResponse\<ListSubscriberData>  check this response for reference

**Get Rewards Sample Response**

```kotlin
{
    "status": "ok",
    "data": {
        "response": "rewards_retrieved",
        "rewards": [
            {
                "id": 1795,
                "name": "A free Premium account for 1 year",
                "status": "confirmed",
                "referrals": null,
                "created_at": 1686397951,
                "signup_type": "organic subscriber",
                "referrals_type": null,
                "recurring_count": null,
                "image_url": null
            }
        ],
        "pagination": {
            "total_pages": 1,
            "current_page": 1,
            "per_page": 10,
            "total_objects": 1
        }
    },
    "calls_left": null,
    "timestamp": 1687759997
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.referralhero.com/integrate/mobile-sdks/android-sdk/listeners-and-interfaces.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
