SMPP

Connect to Aurora SendCloud over SMPP v3.4, configure your bind, and receive delivery receipts.

Aurora SendCloud SMPP Integration Guide

Overview

Connect to Aurora SendCloud over SMPP, send SMS messages, and receive delivery receipts.

Aurora SendCloud supports SMPP v3.4. Use a transceiver bind if you want one connection to both send messages and receive receipts.

Prerequisites

  • Enable the SMS service in the Aurora SendCloud console.
  • Aurora SendCloud creates SMS_USER and SMS_KEY in the backend for your SMPP account.
  • SMS_USER must be 8-15 characters and can only contain English letters, numbers, and underscore _.
  • SMPP accounts are separate from API accounts. SMPP credentials cannot be used for the HTTP API, and API credentials cannot be used for SMPP.
  • Keep SMS_KEY secure and update all clients if you regenerate it, because the old key becomes invalid.
  • Ensure your S-Wallet balance is sufficient, since SMS is billed by country/region and SMS pieces.
  • IP allowlisting is required for SMPP access. If your source IP is not allowlisted, you cannot connect.
  • IP allowlisting is not self-service. Contact Aurora SendCloud support to add or update your allowlisted IPs.
  • Use SMPP host smpp.aurorasendcloud.com and port 2775.
  • Optionally validate credentials with the Send SMS API before going live.

Connection Parameters

  • host: smpp.aurorasendcloud.com.
  • port: 2775.
  • system_id: your SMS_USER.
  • password: your SMS_KEY.
  • protocol: SMPP v3.4.
  • bind_mode: transceiver is commonly used for sending and receiving on one connection.
  • system_type: leave empty unless instructed otherwise.

Connect and Bind

  1. Open a TCP connection to smpp.aurorasendcloud.com:2775.
  2. Send bind_transceiver and wait for bind_transceiver_resp with status 0.
  3. Send enquire_link every 30 seconds to keep the session alive.
  4. If you need send-only or receive-only behavior, use bind_transmitter or bind_receiver.

Addressing and Sender IDs

  • Use MSISDN in E.164 format (country code + national destination code + subscriber number) and always include the country code.
  • For international MSISDN, a common TON/NPI pairing is 1/1.
  • Sender IDs are country-dependent. Use the Aurora SendCloud Sender ID rules from the SMS documentation.

Encoding and Long Messages

  • GSM-7: 1 piece up to 160 characters, concatenated parts up to 153 characters.
  • UCS-2 (Unicode): 1 piece up to 70 characters, concatenated parts up to 67 characters.
  • For Unicode, set the DCS value to 8.
  • If you send messages longer than one piece, split the payload and include concatenation headers (UDH).

Delivery Receipts

  • Request receipts by setting registered_delivery in submit_sm.
  • Delivery receipts are returned in deliver_sm.
  • Delivery receipts use esm_class bit 2 to indicate an MC delivery receipt.
  • The common receipt text format is:
id:<messageId> sub:001 dlvrd:001 submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:<STAT> err:<ERR> text:
  • stat is a 7-character field and may be abbreviated by the SMSC.
  • Common stat values include:
    • DELIVRD: delivered to the handset.
    • UNDELIV: delivery failed or the message was undeliverable.
    • EXPIRED: delivery timed out or the validity period expired.
  • Other values may appear depending on SMSC implementation. Treat any non-DELIVRD status as not confirmed delivered.

Throughput and Limits

  • Typical SMPP provider defaults are 10 msg/s per bind and a window size of 10, but actual limits are provisioned per account.
  • Many providers also limit parallel connections per system ID. Contact Aurora SendCloud support if you need higher limits.

Optional: Validate with the HTTP API

  • The Send SMS API is documented as a POST endpoint in the API reference and can help you validate credentials before you go live with SMPP.

Common SMPP Errors

  • ESME_RINVCMDLEN invalid command length.
  • ESME_RINVCMDID invalid command ID.
  • ESME_RINVBNDSTS incorrect bind state.
  • ESME_RINVDSTADR invalid destination address.
  • ESME_RBINDFAIL bind failed.
  • ESME_RINVPASWD invalid password.
  • ESME_RTHROTTLED exceeded message limits.

Troubleshooting Checklist

  • Verify SMS_USER and SMS_KEY and ensure the key was not regenerated.
  • Confirm that you are connecting to smpp.aurorasendcloud.com on port 2775.
  • Confirm that your client source IP is on the SMPP allowlist.
  • Confirm S-Wallet balance and country/region pricing.
  • Check destination number format and encoding.
  • If you do not receive receipts, confirm registered_delivery is set and the RX/TRX bind is active.