SMS - Tutorial: Send an SMS with a verification code

This tutorial describes how to use Telesign SDKs to send an SMS message with a verification code.

Full sample code is available at the end of this tutorial.

Before you begin

Make sure you have the following before you start:

  • Authentication credentials: Your Customer ID and API Key. If you need help finding these items, go to the support article How do I find my Customer ID and API Key.
  • Testing device: A mobile phone on which you can receive SMS.

Install the SDK

  1. Log in to GitHub and choose the SDK in your preferred language.
  2. Download or clone the repository. If you download it, extract the repository from the .ZIP file.
  3. Use these commands to install the SDK:
npm install telesignsdk -save
compile files('path/to/jar/telesignenterprise-(insert latest version).jar')
<dependency>
    <groupId>com.telesign</groupId>
    <artifactId>telesign</artifactId>
    <version>[current_version]</version>
</dependency>
# From a terminal run:
pip install telesign
# From a terminal run:
gem install telesign
# From a terminal run:
composer require telesign/telesign
$ nuget pack .\Path\To\csharp_telesign_enterprise\TelesignEnterprise\TelesignEnterprise.csproj
$ Install-Package .\Path\To\TelesignEnterprise-(insert latest version).nupkg

Send SMS message with a verification code

  1. Include the Telesign SDK and any necessary language-specific dependencies.
var TeleSignSDK = require('telesignsdk');
package com.telesign.example.messaging;

