---
page_source: https://docs.juspay.io/upi-inapp/android/interaction-with-sdk/handle-sdk-response
page_title: Handle SDK Response
---


## Handle SDK Response




###   Handle Events from SDK


**HyperPaymentsCallbackAdapter** is an interface method to handle callbacks/outputs from sdk. HyperSDK uses a single point of communication(HyperPaymentsCallbackAdapter) with continuous events triggered during a payment lifecycle. Implement the highlighted code snippet in your app for proper handling of all events and status.



#### Code Snippets: -

#### Java Code Snippet:

```java
String event = data.getString("event");

              // block:start:show-loader
              if (event.equals("show_loader")) {
                // Show some loader here
              }
              // block:end:show-loader

              // block:start:hide-loader
              else if (event.equals("hide_loader")) {
                // Hide Loader
              } 
              // block:end:hide-loader

              // block:start:initiate-result
              else if (event.equals("initiate_result")) {
                // Get the response
                JSONObject response = data.optJSONObject("payload");
              }
              // block:end:initiate-result

              // block:start:process-result
              else if (event.equals("process_result")) {
                // Get the response
                JSONObject response = data.optJSONObject("payload");
                //Merchant handling
              } 
              // block:end:process-result

              // block:start:log-stream
              else if (event.equals("log_stream")){
                Log.i("=>Clickstream", data.toString());
              }
              // block:end:log-stream
              
              // block:start:session-expiry
              else if (event.equals("session_expiry")){
                // Handle Session Expiry
              }
              // block:end:session-expiry

            } catch (Exception e) {
              // merchant code...
            }
```

#### Kotlin Code Snippet:

```kotlin
val event = jsonObject.getString("event")

                    // block:start:hide-loader
                    if (event == "hide_loader") {
                        // Hide Loader
                    }
                    // block:end:hide-loader

                    // block:start:show-loader
                    else if (event == "show_loader") {
                        // Show some loader
                    }
                    // block:end:show-loader

                    // block:start:initiate-result
                    else if (event == "initiate_result") {
                        val innerPayload = jsonObject.optJSONObject("payload")
                    }
                    // block:end:initiate-result

                    // block:start:process-result
                    else if (event == "process_result") {
                        val innerPayload = jsonObject.optJSONObject("payload")
                    }
                    // block:end:process-result

                    // block:start:log-stream
                    else if (event == "log_stream") {
                        val innerPayload = jsonObject.optJSONObject("payload")
                    }
                    // block:end:log-stream

                    // block:start:session-expiry
                    else if (event == "session_expiry") {
                        // Handle Session Expiry
                    }
                    // block:end:session-expiry

                } catch (e: Exception) {
                    // merchant code...
                }
```



###   Event: show_loader


This event implies merchant has triggered sdk and needs to show loader until UI is loaded.



#### Code Snippets: -

#### Java Code Snippet:

```java
if (event.equals("show_loader")) {
                // Show some loader here
              }
```

#### Kotlin Code Snippet:

```kotlin
else if (event == "show_loader") {
                        // Show some loader
                    }
```



###   Event: hide_loader


This event implies that UI is loaded and loader can be stopped or hidden.



#### Code Snippets: -

#### Java Code Snippet:

```java
else if (event.equals("hide_loader")) {
                // Hide Loader
              }
```

#### Kotlin Code Snippet:

```kotlin
if (event == "hide_loader") {
                        // Hide Loader
                    }
```



###   Event: initiate_result


This event contains the response of `initiate` action.



#### Code Snippets: -

#### Java Code Snippet:

```java
else if (event.equals("initiate_result")) {
                // Get the response
                JSONObject response = data.optJSONObject("payload");
              }
```

#### Kotlin Code Snippet:

```kotlin
else if (event == "initiate_result") {
                        val innerPayload = jsonObject.optJSONObject("payload")
                    }
```



###   Event: process_result


This event contains the response of different `process` actions called. For process operations [Click Here](../ui-process-payloads/inapp-ui).



#### Code Snippets: -

#### Java Code Snippet:

```java
else if (event.equals("process_result")) {
                // Get the response
                JSONObject response = data.optJSONObject("payload");
                //Merchant handling
              }
```

#### Kotlin Code Snippet:

```kotlin
else if (event == "process_result") {
                        val innerPayload = jsonObject.optJSONObject("payload")
                    }
```



###   Event: log_stream


This event contains the various Clickstream events that SDK provides to know the user actions in the application.

> **Warning**
> For enabling Clickstream events, logLevel key is mandatory in [intiate payload](../miscellaneous/additional-parameters). The value of this key should be 1.





#### Code Snippets: -

#### Java Code Snippet:

```java
else if (event.equals("log_stream")){
                Log.i("=>Clickstream", data.toString());
              }
```

#### Kotlin Code Snippet:

```kotlin
else if (event == "log_stream") {
                        val innerPayload = jsonObject.optJSONObject("payload")
                    }
```



###   Event: session_expiry


This event is given when signature or clientAuthToken expires. For more details [Click Here](../miscellaneous/session-expiry).



#### Code Snippets: -

#### Java Code Snippet:

```java
else if (event.equals("session_expiry")){
                // Handle Session Expiry
              }
```

#### Kotlin Code Snippet:

```kotlin
else if (event == "session_expiry") {
                        // Handle Session Expiry
                    }
```
