Skip to main content
Frequently asked questions about SMS messaging, delivery, and troubleshooting.

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?

  1. Create an application with a message_url
  2. Assign a Plivo number to the application
  3. Plivo POSTs inbound messages to your URL

How is an incoming message delivered to my application?

StageDescription
ReceivedPlivo receives from carrier (charged)
DeliveredSuccessfully posted to your message_url
UndeliveredFailed to deliver to your URL
If 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

  1. Navigate to Messaging > Logs
  2. Search by timeframe or UUID
  3. View message details
Note: Only available if data logging is enabled.

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:
  1. Messages fail with error code 900
  2. API requests fail for 2 minutes with “Insufficient Credit”
  3. Queued messages continue to fail until recharged
Set up auto-recharge to prevent interruptions.

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?

StatusDescription
queuedMessage accepted, waiting to send
sentSuccessfully passed to downstream carrier (charged)
deliveredConfirmed delivery to recipient device
undeliveredCarrier could not deliver to recipient
failedInternal error before reaching carrier (not charged)

What are the Toll-Free Surcharges?

US carriers impose surcharges on toll-free messaging:
CarrierSurcharge per Segment
Verizon$0.0025
T-MobileVaries
AT&TVaries
Surcharges appear as separate invoice line items.

What is the Number Lookup API?

Get information about phone numbers:
  • Local and E.164 formatting
  • Carrier information
  • Caller ID name (CNAM)
See Lookup API documentation.

Why is my SMS not being delivered?

Common reasons for undelivered messages:
IssuePossible CauseSolution
Invalid numberDestination doesn’t existValidate numbers before sending
Carrier filteringContent flagged as spamReview message content, complete registration
Unregistered sender10DLC/toll-free not verifiedComplete 10DLC or toll-free verification
Rate exceededToo many messages per secondReduce send rate or upgrade throughput
Geo-permissionCountry not enabledEnable destination country in settings
Check message logs in Messaging > Logs for specific error codes.

What do common SMS error codes mean?

Error CodeMeaningAction
400Invalid destinationCheck number format
450Destination country barredEnable country in Geo Permissions
452Invalid source numberUse registered Plivo number
460Content spam detectedReview message content
470Unregistered sender (10DLC)Complete 10DLC registration
900Insufficient balanceAdd funds to account
For a complete list, see Error Codes Reference.

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
Prevention tips:
  1. Use a consistent sending pattern
  2. Include clear sender identification
  3. Add “Reply STOP to opt out” to messages
  4. Avoid flagged keywords (gambling, loans, etc.)

How do I check message delivery status?

Via Console:
  1. Navigate to Messaging > Logs
  2. Search by message UUID, phone number, or date range
  3. View delivery status and error details
Via API:
  • Use Get Message API with message UUID
  • Configure callback_url in 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
Note: Not all carriers support delivery receipts. US carriers have variable support.