> ## Documentation Index
> Fetch the complete documentation index at: https://docs.beem.africa/llms.txt
> Use this file to discover all available pages before exploring further.

# SMPP integration

> Connect to the Beem Messaging Platform using the SMPP protocol.

SMPP (Short Message Peer-to-Peer) provides a direct binary protocol connection to the Messaging Platform, suitable for high-throughput message submission.

Contact your Beem account manager to obtain SMPP connection credentials and the host/port for your account.

***

## Standard parameters

| Parameter            | Example                        | Default          | Description                                                                |
| -------------------- | ------------------------------ | ---------------- | -------------------------------------------------------------------------- |
| **HOST / IP**        | `sms.example.com` or `1.2.3.4` | Provided by Beem | SMPP host                                                                  |
| **PORT**             | `1234`                         | Provided by Beem | SMPP port                                                                  |
| **USERNAME**         | `username`                     | Provided by Beem | Used to identify an ESME or an SMSC at bind time                           |
| **PASSWORD**         | `password`                     | Provided by Beem | Used by the SMSC to authenticate the identity of the binding ESME          |
| **BIND TYPE**        | `RX`, `TX`, or `TRX`           | `TRX`            | Whether the connector may transmit (`TX`), receive (`RX`), or both (`TRX`) |
| **THROUGHPUT (TPS)** | `4`, `15`, `20`, etc.          | `25`             | Number of messages per second per bind                                     |
| **NUMBER OF BINDS**  | `1`, `2`, `3`, etc.            | No default limit | Number of concurrent SMPP binds                                            |

<Info>
  The default TPS for new Multicountry SMS accounts is **25**, with **no limit** on binds by default. During onboarding, the Beem sales team may adjust TPS and bind limits based on your use case. Confirm your account's current values with your account manager or [support@beem.africa](mailto:support@beem.africa).
</Info>

***

## Optional parameters

| Parameter                 | Expected value      | Default          | Description                                                             |
| ------------------------- | ------------------- | ---------------- | ----------------------------------------------------------------------- |
| **WINDOW SIZE**           | Integer `1`–`20`    | `10`             | Maximum number of unacknowledged PDUs per session                       |
| **ENQUIRE LINK INTERVAL** | `45s`               | `45s`            | Interval for `enquire_link` PDUs                                        |
| **CONNECTION TIMEOUT**    | `60s`               | `60s`            | Connection timeout                                                      |
| **SYSTEM TYPE**           | `SMPP`, `CMT`, etc. | *(leave blank)*  | Identifies the type of system connecting to the SMSC                    |
| **SERVICE TYPE**          | `SMS`, `OTP`, etc.  | *(leave blank)*  | Identifies the service associated with an SMS message                   |
| **CHARCODE**              | `0`, `1`, `2`, etc. | `1`              | GSM-7 / IA5                                                             |
| **Source TON/NPI**        | TON `5`, NPI `0`    | TON `5`, NPI `0` | Type Of Number and Numbering Plan Indicator for the source address      |
| **Destination TON/NPI**   | TON `0`, NPI `1`    | TON `0`, NPI `1` | Type Of Number and Numbering Plan Indicator for the destination address |

***

## Bind types

| Bind type | Description                                           |
| --------- | ----------------------------------------------------- |
| `TX`      | Transmitter — send messages only                      |
| `RX`      | Receiver — receive messages and DLRs only             |
| `TRX`     | Transceiver — send and receive on the same connection |

The default bind type is **TRX** (transceiver), which allows both submission and delivery on a single session.

***

## Best practices

To ensure a smooth SMPP integration and avoid bind errors, IP blocking, or account blocking:

* **Agree your connection count upfront** — Configure the specific number of SMPP connections you need (for example, 2 or 3) with your Beem account manager during onboarding. Do not open more binds than agreed for your account.
* **Provide source IPs for whitelisting** — Share the exact outbound IP address(es) your application will connect from so Beem can whitelist them before you go live. Connections from non-whitelisted IPs may be rejected.
* **Keep sessions healthy** — Maintain `enquire_link` heartbeats at the configured interval (`45s` by default) to keep binds alive.
* **Respect throughput limits** — Stay within your account TPS per bind. Handle throttling errors (status `88`) by backing off and retrying.
* **Monitor account balance** — Status `8` indicates the system is out of credits.

If bind, IP, or account issues persist after following the steps above, contact [support@beem.africa](mailto:support@beem.africa) for investigation.

See [SMPP error codes](/guides/multicountry-sms/smpp-error-codes) for a full list of status codes.

***

## Related

* [Throughput & connections](/guides/multicountry-sms/throughput)
* [Message encoding](/guides/multicountry-sms/message-encoding)
* [API responses](/guides/multicountry-sms/api-responses)
