SMPP accounts
Customer SMPP accounts
SMPP accounts are defined in Customers > SMPP accounts. They are what a customer uses to bind to your SSG instance and send or receive SMS (SMPP, REST, or txtConsole). Each account uses a service, which supplies the pricing plan and routing profile.
A walkthrough is in the Customers tutorial.

SMPP accounts
The grid can be filtered by customer. It supports search, Excel export, and a 15-minute activity sparkline. The Dashboard also lists customer SMPP accounts with bind-status pills (click a pill to open the account).
The dialog uses on/off switches for bind and submit. An Unsaved changes badge appears if you edit; you are asked to confirm before you cancel or close.
Add an SMPP account
Quick Create SMPP
Use this when the customer already exists.
- Go to Customers > SMPP accounts.
- Click Quick Create SMPP.
- Select the organisation.
- Select the Service.
- Optionally enter CUG Mobiles (comma-separated MSISDNs).
- Choose whether to email the configuration to the customer contact.
- Click Setup.
To create the customer and first account together, use Quick Create Customer+SMPP on Customers.
Create SMPP account
- Click Create SMPP account.
- On Main, select the customer, enter Name and Short name, and select the Service.
- Turn on Binding enabled and Submit enabled.
- On Parameters, set at least Submit limit (TPS) and Default source address.
- On Security, optionally restrict Allowed IP(s).
- Click Save. System ID and password are assigned on save.
Edit an SMPP account
Double-click the row, or click Edit. Click Save after you change fields.
Row actions
| Action | What it does |
|---|---|
| SMPP Client | Opens a test client pre-filled with the account credentials. Connect, submit a message, then check Status > Message lookup |
| Regenerate Password | Issues a new password immediately and shows it once. The previous password stops working |
| Email Config | Emails connection details to the customer contact |
| Archive | Rejects new binds and stops submission. Use only when the account is no longer required |
Account information to give to customers
Provide at least:
- System ID and password
- Hosts and ports from Customer endpoints
- port 2775 for SMPP
- port 8775 for SMPP over TLS
- The Submit limit (TPS) you configured
Advice for reliable customer connectionsCustomers should stay connected to two SSG sites, or fail over to a second site if the preferred site is unavailable. When failing over, they should keep trying the preferred site. Give two SMPP accounts for one customer site (or two sites). For always-on requirements, issue four accounts so the customer can connect from two of their sites to two SSG sites.
Configuration
| Tab | Purpose |
|---|---|
| Main | Customer, credentials, service, bind/submit |
| Parameters | Rate, versions, source address, validity |
| TLVs | TLV ignore / remove / require |
| Security | Allowed IPs, TLS, bind-from time |
| Rules / Blocking | Account rules and content lists |
| Webhooks | Message sink, MO and DLR HTTP callbacks |
| Reporting | MO and MT volume for the account |
| MO SMS | Inbound numbers and patterns routed here |
| CUG | Closed user group MSISDNs |
| Source addresses | Permitted source addresses |
| Routing | Coverage for the account's service |
| txtConsole | Login, broadcast and campaign activity |
| Other | Options JSON and master Enabled |
Main
| Field | Description |
|---|---|
| Customer | Customer this account belongs to. Fixed after save |
| Name | Display name |
| Short name | Short label used in widgets and diagrams |
| System ID | Assigned on create. Read-only; contact Support to customise |
| Password | Up to 8 characters. Use the eye icon to show it, or Regenerate Password on the row |
| System Type | SMPP system_type |
| Address Range | Read-only |
| Service | Service that supplies pricing and routing |
| Binding enabled | Off: bind attempts are rejected |
| Submit enabled | Off: binds may stay up but submits are rejected (Dashboard left-hand circle) |
| Use CUG | Customer can send only to MSISDNs on the CUG tab |
| Monitor | Show this account on the Dashboard |
Bind status is a grid of TRX / TX / RX by site (US, BR, UK, DE, SG, AU). Green means a bind of that type is up at that site.
Parameters
| Field | Description |
|---|---|
| Default character set | Default DCS / charset |
| SMPP version default / minimum | Negotiated SMPP version |
| Maximum binds | Maximum concurrent binds |
| Max. Scheduled Delivery (mins) | How far ahead a scheduled submit may be (0–10080) |
| Default source address | Used by txtConsole, and when the customer submits an empty or unacceptable source address |
| Use srcaddr list | Submissions must use a source address on the Source addresses tab |
| Reject srcaddr | Reject the submit if the source address is not on that list |
| Submit limit (TPS) | Allowed submit rate. For txtConsole use at least 500 (txtConsole submits in bursts, not a constant 500 TPS) |
| EnquireLink Interval (s) | Idle time before the platform sends enquire_link. Set 0 to stop the SSG sending enquire_link to the customer |
| PDU response timeout (s) | 10–300 |
| DeliverSM window | Window for deliver_sm (receipts and MO). Set this greater than or equal to Submit limit (TPS) |
| Default Validity Period / Max. Validity Period (mins) | Default and maximum validity (0–10080 minutes) |
TLVs
| Field | Description |
|---|---|
| Ignore TLVs | TLVs are not interpreted |
| Remove TLVs | TLVs are stripped before the message is sent to the supplier. Required TLVs are kept |
| Required TLVs | Decimal tag values in { } that must be present on submit_sm, otherwise the message is rejected. Example: {5120,5121} |
Security
Allowed IP(s) — if set, binds are accepted only from these addresses. Enter them in { } brackets, for example {194.247.82.100,194.247.82.105}.
If Allowed IPs are set, the Webhooks tab warns that MO / DLR HTTP callbacks may not be reached.
Enforce TLS — the customer must bind with SMPP over TLS (port 8775).
Binding allowed from — date and time before which binds are rejected.
Rules / Blocking
Rules — rules applied to each submit_sm, in the order shown. See Rules.
Blocking — content lists. A match rejects the message. Lists are defined in Configuration > Firewall > Message content. See Firewall.
Webhooks
Three nested tabs. Each JSON field shows valid / invalid, and has Format and Remove.
If Allowed IP(s) are set, a warning is shown on the MO and DLR tabs.
Message sink (JSON)
Copies each MT submit_sm to a URL.
{"url":"https://connect.signl4.com/webhook/xyz"}MO webhook (JSON)
Sends each inbound deliver_sm as JSON.
{
"url":"https://abc.customer.com/sms/api/v1/published/receivesms",
"source_address":"from",
"destination_addr":"to",
"short_message":"body",
"headers":[
{
"authorization": "Basic ABCDEF12346567890="
}
]
}| Field | Description |
|---|---|
url | Destination URL |
source_address | JSON field for the source MSISDN |
destination_addr | JSON field for the destination |
short_message | JSON field for the message body |
headers | Optional extra request headers |
Example request:
{
"from":"447700777888",
"to":"447700111222",
"body":"Hello world"
}To forward an MO to email, use the Management API notify URL. Replace the placeholders and URL-encode them. API keys are created in Configuration > Company > User access (manager role).
{
"url":"https://ssg-portal.melroselabs.com/mgt/notify/?key=[APIKEY]&emailTo=[EMAILTO]&emailFrom=[EMAILFROM]&subject=[SUBJECT]",
"source_address":"from",
"destination_addr":"to",
"short_message":"body"
}emailFrom must be an authorised sender address for your instance.
DLR webhook (JSON)
Sends each delivery receipt as JSON.
{
"url":"https://bigcorp123.com/smstest/api/v1/deliveryreceiptsms",
"source_address":"to",
"destination_addr":"from",
"msgid":"sid",
"status_txt":"status",
"status_num":"statusn",
"error_num":"errorn",
"completion_ts":"ts",
"headers":[
{
"authorization": "Basic cFhyb31lc2lzOjdIRyglOjk4N2hD",
"apikey": "aebdadef-12321-493213210-23-2321afdab"
}
]
}| Field | Description |
|---|---|
url | Destination URL |
source_address | Destination MSISDN the DLR relates to |
destination_addr | Original source address |
msgid | Message ID returned on submit |
status_txt | delivered, pending or undelivered |
status_num | SMPP DLR status number |
error_num | SMPP network error |
completion_ts | Time the message reached a completion state |
headers | Optional extra request headers |
Example request:
{
"to":"447700111222",
"from":"447700222333",
"sid":"00000010-00000000279178de",
"status":"delivered",
"statusn":2,
"errorn":0,
"ts":"2024-08-12T13:07:49.000000+00:00"
}Reporting
MO and MT volume for this account. Instance-wide reports are in Reports.
MO SMS
Inbound numbers and content patterns routed to this account. Manage them in Routing > Inbound SMS.
CUG
Closed user group MSISDNs. When Use CUG is on, the customer can send only to these numbers (useful for trials).
Source addresses
Permitted source addresses (TON, NPI, address). Used with Use srcaddr list and Reject srcaddr on Parameters.
Routing
Coverage and costs for the service on this account. The same view is in Status > Routing. Check a single destination in Routing > Analyser.
txtConsole
Most recent 100 records of txtConsole activity for this account: Login events, Broadcast usage, Campaign usage.
Other
Options (JSON) — advanced per-account flags. The field validates JSON and has Format. Supported keys:
| Key | Type | Description |
|---|---|---|
pass_thru_concats | boolean | Pass concatenated message parts through |
useMSISDNLookup | boolean | Use MSISDN lookup |
useDLRAbsoluteTime | boolean | Long timestamps in the DLR short-message submit and done fields (for example 250228142456000+ instead of 2502281424) |
use_dnd_list | boolean | Apply the instance DND list to this account |
stripScheduleDeliveryTime | boolean | Strip scheduled delivery time |
priority_queue | number | Higher values are submitted before lower ones |
Example: {"pass_thru_concats":true,"priority_queue":5,"use_dnd_list":true}
Record created is read-only.
Enabled — do not use this to turn an account off. Use Binding enabled and Submit enabled on Main. Existing binds are not dropped when Enabled is cleared.
Archive an SMPP account
Use Archive only when the account is no longer required. New binds are rejected and submission stops. The account is removed from the rest of the portal.
Archiving the customer archives all of that customer's SMPP accounts.
Updated 5 days ago
