General Bytes offers the Nexmo (now Vonage) API to send SMS codes to your customers. The charges per SMS varies across regions. They typically run less that than a single US cent per message.
NOTE: The major phone carriers around the globe impose limits upon the frequency of SMS transmission. They do this to prevent SMS spam & to provide a consistent service. The carriers use equipment that has limitations; there’s no getting around this. When these limits are exceeded, the carrier will “filter” out the excess SMS traffic, and those messages will simply be discarded: lost. You’ll commonly see these filtering events occur in batches.
...
.
You must signup for (and deploy in your CAS settings) your own Nexmo account.
...
Create your Nexmo account.
...
Scroll down to “SMS Provider”.
Select Nexmo.
Enter your credentials as a single-line string with no spaces:
api_key:api_secret:from_phone
...
Example parameter string: 2f8a4afc:s3cr3t:+15555212855
...
Save the new settings!
...
Return and test.
...