Sending Two Factor Authentication (2FA) codes by SMS API
Back to Articles
News SMS API Security Two Factor Authentication News

Sending Two Factor Authentication (2FA) codes by SMS API

July 31, 2018 1 min
Aivis Olsteins

Aivis Olsteins

We have discussed the topic of two factor authentication previously several times, here regarding voice call ( https://datatechlabs.com/posts/56/two-factor-authentication-api-with-phone-call ), here in general ( https://datatechlabs.com/posts/48/two-factor-authentication-with-sms-and-voice-calling ) and here regarding one time passwords: https://datatechlabs.com/posts/32/usecase-one-time-password-generator-for-application-security

Now let's see how to do with SMS, simply by using our API. In general, sending SMS is as simple as constructing this simple request:

 

POST /sms/send

{
"to": "recipient",
"from": "sender",
"content": "hello, World!"
}

In this simple example above, the API will just send a hello, world! message to recipient. There are, however, ways to have more control about the sending process, like, for example: getting to know if the message was delivered or not, or sending non-latin encoded texts:

This request will ask for a delivery receipt (DLR) after the message was delivered:


POST /sms/send

{
"to": "recipient",
"from": "sender",
"content": "hello, World!",
"dlr": true
"dlr-level": 3,
"dlr-url": "http://server.host.com/path",
"dlr-method": "POST"
}

Now, upon successful delivery, the API will do a HTTP POST to the address of the server specified in dlr-url and report on the on the success of delivery. The values of dlr-level attribute are integers, where 1 - means SMS-C delivery report, 2 - means endusers terminal delivery report and 3 means both of them.

In the case we need to send non-Latin characters, we can set desired character set with coding attribute:

POST /sms/send

{
"to": "recipient",
"from": "sender",
"content": "hello, World!",
"dlr": true
"dlr-level": 3,
"dlr-url": "http://server.host.com/path",
"dlr-method": "POST",
"coding": "UTF-8"
}

Note, however, that most SMS carriers actually charge per bits of message sent (see https://datatechlabs.com/posts/13/anatomy-of-a-short-message ), i.e. only the messages with are 7-bit encoded (ASCII) are allowed to be 160 characters long before they are split into multiple segments.

Share this article

Aivis Olsteins

Aivis Olsteins

An experienced telecommunications professional with expertise in network architecture, cloud communications, and emerging technologies. Passionate about helping businesses leverage modern telecom solutions to drive growth and innovation.

Related Articles

The Commitment Economy: Why Voice AI Bookings Must Be Integrated, Not Just Conversational

The Commitment Economy: Why Voice AI Bookings Must Be Integrated, Not Just Conversational

AI can promise a booking, but what about the broken promise? Learn why systemic integration, Accuracy Rate, and System Sync define the real test of Voice AI reliability

Read Article
Beyond the Dial Tone: 3 Metrics That Define Outbound AI Success

Beyond the Dial Tone: 3 Metrics That Define Outbound AI Success

Outbound AI requires a new scorecard. Learn the 3 metrics (Connection Rate, Engagement Quality, and Conversion Impact) that measure pipeline movement, not just call volume

Read Article
The New AI Scorecard: How to Measure Campaign Effectiveness Beyond "Call Volume"

The New AI Scorecard: How to Measure Campaign Effectiveness Beyond "Call Volume"

Stop guessing with 'Call Volume'. Discover the 3-Layer Framework for measuring Voice AI success: Goal Completion Rate (GCR), Sentiment Drift, and Knowledge Retrieval. Turn phone calls into structured marketing data

Read Article
What Happens to Metrics When "Hold Time" Hits Zero?

What Happens to Metrics When "Hold Time" Hits Zero?

Does Voice AI just save money? No. Discover the "CSAT Paradox" and how zero hold time improves revenue, lead capture, and team morale simultaneously.

Read Article

SUBSCRIBE TO OUR NEWSLETTER

Stay up to date with the latest news and updates from our telecom experts