Skip to main content

SMPP integration

SMPP integration for high-volume senders

Bind your own SMPP v3.4 client or gateway to LundoSMS over TLS. Submit messages with `submit_sm` and receive standard delivery receipts as `deliver_sm`.

host smpp.lundosms.co.tz
port 3550 (TLS)
bind transmitter · receiver · transceiver
smpp v3.4

Connection settings

How to reach the LundoSMS SMPP server
ParameterValue
Hostsmpp.lundosms.co.tz
Port3550 · TLS 1.2 or later
ProtocolSMPP v3.4
system_id and passwordCreated in your dashboard; the password is shown once
Keep-aliveSend enquire_link at least every 60 seconds
EncryptionTLS on the public endpoint; plain-text SMPP is not offered
Binds and throughputSet per account — ask us if you need more

Bind modes

Choose the bind that matches what the connection does.

  • Transmitter

    bind_transmitter — submit messages with submit_sm and read submit_sm_resp. Receipts are not delivered on this bind.

  • Receiver

    bind_receiver — receive delivery receipts as deliver_sm and acknowledge each with deliver_sm_resp.

  • Transceiver

    bind_transceiver — submit and receive on a single connection. The simplest choice for most clients.

Submitting messages

How submit_sm fields are interpreted
FieldMeaning
source_addrOne of your approved sender IDs (case-insensitive)
destination_addrA Tanzanian number in any common format; it is normalised to international format
data_coding0 GSM-7 (default alphabet), 1 ASCII, 3 Latin-1, 8 UCS-2
message_payloadFull text of a long message — LundoSMS splits it and bills the segments
esm_class with UDHIA pre-split segment; it is billed as one credit and forwarded with its UDH intact
registered_delivery1 requests the final delivery receipt; the intermediate-notification flag is honoured too

Credits are checked and reserved when the message is accepted — the same rules as the REST API and the web composer, so a message costs the same whichever way it arrives.

Delivery receipts

When you request receipts, LundoSMS sends a `deliver_sm` with `esm_class 0x04` once the message reaches a final state.

Receipt text

deliver_sm · esm_class 0x04
id:0192c0d1-7c3e-7a52-9f31-2b6c8a1d4e91 sub:001 dlvrd:001 submit date:2610170930 done date:2610170931 stat:DELIVRD err:000 text:Your order has been

The standard format. The receipted_message_id and message_state TLVs are included, and the id is the message_id returned in submit_sm_resp.

Delivery receipts
StatusMeaning
DELIVRDDelivered to the handset.
UNDELIVCould not be delivered.
EXPIREDThe validity period ended without delivery.
REJECTDRejected by the network.
DELETEDRemoved before delivery; reported as undeliverable.
UNKNOWNThe final state could not be determined.

ACCEPTD and ENROUTE are intermediate; they are recorded but do not change the final status.

A successful submit_sm_resp means LundoSMS accepted the message — not that it was delivered. Only a DELIVRD receipt means delivered.

Error responses

The same admission rules as the REST API, mapped to SMPP command_status values.

Error responses
StatusCodeResult
ESME_RTHROTTLED0x58TPS limit exceeded. Slow down and retry.
ESME_RSUBMITFAIL0x45Not enough credits, or the account cannot send.
ESME_RINVSRCADR0x0AThe sender ID is not approved for this account.
ESME_RINVDSTADR0x0BInvalid or not allowed destination, or an opted-out number.
ESME_RINVMSGLEN0x01Empty or too long a message.
ESME_RSYSERR0x08A temporary problem on our side. Retry with backoff.
ESME_RINVPASWD · ESME_RBINDFAIL0x0E · 0x0DBind refused: wrong system_id or password, or an account that is not active.

Getting started

  1. 1

    Create an SMPP account

    In your dashboard's Developer section, create an SMPP account (a test account first). Copy the password when it is shown.

  2. 2

    Point your client at us

    Use the host and TLS port above with your system_id and password, and choose the bind mode.

  3. 3

    Bind and submit a test message

    Test accounts run the full flow without real messages or credits, so you can check your sender ID, encoding and receipts safely.

  4. 4

    Request receipts and go live

    Set registered_delivery, confirm that deliver_sm receipts arrive, then switch to your live account.

Everything in your dashboard

Your SMPP accounts, connection settings, client examples and troubleshooting guide live in the Developer section of your dashboard.

Open the developer docs

SMPP questions

Do you support SMPP?

Yes. You can bind your own SMPP v3.4 client as a transmitter, receiver or transceiver over TLS and receive standard delivery receipts.

Can I try it before buying credits?

Yes. Create an account, then use a test API key: it goes through the same validation and returns real references, but nothing is sent to a phone and no credits are used.

How do I know a message was delivered?

Every message has its own status: queued, sent to network, delivered, or failed. "Sent to network" means the operator accepted the message; "delivered" means the handset confirmed it. You can see statuses in the dashboard, export them, or receive them by webhook or SMPP. A phone that is switched off or out of coverage may receive a message late or never — no provider can guarantee delivery when the operator does not confirm it.

SMS API →

Ready to reach every phone in Tanzania?

Create your account, register your sender name and send your first message today. Buy the SMS credits you need — they never expire.

Prepaid credits only. Prices in TZS, VAT included.