# Multi-Bundle

If you're interested in leveraging different push configurations per each build type of your app (eg `Production`, `Staging`), you can do so via adding the new `multi-bundle` push configuration in the **Chat > Push Notifications** tab of your [Stream Dashboard](https://getstream.io/signin/?product=chat).

We're using bundle naming from APN but actually, it just a name for a configuration of a push provider you can save into your Stream app and since there can be multiple of them, we're calling it `multi-bundle` (i.e. _user named configuration_).

You can add new multi-bundle configuration by tapping on `New Configuration` under `Push Notifications` tab and by selecting your preferred push notification provider (eg. `APN`, `Firebase`, `Huawei`, `Xiaomi`...).

Once created, fill in the following details:

- `Name of your configuration` - this name will be used in `addDevice` registration call.
- Description - Some description to identify where it will be used. This is optional.
- Provider Settings - Credentials for the provider selected.
- Templates - Templates for the custom payload generation. This is optional but in some cases, it might be necessary to wake up the app in the background.

and `enable` the push configuration by tapping `Enabled` toggle on top right.
Once done, save the new push configuration.

>
> **Warning:** For backward compatibility, push provider configurations can be added via `UpdateAppSettings` endpoint but this is deprecated and might be removed in the future because it's not possible to add multiple configurations via this endpoint. There can only be one configuration per provider type since there is no name (i.e. bundle) specified for the configuration.
>
> If your application is old, you might have old configurations saved in your Stream app. Dashboard shows them and let you edit them but you can't add new ones without a name from dashboard (API still supports nameless `single-bundle` configurations). That's why if you add a new configuration via dashboard, be sure to use its name while adding a device to Stream app for a user.
>

Then, when a new device is registered, you need to add the desired `providerName`.

**Kotlin**

```kotlin {4}
Device(
    token = "token-generated-by-provider",
    pushProvider = yourPushProvider,
    providerName = "providerName",
)
```

**Java**

```java
new Device(
        "token-generated-by-provider",
        PushProvider.FIREBASE, // your push provider
        "providerName"
);
```

If you are using any of the artifacts integration we support, you can set them by adding an extra attribute on the constructor of the `PushProviderGenerator` class implementation.

---

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/android/v5/client/guides/push-notifications/multibundle/](https://getstream.io/chat/docs/sdk/android/v5/client/guides/push-notifications/multibundle/).