Character Limits and Encoding
For detailed information on SMS character limits, encoding (GSM-7 vs Unicode), concatenation, and segmentation billing, see Encoding and Concatenation.How do I send SMS via API?
For code examples and detailed API usage, see the SMS Quickstart Guide.How can I receive SMS messages on my Plivo numbers?
- Create an application with a
message_url - Assign a Plivo number to the application
- Plivo POSTs inbound messages to your URL
How is an incoming message delivered to my application?
| Stage | Description |
|---|---|
| Received | Plivo receives from carrier (charged) |
| Delivered | Successfully posted to your message_url |
| Undelivered | Failed to deliver to your URL |
message_url is not configured, messages remain in “received” status.
Can the source number for an outbound text message be a non-Plivo number?
US and Canada
- Must use Plivo number as source
- Non-Plivo numbers not permitted (telecom regulations)
International
- Dynamic sender IDs may be used
- Delivery not guaranteed for non-Plivo numbers
- Check country coverage for sender ID support
What are Geo-Permissions?
Geo-Permissions control which countries can receive your SMS, protecting against fraud. For detailed information on setup, subaccount overrides, and management, see Geo Permissions. Error 450 (“destination country barred”) means the destination country is not enabled in your Geo Permissions.What is SMS Pumping and how does Plivo protect against it?
SMS pumping is fraud where attackers flood OTP fields with fake requests to premium numbers.Protection Features
Enabled by default for all accounts:- Automated traffic analysis
- Suspicious pattern detection
- Alerts for unusual activity
How to Prevent SMS Pumping Attacks?
- Enable Geo Permissions
- Set rate limits on OTP endpoints
- Implement CAPTCHA on forms
- Monitor traffic patterns
- Use Plivo’s fraud detection tools
How to access the message content?
Message content is stored for 7 days.View in Console
- Navigate to Messaging > Logs
- Search by timeframe or UUID
- View message details
Why should I authorize Plivo to view my SMS content?
Allow Plivo support to view content for debugging:- Helps identify spam filter triggers
- Assists with delivery issues
- Enables content policy review
What happens to my outbound messages if I don’t have sufficient balance?
When balance is insufficient:- Messages fail with error code 900
- API requests fail for 2 minutes with “Insufficient Credit”
- Queued messages continue to fail until recharged
Why were we charged for an undelivered SMS message?
Plivo charges when a message is successfully handed off to downstream carriers. Once accepted by the carrier, Plivo has no control over final delivery. Reasons for undelivered status:- Invalid or unreachable destination number
- Carrier filtering
- Device issues (phone off, full inbox)
What are the different SMS statuses in Plivo?
| Status | Description |
|---|---|
| queued | Message accepted, waiting to send |
| sent | Successfully passed to downstream carrier (charged) |
| delivered | Confirmed delivery to recipient device |
| undelivered | Carrier could not deliver to recipient |
| failed | Internal error before reaching carrier (not charged) |
What are the Toll-Free Surcharges?
US carriers impose surcharges on toll-free messaging:| Carrier | Surcharge per Segment |
|---|---|
| Verizon | $0.0025 |
| T-Mobile | Varies |
| AT&T | Varies |
What is the Number Lookup API?
Get information about phone numbers:- Local and E.164 formatting
- Carrier information
- Caller ID name (CNAM)
Why is my SMS not being delivered?
Common reasons for undelivered messages:| Issue | Possible Cause | Solution |
|---|---|---|
| Invalid number | Destination doesn’t exist | Validate numbers before sending |
| Carrier filtering | Content flagged as spam | Review message content, complete registration |
| Unregistered sender | 10DLC/toll-free not verified | Complete 10DLC or toll-free verification |
| Rate exceeded | Too many messages per second | Reduce send rate or upgrade throughput |
| Geo-permission | Country not enabled | Enable destination country in settings |
What do common SMS error codes mean?
| Error Code | Meaning | Action |
|---|---|---|
| 400 | Invalid destination | Check number format |
| 450 | Destination country barred | Enable country in Geo Permissions |
| 452 | Invalid source number | Use registered Plivo number |
| 460 | Content spam detected | Review message content |
| 470 | Unregistered sender (10DLC) | Complete 10DLC registration |
| 900 | Insufficient balance | Add funds to account |
Why are my messages being filtered by carriers?
Carrier filtering occurs due to:- Spam-like content: Avoid all caps, excessive punctuation, URL shorteners
- Missing registration: Complete 10DLC or toll-free verification
- High complaint rate: Ensure proper opt-in and include opt-out instructions
- Rapid sending: Avoid sudden traffic spikes
- Use a consistent sending pattern
- Include clear sender identification
- Add “Reply STOP to opt out” to messages
- Avoid flagged keywords (gambling, loans, etc.)
How do I check message delivery status?
Via Console:- Navigate to Messaging > Logs
- Search by message UUID, phone number, or date range
- View delivery status and error details
- Use Get Message API with message UUID
- Configure
callback_urlin send request for real-time status updates
Why do I see “sent” but not “delivered” status?
“Sent” means Plivo successfully handed the message to the carrier. “Delivered” requires confirmation from the recipient’s device. Reasons for no delivery confirmation:- Carrier doesn’t support delivery receipts
- Phone was off or out of range
- Message waiting in carrier queue
- Device inbox full