With Worldwide SMS feature, you can use SNS to deliver SMS (text) messages to 200+ countries, and you do not require recipients to explicitly opt in like in other cases.
You must obtain prior permission from recipients to send SMS messages to their phone numbers, where required by local law and regulations.
You can also mark your SMS messages as Transactional to optimize for reliable delivery (e.g. one-time passwords (OTP) or PINs), or you can mark it as Promotional to optimize for cost savings.
You should never mark marketing messages as Transactional, because this violates the local regulatory policies in certain countries, and your account may be marked for abuse and suspended.
By enabling the Delivery Status, you can get info on the following for each message: MessageID, Time Sent, Destination Phone Number, Disposition, Disposition Reason (if applicable), Price, and Dwell Time.
SNS - Worldwide SMS – Limits
You can set account and message-level spend limits. The default spend limit per account (if not specified) is 1.00 USD per month. If you want to raise the limit, submit an SNS Limit Increase case.
Once the spend limit is exceeded, SNS stops delivering messages until you either increase the spend limit or a new calendar month begins. SNS will not send your SMS messages if the account-level spend limit is exceeded, regardless of whether the message-level spend limit is exceeded.
SNS - Worldwide SMS - Pricing
Pricing in the SMS industry is not static and hence pricing for SNS-SMS keeps changing.
You may be charged for failed deliveries if the destination carrier reports back that you attempted to send messages to an invalid phone number.
Short codes and Long Codes
Amazon SNS uses a pool of long codes or short codes to send SMS notifications. SNS ensures that the messages sent from an AWS account to a specific phone number always come from the same long code or short code. This is called "Sticky Sender ID".
You can reserve a dedicated short code (contacting AWS Support Center) that is assigned to your account and available exclusively to you. By reserving a short code, you make it easier for your audience to recognize you. AWS does not currently offer long codes for purchase.
SNS - Worldwide SMS – Opting Out
Recipients can use their devices to opt out by replying to the message with any of the following: ARRET (French), CANCEL, END, OPT-OUT, OPTOUT, QUIT, REMOVE, STOP, TD, UNSUBSCRIBE.
The recipient must reply to the same long code or short code that Amazon SNS used to deliver the message. After opting out, the recipient will no longer receive SMS messages delivered from your AWS account unless you opt in the phone number.
The SNS console displays the list of opted out numbers for your account. Also, SNS API provides the ListPhoneNumbersOptedOut request for listing opted out phone numbers.
Opt-outs do not unsubscribe a number from an Amazon SNS topic, but rather disable the subscription. This means if you opt-in a phone number you do not need to re-subscribe the phone number to the topic.
SNS - Worldwide SMS – Important Notes
Amazon SNS does not currently support two-way SMS capabilities, except for opt out.
Can directly publish messages to a phone using the SNS console or the Publish request in the SNS API.
AWS strongly encourages E.164 number formatting for all phone numbers both in the ‘to’ and ‘from’ (when applicable) fields.
Amazon SNS does not currently support time-based or scheduled delivery.
Currently Amazon SNS does not support MMS messages.
Amazon SNS does support delivery to VoIP services that can receive SMS messages (e.g. Google Voice or Hangouts).