# 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 %}


---

# 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://wiki.mobivatebulksms.com/smpp/configuring-smpp-connection.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.
