# SMPP authentication

The A2P Messaging API over SMPP authenticates each session with a system_id and password carried on the bind PDU. Credentials are issued in the dashboard once SMPP is enabled on the account.

**Language:** en
**Audience:** developer
**TLDR:** SMPP is requested from the dashboard (SMS > Settings, Request SMPP opens the support chat) and needs two things: SMPP access, which Instasent enables, and the wildcard route for wholesale providers; without both, SMPP keys can't be created. An api_sms key with the SMPP scope then shows a system_id and password pair, and its HTTP token keeps working in parallel. Bind once to smpp.instasent.com port 2775 (SMPP v3.4 or v5.0) with bind_transceiver, bind_transmitter or bind_receiver, keep the session open and send enquire_link periodically.
**Docs index (every page):** https://docs.instasent.com/llms.txt
**This zone's index:** https://docs.instasent.com/a2p-messaging-api/llms-full.txt
**This page:** https://docs.instasent.com/a2p-messaging-api/smpp/authentication/ (HTML) · https://docs.instasent.com/a2p-messaging-api/smpp/authentication.md (Markdown)

SMPP authentication is per-session, not per-request. The client binds once, authenticates with `system_id` + `password`, and keeps the TCP connection open for the rest of the traffic window.

## Enabling SMPP on your account

SMPP is not available by default: you **request it from the dashboard**, and it needs **two
things** on your account:

1. **SMPP access.** In the A2P Messaging API project, the SMS channel's **Settings** tab has an
   **SMPP** block that shows whether it is on; you can't switch it yourself. While it is off,
   **Request SMPP** opens the support chat with your request, and Instasent enables SMPP for
   your organization.
2. **The [wildcard route](/a2p-messaging-api/channels/sms/wildcard-route).** SMPP traffic
   always carries your customer's own sender name in `source_addr`, so it relies on the route
   that carries senders not registered in your account. The route is for wholesale providers
   and is requested from the same **Settings** tab, with your wholesale legal profile.

Both statuses are also in the **Wholesale providers** section of the SMS channel's right-hand
panel, with a **Request** button on whichever is off. If SMPP is on but the wildcard route
isn't, the **SMPP** block says that SMPP keys also need the route.

**Without both, SMPP keys can't be created**, and so nothing can be sent over SMPP. On an API
key, the **Send SMS through SMPP** option stays disabled, and its tooltip says what is missing:

- Without SMPP access — *"Needs extra access for your organization. Contact us to enable it."*
- Without the wildcard route — *"Needs the wildcard route. Request it in the SMS channel
  settings."*, with a **Request it in SMS settings** link under the options.

A key that already has SMPP keeps it. Once both are in place, an `api_sms` key with **Send SMS
through SMPP** exposes an extra pair of credentials — `systemID` and `password` — for use over
SMPP. The key's HTTP token remains usable in parallel.

## Server endpoint

| Field             | Value                                                                                              |
| ----------------- | -------------------------------------------------------------------------------------------------- |
| Host              | `smpp.instasent.com`                                                                               |
| Port              | `2775`                                                                                             |
| Protocol versions | [SMPP v3.4](https://smpp.org/SMPP_v3_4_Issue1_2.pdf) and [SMPP v5.0](https://smpp.org/SMPP_v5.pdf) |

## Binding

Use `bind_transceiver`, `bind_transmitter` or `bind_receiver` depending on the direction of traffic you need (see [Integration](/a2p-messaging-api/smpp/integration)). The required fields are the same on all three.

| Field       | Description                                                 |
| ----------- | ----------------------------------------------------------- |
| `system_id` | SMPP username, as shown next to the token in the dashboard. |
| `password`  | SMPP password, paired with the `system_id`.                 |

Example PDU:

```json
{
  "command": "bind_transceiver",
  "command_id": 9,
  "system_id": "myuser",
  "password": "mypass"
}
```

> **Tip**: Keep sessions long-lived and issue `enquire_link` PDUs periodically to avoid idle disconnects from intermediate firewalls. Re-binding on every message defeats the point of SMPP.

## What's next

- **[Integration](/a2p-messaging-api/smpp/integration)** — PDUs supported, sending, concatenation, DLRs, inbound messages.

---

This is one page of the Instasent documentation. For the complete machine-readable index of every guide and API reference, fetch https://docs.instasent.com/llms.txt — start there for full context.
