# SDK integration

*This guide assumes that you've already followed the* [*iOS*](https://doc.batch.com/developer/sdk/ios/prerequisites) *and* [*Android*](https://github.com/BatchLabs/product.tech-documentation-gitbook/blob/master/android/prerequisites/README.md) *prerequisites.*

*Batch React-Native Plugin requires react-native 0.77 or higher. If you’re using Expo, version 54 or higher is required.*

Batch-React-Native-Plugin is a pure Turbo Module and does not support the legacy architecture anymore since react-native is [freezing the legacy architecture](https://github.com/reactwg/react-native-new-architecture/discussions/290) codebase. If you are still on the legacy architecture and do not plan to migrate on the new one, please use the Batch-React-Native-Plugin v11.

## Integration

Please follow the integration guide according to your application.

{% content-ref url="sdk-integration/expo-integration" %}
[expo-integration](https://doc.batch.com/developer/sdk/react-native/sdk-integration/expo-integration)
{% endcontent-ref %}

{% content-ref url="sdk-integration/vanilla-integration" %}
[vanilla-integration](https://doc.batch.com/developer/sdk/react-native/sdk-integration/vanilla-integration)
{% endcontent-ref %}

## Your first notification

#### 1. Obtaining Your Device Token on iOS

You can find your device's token using the [debug tool](https://doc.batch.com/developer/sdk/ios/profile-data/debug) or locating the token Batch posts to the Xcode console:

```objc
Push token (Apple Push Production): <push token>
```

Based on your *Provisioning Profile*, the token shown in the console will be **Development** *("Sandbox/Development")* or **Production** *("Production")*.

#### 2. Obtaining Your Device Token on Android

You can find your device's token using the [debug tool](https://doc.batch.com/developer/sdk/android/profile-data/debug) or locating the token Batch posts to the logcat *(*[*see here*](https://developer.android.com/tools/debugging/debugging-studio) *to know more)*:

```
Batch.Push: Registration ID/Push Token (FCM): <your device token>
```

#### 3. Sending A Test Push

You can send test notifications to your device with a push token. In the push notification creation form, click the ⚙️ and copy your push token in the corresponding field. Hit "Send a test".

![Test push](https://38998153-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCL8wF0y1T2vLnm3yR2MW%2Fuploads%2Fgit-blob-deb423488119b81965d79348d1b356be6ce36f20%2Fpush_test_token.png?alt=media)

#### What's next

*Congratulations on finishing the integration of Batch Push!*

Here are a couple of extra steps you can take before releasing your app:

* **Small icon / Accent color**: On Android, make sure the [small icon](https://doc.batch.com/developer/sdk/advanced/customizing-notifications#small-push-notification-icon) you are using is **opaque white**. We also recommend you use an accent color.
* **Custom user identifier**: Add support for [custom user identifiers](https://doc.batch.com/developer/sdk/react-native/profile-data/custom-user-id) if you are planning to use the [Profile API](https://doc.batch.com/developer/api/cep/profiles).
* **Analytics**: Add an [event dispatcher](https://doc.batch.com/developer/sdk/react-native/advanced/event-dispatchers) to automatically track your campaigns in your third-party analytics tool.
* **Token import**: [Import your existing tokens](https://doc.batch.com/getting-started/dashboard/customer-engagement-platform/21-cep-profiles/10-import-tokens) if you're coming from another push provider.
