> For the complete documentation index, see [llms.txt](https://popin.gitbook.io/popin-developer-hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://popin.gitbook.io/popin-developer-hub/setting-up-incoming-call-notifications.md).

# Setting Up Incoming Call Notifications

When your agents initiate a call from the **Popin Seller app**, customers must receive an incoming call notification inside your mobile app (where the Popin SDK is integrated).

To enable this, you must configure push notification credentials so Popin can deliver call notifications to your customers.

Incoming call notifications are powered by:

* **Firebase Cloud Messaging (FCM)** for Android
* **Apple PushKit** for iOS

***

### How It Works

1. You integrate the **Popin SDK** into your mobile app
2. You configure push notification credentials in the Popin Dashboard
3. When a customer opens your app, the SDK registers their device token with Popin
4. An agent logs into the **Popin Seller** app and initiates a call
5. Popin sends a push notification using your configured credentials
6. The customer receives an incoming call notification inside your app

Both push configurations are managed from:

```
Popin Dashboard → Developers
/developers
```

***

### Prerequisites

Before you begin, ensure you have:

* ✅ Admin or Editor access to the Popin Dashboard
* ✅ The Popin SDK integrated into your mobile app
* ✅ A Firebase project (for Android)
* ✅ An Apple Developer account (for iOS)

***

## Android Setup — Firebase Cloud Messaging (FCM)

FCM is required to deliver incoming call notifications to customers using your Android app.

***

### Step 1: Create a Firebase Project

1. Go to the Firebase Console
2. Click **Add project** (or select an existing project)
3. Follow the setup prompts

> ℹ️ Use the same Firebase project configured in your Android app.

***

### Step 2: Generate a Service Account Key

1. Open your Firebase project
2. Go to **Project Settings** (gear icon next to “Project Overview”)
3. Select the **Service accounts** tab
4. Click **Generate new private key**
5. Confirm by clicking **Generate key**

A `.json` file will download to your computer.

> ⚠️ Keep this file secure. It grants access to your Firebase project.

***

### Step 3: Upload the Key to Popin

1. Log in to the Popin Dashboard
2. Navigate to **Developers** (`/developers`)
3. Scroll to **FCM Configuration**
4. Click **Setup** (or **Update**)
5. Upload the downloaded `.json` file
6. Click **Save**

Once saved, your Firebase Project ID will appear — confirming the setup is active.

***

## iOS Setup — Apple PushKit

PushKit enables VoIP-style push notifications that:

* Wake the app in the background
* Display a native call screen using CallKit
* Deliver incoming call notifications reliably

***

### Step 1: Create an APNs Authentication Key

1. Sign in to your Apple Developer Account
2. Navigate to **Certificates, Identifiers & Profiles**
3. Click **Keys**
4. Click the **+** button
5. Name the key (e.g., `Popin PushKit Key`)
6. Enable **Apple Push Notifications service (APNs)**
7. Click **Continue → Register**
8. Download the `.p8` file

> ⚠️ You can only download the `.p8` file once. Store it securely.\
> ℹ️ Make note of the **Key ID** shown on the confirmation page.

***

### Step 2: Find Required Apple Credentials

You’ll need:

| Credential             | Where to Find It                                   |
| ---------------------- | -------------------------------------------------- |
| **Team ID**            | Apple Developer Account → Membership page          |
| **Bundle ID (App ID)** | Certificates, Identifiers & Profiles → Identifiers |

Example Bundle ID:

```
com.example.app
```

***

### Step 3: Configure PushKit in Popin

1. Log in to the Popin Dashboard
2. Navigate to **Developers** (`/developers`)
3. Scroll to **PushKit Configuration**
4. Click **Setup** (or **Update**)
5. Fill in the required fields:

| Field               | Description                  | Example           |
| ------------------- | ---------------------------- | ----------------- |
| App ID (Bundle ID)  | Your iOS bundle identifier   | `com.example.app` |
| Auth Key (.p8 file) | Upload your downloaded file  | —                 |
| Key ID              | 10-character key from Apple  | `ABC123DEFG`      |
| Team ID             | Your Apple Developer Team ID | `TEAM123456`      |

6. Click **Save**

> ℹ️ When updating an existing configuration, uploading a new `.p8` file is optional unless you are replacing the key.

***

## Verifying Your Setup

After completing both configurations:

1. Ensure the Popin SDK is initialized correctly
2. Have a customer open your app (this registers their device token)
3. Log in to the **Popin Seller** app
4. Initiate a call to the customer

If configured correctly, the customer will receive an incoming call notification.

***

### Troubleshooting

If notifications are not received, verify:

* The FCM / PushKit configuration is saved correctly
* The customer has push notification permissions enabled
* The Popin SDK is initialized successfully
* The device has a stable internet connection

***

## Managing Configurations

You can modify push credentials anytime from:

```
Popin Dashboard → Developers
```

#### Update Credentials

* Click **Update**
* Upload new credentials
* Click **Save**

#### Remove Credentials

* Open the configuration modal
* Click **Remove**

> ⚠️ Removing a configuration immediately stops incoming call notifications for that platform.
