# SDK integration

*This guide assumes that you've already followed the* [*iOS*](/developer/sdk/ios/prerequisites.md) *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="/pages/ekGm6EuV31d7t7ouJfTq" %}
[Expo Integration](/developer/sdk/react-native/sdk-integration/expo-integration.md)
{% endcontent-ref %}

{% content-ref url="/pages/CS6xbqSjKzUwBuKrfBZ5" %}
[Vanilla Integration](/developer/sdk/react-native/sdk-integration/vanilla-integration.md)
{% endcontent-ref %}

## Your first notification

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

You can find your device's token using the [debug tool](/developer/sdk/ios/profile-data/debug.md) 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](/developer/sdk/android/profile-data/debug.md) 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](/files/Wk7XvAZyJuaGOfQoV6lk)

#### 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](/developer/sdk/react-native/advanced/customizing-notifications.md#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](/developer/sdk/react-native/profile-data/custom-user-id.md) if you are planning to use the [Profile API](/developer/api/cep/profiles.md).
* **Analytics**: Add an [event dispatcher](/developer/sdk/react-native/advanced/event-dispatchers.md) 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.


---

# 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://doc.batch.com/developer/sdk/react-native/sdk-integration.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.
