> For the complete documentation index, see [llms.txt](https://wiki.mobivatebulksms.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.mobivatebulksms.com/smpp/configuring-smpp-connection.md).

# Configuring SMPP Connection

Mobivate BulkSMS supports SMPP connections for high-throughput and low-latency message delivery.

### <mark style="color:green;">`POST`</mark> `/integrations/smpp`

### Authentication

SMPP credentials are managed separately from your API key and must be configured before connecting. You have two options:

**Option 1: Mobivate Dashboard**

1. Log into your [Mobivate](https://www.hub.mobivate.com/) account.
2. Click the **cog icon** in the top-right corner of the page.
3. Click on **User Profile.**
4. Navigate to the **Credentials** tab.
5. Click **SMPP**.
6. Configure your **SMPP Credentials** directly in the UI.

**Option 2: Integrations API**

Use our API endpoint to programmatically create or manage your SMPP connection:

Your API key must be included in the request. The request body accepts a `parameters` object and an optional `secret` object:

#### Parameters Object

| Field        | Type            | Required | Description                                                                                                                             |
| ------------ | --------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| enabled      | boolean         | Yes      | Whether the SMPP bind is active. Set to `false` to disable the connection (takes effect within 30 seconds and closes any active binds). |
| allowed\_ips | string          | Yes      | Comma-separated list of whitelisted IP ranges in CIDR notation. Use `0.0.0.0/0` to allow connections from anywhere.                     |
| dailyLimit   | integer or null | Yes      | Maximum number of messages per day. Set to `null` for no limit.                                                                         |

#### Secret Object (Optional)

| Field    | Type           | Description                                                                                |
| -------- | -------------- | ------------------------------------------------------------------------------------------ |
| systemID | string or null | Provide a value to set or rotate the username/system ID. Set to `null` to leave unchanged. |
| password | string or null | Provide a value to set or rotate the password. Set to `null` to leave unchanged.           |

### Example Requests

Generate new credentials and allow connections from anywhere with no daily limit:

```bash
curl --location 'https://<hostname>/integrations/smpp' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --data '{
    "parameters": { "enabled": true, "allowed_ips": "0.0.0.0/0", "dailyLimit": null },
    "secret": { "systemID": "aaaaaaaaaaaaaa", "password": null }
  }'
```

Rotate password only:

```bash
curl --location 'https://<hostname>/integrations/smpp' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --data '{
    "parameters": { "enabled": true, "allowed_ips": "0.0.0.0/0", "dailyLimit": null },
    "secret": { "systemID": null, "password": "0plt0jn2" }
  }'
```

Disable the bind, restrict to specific IPs, and set a daily limit:

```bash
curl --location 'https://<hostname>/integrations/smpp' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --data '{
    "parameters": { "enabled": false, "allowed_ips": "1.2.3.4/32,5.5.5.5/32", "dailyLimit": 400 }
  }'
```

Replace `YOUR_API_KEY` with your API key.

{% hint style="info" %}
The hostname shown in this documentation uses a **sample hostname**. The production SMPP hostname is provided by our team upon request.
{% endhint %}

### Required Permissions

Your API key **must** have the following permission enabled:

```
create:SingleSMS
```

Without this permission, SMPP message submission will be rejected.

### SMPP Connection Details

Use the following connection settings when configuring your SMPP client:

| Setting  | Value       |
| -------- | ----------- |
| Hostname | \<hostname> |
| Port     | 2775        |

{% hint style="info" %}
The hostname shown in this documentation uses a **sample hostname**. The production SMPP hostname is provided by our team upon request.
{% endhint %}

### Security Recommendations

We strongly recommend restricting access by whitelisting specific IP ranges in your SMPP configuration rather than using `0.0.0.0/0` in production environments.

IP restrictions can be configured when managing your API keys in the Mobivate dashboard.

{% hint style="warning" %}
Treat your SMPP credentials with the same care as your API keys. Do not expose credentials in client-side code or public repositories.
{% endhint %}
