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.
...