from is what the recipient sees as the sender.
The default is the trap
Omittingfrom uses your login name. That is convenient in testing and almost never right in
production, because your login name is usually not an approved sender ID — so the same code that
worked in staging returns 403 the moment approval is enforced.
Two kinds of sender ID
Alphanumeric is typically limited to 11 characters, and support varies by country — some destinations
refuse it entirely, some overwrite it, and some require pre-registration. Your provider knows which
applies to your traffic.
When approval is enforced
On an account with sender-ID whitelisting on, an unapprovedfrom is refused:
403 over HTTP, 0x415 over SMPP. Nothing was sent and nothing was charged.
This is not fixable in code. It needs an approval from whoever runs your gateway, usually
requested through the customer portal.
Requesting one
1
Ask for the exact string
SUNOTP and SunOTP are different sender IDs. Ask for the casing you will actually send.2
Say which destinations it is for
Regulated destinations — India most visibly — need registration with the carrier as well as with
your gateway, and that takes longer.
3
Wait for APPROVED
A sender ID that is pending is not usable. It behaves exactly as if it did not exist.
Sender ID and content approval are separate
Two different checks, two different refusals:
An account may enforce either, both, or neither. Passing one says nothing about the other — see
Refusals for reading the second.
Related
Sender IDs and templates
The operator’s side: approving, rejecting and what a stamp does.
Errors
What to do with a 403 that will not go away.