# 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 enabled per organization on request (open a ticket); each api_sms token 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://staging-instasent-docs-nextjs.oscar-284.workers.dev/llms.txt
**This zone's index:** https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/llms-full.txt
**This page:** https://staging-instasent-docs-nextjs.oscar-284.workers.dev/a2p-messaging-api/smpp/authentication/ (HTML) · https://staging-instasent-docs-nextjs.oscar-284.workers.dev/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

Open a ticket to have SMPP enabled on your organization. Once it's on, every `api_sms` token in the dashboard exposes an extra pair of credentials — `systemID` and `password` — for use over SMPP. The 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://staging-instasent-docs-nextjs.oscar-284.workers.dev/llms.txt — start there for full context.