import com.telesign.MessagingClient;
import com.telesign.RestClient;
import com.telesign.Util;
from __future__ import print_function # This statement is not required for Python 3.x
from telesign.messaging import MessagingClient
from telesign.util import random_with_n_digits
require 'telesign'
<?php
require __DIR__ . "/../../vendor/autoload.php";
use telesign\sdk\messaging\MessagingClient;
use function telesign\sdk\util\randomWithNDigits;
using System;
  1. Define each of these variables:
    • customer_id (customerId for Java/C#) - Your Telesign-assigned Customer ID.
    • api_key (apiKey for Java/C#) - Your Telesign-assigned API key.
    • phone_number (phoneNumber for Java/C#) - The phone number to which you want to send the SMS. If you are doing a free trial, the phone number must be verified (verifying the number is not required if you are a paying customer). Include the complete phone number (with country code) including no spaces or special characters.
    • message_type (messageType for Java/C#) - The type of message you are sending. Choose "OTP" (one-time password) for this tutorial.

For Node.js, you declare a timeout variable as well, so you can adjust when a request times out. You also set a verification code and insert it into a message in this step.

const customerId = "FFFFFFFF-EEEE-DDDD-1234-AB1234567890"; // Todo: find in teleportal.telesign.com
const apiKey = "EXAMPLE----TE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw=="; // Todo: find in teleportal.telesign.com
const rest_endpoint = "https://rest-ww.telesign.com"; 
const timeout = 10*1000; // 10 secs

const client = new TeleSignSDK( customerId,
    apiKey,
    rest_endpoint,
    timeout // optional
    // userAgent
);

const phoneNumber = "Your test phone number with no special characters or spaces goes here.";
const messageType = "ARN";
const verifyCode = "32658";
const message = "Your code is " + verifyCode;
public class SendMessageWithVerificationCode {

    public static void main(String[] args) {

        String customerId = "FFFFFFFF-EEEE-DDDD-1234-AB1234567890";
        String apiKey = "EXAMPLE----TE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw==";

        String phoneNumber = "phone_number";
        String messageType = "OTP";
        String restEndpoint = "https://rest-ww.telesign.com";
customer_id = "FFFFFFFF-EEEE-DDDD-1234-AB1234567890"
api_key = "EXAMPLE----TE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw=="

phone_number = "phone_number"
message_type = "OTP"
customer_id = 'FFFFFFFF-EEEE-DDDD-1234-AB1234567890'
api_key = 'EXAMPLE----TE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw=='

phone_number = 'phone_number'
message_type = 'OTP'
$customer_id = "FFFFFFFF-EEEE-DDDD-1234-AB1234567890";
$api_key = "EXAMPLE----TE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw==";
$phone_number = "phone_number";
$message_type = "OTP";
namespace Telesign.Example.Messaging
{
    class SendMessageWithVerificationCode
    {
        static void Main(string[] args)
        {
            string customerId = "FFFFFFFF-EEEE-DDDD-1234-AB1234567890";
            string apiKey = "EXAMPLETE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw==";

            string phoneNumber = "phone_number";
            string messageType = "OTP";
  1. Generate a random number to use as a verification code. For SMS verification codes, Telesign recommends limiting the code to five to seven digits maximum. Here you are generating a random five digit number.
//Step does not apply for node.js.
        String verifyCode = Util.randomWithNDigits(5);
verify_code = random_with_n_digits(5)
verify_code = Telesign::Util.random_with_n_digits(5)
$verify_code = randomWithNDigits(5);
            string verifyCode = "12345";
  1. Insert your verification code into the text of your message.
//Step does not apply for node.js.
```java
        String message = String.format("Your code is %s", verifyCode);
message = "Your code is {}".format(verify_code)
message = "Your code is #{verify_code}"
$message = "Your code is $verify_code";
            string message = string.Format("Your code is {0}", verifyCode);
  1. Instantiate a MessagingClient object containing your Customer ID and API key. Send an SMS to the phone number containing the message and message type you provided. Store the response in response for Python/Ruby/PHP or telesignResponse for Java/C#. For Node.js, create a console log and a function messageCallback that will handle what comes back from the messaging client. Then, call the messaging client and pass the messageCallback function into it.
console.log("## MessagingClient.message ##");

function messageCallback(error, responseBody) {
    if (error === null) {
        console.log(`Messaging response for messaging phone number: ${phoneNumber}` +
            ` => code: ${responseBody['status']['code']}` +
            `, description: ${responseBody['status']['description']}`);
    } else {
        console.error("Unable to send message. " + error);
    }
}

client.sms.message(messageCallback, phoneNumber, message, messageType);
        try {
            MessagingClient messagingClient = new MessagingClient(customerId, apiKey, restEndpoint);
            RestClient.TelesignResponse telesignResponse = messagingClient.message(phoneNumber, message, messageType, null);
        }
messaging = MessagingClient(customer_id, api_key, rest_endpoint="https://rest-ww.telesign.com")
response = messaging.message(phone_number, message, message_type)
messaging_client = Telesign::MessagingClient.new(customer_id, api_key, rest_endpoint:'https://rest-ww.telesign.com')
response = messaging_client.message(phone_number, message, message_type)
$messaging = new MessagingClient($customer_id, $api_key, $rest_endpoint = "https://rest-ww.telesign.com");
$response = $messaging->message($phone_number, $message, $message_type);
echo "Please enter the verification code you were sent: ";
            try
            {
                MessagingClient messagingClient = new MessagingClient(customerId, apiKey, restEndpoint: "https://rest-ww.telesign.com");
                RestClient.TelesignResponse telesignResponse = messagingClient.Message(phoneNumber, message, messageType);
            }
  1. Prompt for the verification code and enter the code you receive via SMS message. For Node.js, set up a prompt function and code to check whatever the end user types in.
function prompt(question, callback) {
    const stdin = process.stdin,
        stdout = process.stdout;

    stdin.resume();
    stdout.write(question);

    stdin.once('data', function (data) {
        callback(data.toString().trim());
    });
}

prompt('Enter the verification code received:\n', function (input) {
    if (input === verifyCode) {
        console.log('Your code is correct.');
    } else {
        console.log('Your code is incorrect. input: ' + input + ", code: " + verifyCode);
    }
    process.exit();
});
/**Java does not include this step, a print out of the response is provided in the last step.**/
user_entered_verify_code = raw_input("Please enter the verification code you were sent: ")
print 'Please enter the verification code you were sent: '
user_entered_verify_code = gets.strip
echo "Please enter the verification code you were sent: ";
$user_entered_verify_code = trim(fgets(STDIN));
/** C# does not include this step, a print out of the response is provided in the last step. **/
  1. Check the code entered against the verification code you generated.
//Step does not apply for node.js
          catch (Exception e) {
            e.printStackTrace();
        }
    }
}
if verify_code == user_entered_verify_code.strip():
    print("Your code is correct.")
else:
    print("Your code is incorrect.")
if verify_code == user_entered_verify_code
    puts 'Your code is correct.'
else
    puts 'Your code is incorrect.'
end
if ($verify_code == $user_entered_verify_code) {
  echo "Your code is correct.";
}
else {
  echo "Your code is incorrect.";
}
            Console.WriteLine("Press any key to quit.");
            Console.ReadKey();
        }
    }
}
  1. Run your code. When you receive the verification code, you are prompted to enter it. If you enter it correctly, you get output saying the code is correct. Otherwise you get a message saying the code is incorrect.

Sample code

var TeleSignSDK = require('telesignsdk');

const customerId = "FFFFFFFF-EEEE-DDDD-1234-AB1234567890"; // Todo: find in portal.telesign.com
const apiKey = "EXAMPLE----TE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw=="; // Todo: find in portal.telesign.com
const rest_endpoint = "https://rest-ww.telesign.com"; 
const timeout = 10*1000; // 10 secs

const client = new TeleSignSDK( customerId,
    apiKey,
    rest_endpoint,
    timeout // optional
    // userAgent
);

const phoneNumber = "phone_number";
const messageType = "ARN";
const verifyCode = "32658";
const message = "Your code is " + verifyCode;

console.log("## MessagingClient.message ##");

function messageCallback(error, responseBody) {
    if (error === null) {
        console.log(`Messaging response for messaging phone number: ${phoneNumber}` +
            ` => code: ${responseBody['status']['code']}` +
            `, description: ${responseBody['status']['description']}`);
    } else {
        console.error("Unable to send message. " + error);
    }
}

client.sms.message(messageCallback, phoneNumber, message, messageType);

function prompt(question, callback) {
    const stdin = process.stdin,
        stdout = process.stdout;

    stdin.resume();
    stdout.write(question);

    stdin.once('data', function (data) {
        callback(data.toString().trim());
    });
}

prompt('Enter the verification code received:\n', function (input) {
    if (input === verifyCode) {
        console.log('Your code is correct.');
    } else {
        console.log('Your code is incorrect. input: ' + input + ", code: " + verifyCode);
    }
    process.exit();
});
package com.telesign.example.messaging;

import com.telesign.MessagingClient;
import com.telesign.RestClient;
import com.telesign.Util;

public class SendMessageWithVerificationCode {

    public static void main(String[] args) {

        String customerId = "FFFFFFFF-EEEE-DDDD-1234-AB1234567890";
        String apiKey = "EXAMPLE----TE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw==";

        String phoneNumber = "phone_number";
        String messageType = "OTP";
        String restEndpoint = "https://rest-ww.telesign.com";

        String verifyCode = Util.randomWithNDigits(5);
        String message = String.format("Your code is %s", verifyCode);
      
        try {
            MessagingClient messagingClient = new MessagingClient(customerId, apiKey, restEndpoint);
            RestClient.TelesignResponse telesignResponse = messagingClient.message(phoneNumber, message, messageType, null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
from __future__ import print_function
from telesign.messaging import MessagingClient
from telesign.util import random_with_n_digits

customer_id = "FFFFFFFF-EEEE-DDDD-1234-AB1234567890"
api_key = "EXAMPLE----TE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw=="

phone_number = "phone_number"
message_type = "OTP"

verify_code = random_with_n_digits(5)
message = "Your code is {}".format(verify_code)

messaging = MessagingClient(customer_id, api_key, rest_endpoint="https://rest-ww.telesign.com")
response = messaging.message(phone_number, message, message_type)

user_entered_verify_code = raw_input("Please enter the verification code you were sent: ")

if verify_code == user_entered_verify_code.strip():
    print("Your code is correct.")
else:
    print("Your code is incorrect.")
require 'telesign'

customer_id = 'FFFFFFFF-EEEE-DDDD-1234-AB1234567890'
api_key = 'EXAMPLE----TE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw=='

phone_number = 'phone_number'
message_type = 'OTP'

verify_code = Telesign::Util.random_with_n_digits(5)
message = "Your code is #{verify_code}"

messaging_client = Telesign::MessagingClient.new(customer_id, api_key, rest_endpoint:'https://rest-ww.telesign.com')
response = messaging_client.message(phone_number, message, message_type)

print 'Please enter the verification code you were sent: '
user_entered_verify_code = gets.strip

if verify_code == user_entered_verify_code
    puts 'Your code is correct.'
else
    puts 'Your code is incorrect.'
end
<?php
require __DIR__ . "/../../vendor/autoload.php";
use telesign\sdk\messaging\MessagingClient;
use function telesign\sdk\util\randomWithNDigits;
$customer_id = "FFFFFFFF-EEEE-DDDD-1234-AB1234567890";
$api_key = "EXAMPLE----TE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw==";
$phone_number = "phone_number";
$message_type = "OTP";

$verify_code = randomWithNDigits(5);
$message = "Your code is $verify_code";

$messaging = new MessagingClient($customer_id, $api_key, $rest_endpoint = "https://rest-ww.telesign.com");
$response = $messaging->message($phone_number, $message, $message_type);
echo "Please enter the verification code you were sent: ";
$user_entered_verify_code = trim(fgets(STDIN));
if ($verify_code == $user_entered_verify_code) {
  echo "Your code is correct.";
}
else {
  echo "Your code is incorrect.";
}
using System;

namespace Telesign.Example.Messaging
{
    class SendMessageWithVerificationCode
    {
        static void Main(string[] args)
        {
            string customerId = "FFFFFFFF-EEEE-DDDD-1234-AB1234567890";
            string apiKey = "EXAMPLETE8sTgg45yusumoN6BYsBVkh+yRJ5czgsnCehZaOYldPJdmFh6NeX8kunZ2zU1YWaUw/0wV6xfw==";
            string phoneNumber = "phone_number";
            string messageType = "OTP";

            string verifyCode = "12345";
            string message = string.Format("Your code is {0}", verifyCode);
          
            try
            {
                MessagingClient messagingClient = new MessagingClient(customerId, apiKey, restEndpoint: "https://rest-ww.telesign.com");
                RestClient.TelesignResponse telesignResponse = messagingClient.Message(phoneNumber, message, messageType);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.WriteLine("Press any key to quit.");
            Console.ReadKey();
        }
    }
}
curl -X POST https://rest-ww.telesign.com/v1/messaging \
-d phone_number=XXXXXXXX \
-d message="Your code is {insert code}." \
-d message_type="OTP" \
-u "CUSTOMER_ID":"API_KEY"

Did this page help you?