---
page_title: Terminate SDK
product: UPI TPAP SDK
platform: React Native
page_source: https://juspay.io/in/docs/upi-tpap-sdk/react-native/miscellaneous/terminate
llms_txt: https://juspay.io/in/docs/llms.txt
product_llms_txt: https://juspay.io/in/docs/upi-tpap-sdk/llms.txt
---


## Terminate




###   Call Terminate


This API should be triggered for all operations required from the HyperSDK. This API can be triggered any number of times based on requirements or app flow structure.



#### Code Snippets: -

#### Functional Code Snippet:

```functional
{"success":false,"message":"Failed to fetch snippet"}
```

#### Class Code Snippet:

```class
terminate() {
    HyperSdkReact.terminate();
  }
```


---

## Complete Code Reference

The following code files are referenced in the steps above:

### Checkout.js

```
{"success":false,"message":"Failed to fetch snippet"}
```

### Checkout.js

```
/* eslint-disable react-native/no-inline-styles */
import React from 'react';
import HyperSdkReact from 'hyper-sdk-react';
import {
  BackHandler,
  Button,
  NativeEventEmitter,
  NativeModules,
  ScrollView,
  Text,
} from 'react-native';
import {createStackNavigator} from 'react-navigation';

class Checkout extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      processPayload: {},
    };
  }

  //Setting event listener to check for process result
  // block:start:event-handling-process

  componentDidMount() {
    const eventEmitter = new NativeEventEmitter(NativeModules.HyperSdkReact);
    eventEmitter.addListener('HyperEvent', resp => {
      const data = JSON.parse(resp);
      const event = data.event || '';
      switch (event) {
        // block:start:show-loader
        case 'show_loader':
          // Show some Loader
          break;
        // block:end:show-loader

        // block:start:hide-loader
        case 'hide_loader':
          // Hide Loader
          break;
        // block:end:hide-loader

        // block:start:initiate-result
        case 'initiate_result':
          // logging the initiate result
          console.log('Initiate result', data);
          break;
        // block:end:initiate-result

        // block:start:process-result
        case 'process_result':
          // logging the initiate result
          console.log('Process result', data);
          break;
        // block:end:process-result

        // block:start:log-stream
        case 'log_stream':
          // print data
          console.log(data);
          break;
        // block:end:log-stream

        // block:start:session-expiry
        case 'session_expiry':
          // Handle Session Expiry
          break;
        // block:end:session-expiry
      }
    });

    // block:end:event-handling-process

    // block:start:fetch-process-payload

    //Get process payload from server after session API S2S call
    this.setState({
      processPayload: {
        requestId: 'dbba45aaf8dc408da474b7943b9e1d9f',
        service: 'in.juspay.hyperapi',
        payload: {
          action: 'upiCheckPermission'
        },
      },
    });

    // block:end:fetch-process-payload

    //Handling hardware backpress inside payment page

    // block:start:handle-hardware-backpress

    BackHandler.addEventListener('hardwareBackPress', () => {
      return !HyperSdkReact.isNull() && HyperSdkReact.onBackPressed();
    });

    // block:end:handle-hardware-backpress
  }

  // block:start:process-sdk

  callProcess() {
    if(HyperSdkReact.isInitialised()) {
      HyperSdkReact.process(JSON.stringify(this.state.processPayload));
    }
  }

  // block:end:process-sdk

  // block:start:terminate

  terminate() {
    HyperSdkReact.terminate();
  }

  // block:end:terminate

  render() {
    return (
      <ScrollView
        contentInsetAdjustmentBehavior="automatic"
        contentContainerStyle={{
          alignItems: 'center',
          justifyContent: 'space-around',
          height: '100%',
        }}>
        <Text>Initialized automatically on this screen</Text>
        <Button onPress={() => this.callProcess()} title="Process" />
      </ScrollView>
    );
  }
}

export default createStackNavigator(
  {
    Checkout: {
      screen: Checkout,
    },
  },
  {
    headerMode: 'none',
    navigationOptions: {
      headerVisible: false,
    },
  },
);
```


---

## See Also

- [Multi-activity Integration](https://juspay.io/in/docs/upi-tpap-sdk/react-native/miscellaneous/multi-activity-integration)
- [Additional Parameters](https://juspay.io/in/docs/upi-tpap-sdk/react-native/miscellaneous/additional-parameters)
