Verify API

The Verify API enables you to confirm that you can contact a user at a specific number, so that you can:

How it works

Verification is a two-stage process that requires two API calls:

Verification request

Starting the verification process
Starting the verification process

  1. A user registers for your service via your app or web site and provides a phone number.

  2. To confirm that the user has access to the number that they have registered with, your application makes an API call to the Verification request endpoint.

  3. The Verify API generates a PIN code, with an associated request_id.

    It is possible to supply your own PIN code in some circumstances, please contact your account manager.

  4. The Verify API then attempts to deliver this PIN to the user. The format (SMS or Text-to-speech (TTS)) and timing of these attempts are defined by your chosen workflow. If the user does not revisit your app or website to enter the PIN they have received, the verification request will ultimately time out. Otherwise, you need to verify the number that they entered by performing a Verification check.

Verification check

Verifying the submitted PIN
Verifying the submitted PIN

5. The user receives the PIN and enters it into your application.

6. Your application makes an API call to the Verification check endpoint, passing in the request_id and the PIN that the user entered.

7. The Verify API checks that the PIN entered matches the one that was sent and returns the result to your application.

Getting Started

The following sample shows you how to start the verification process by sending a verification code to a user. To learn how to validate the code the user supplies and perform other operations, see the Code Snippets.

Write the code

Add the following to send-verification-code.sh:

curl -X GET "https://api.nexmo.com/verify/json?&api_key=$VONAGE_API_KEY&api_secret=$VONAGE_API_SECRET&number=$RECIPIENT_NUMBER&brand=AcmeInc"

View full source

Run your code

Save this file to your machine and run it:

sh send-verification-code.sh

Prerequisites

npm install @vonage/server-sdk

Create a file named request.js and add the following code:

const Vonage = require('@vonage/server-sdk');
const vonage = new Vonage({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET
});

View full source

Write the code

Add the following to request.js:

vonage.verify.request({
  number: RECIPIENT_NUMBER,
  brand: BRAND_NAME
}, (err, result) => {
  if (err) {
    console.error(err);
  } else {
    const verifyRequestId = result.request_id;
    console.log('request_id', verifyRequestId);
  }
});

View full source

Run your code

Save this file to your machine and run it:

node request.js

Prerequisites

Add the following to `build.gradle`:

compile 'com.vonage:client:6.2.0'

Create a class named StartVerification and add the following code to the main method:

VonageClient client = VonageClient.builder().apiKey(VONAGE_API_KEY).apiSecret(VONAGE_API_SECRET).build();

View full source

Write the code

Add the following to the main method of the StartVerification class:

VerifyResponse response = client.getVerifyClient().verify(RECIPIENT_NUMBER, BRAND_NAME);

if (response.getStatus() == VerifyStatus.OK) {
    System.out.printf("RequestID: %s", response.getRequestId());
} else {
    System.out.printf("ERROR! %s: %s", response.getStatus(), response.getErrorText());
}

View full source

Run your code

We can use the application plugin for Gradle to simplify the running of our application. Update your build.gradle with the following:

  apply plugin: 'application'
  mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Run the following gradle command to execute your application, replacing com.vonage.quickstart.verify with the package containing StartVerification:

gradle run -Pmain=com.vonage.quickstart.verify.StartVerification

Prerequisites

Install-Package Vonage

Create a file named SendVerificationRequest.cs and add the following code:

using Vonage.Verify;
using Vonage;
using Vonage.Request;

View full source

Add the following to SendVerificationRequest.cs:

var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);

View full source

Write the code

Add the following to SendVerificationRequest.cs:

var request = new VerifyRequest() { Brand = BRAND_NAME, Number = RECIPIENT_NUMBER };
var response = client.VerifyClient.VerifyRequest(request);

View full source

Prerequisites

composer require vonage/client

Create a file named request.php and add the following code:

$basic  = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client(new \Vonage\Client\Credentials\Container($basic));

View full source

Write the code

Add the following to request.php:

$request = new \Vonage\Verify\Request(NUMBER, BRAND_NAME);
$response = $client->verify()->start($request);

echo "Started verification, `request_id` is " . $response->getRequestId();

View full source

Run your code

Save this file to your machine and run it:

php request.php

Prerequisites

pip install vonage

Create a file named request.py and add the following code:

client = vonage.Client(key=VONAGE_API_KEY, secret=VONAGE_API_SECRET)
verify = vonage.Verify(client)

View full source

Write the code

Add the following to request.py:

response = verify.start_verification(number=RECIPIENT_NUMBER, brand="AcmeInc")

if response["status"] == "0":
    print("Started verification request_id is %s" % (response["request_id"]))
else:
    print("Error: %s" % response["error_text"])

View full source

Run your code

Save this file to your machine and run it:

python request.py

Prerequisites

gem install vonage

Create a file named request.rb and add the following code:

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

View full source

Write the code

Add the following to request.rb:

response = client.verify.request(
  number: TO_NUMBER,
  brand: 'AcmeInc'
)

if response
  # display the Verify `request_id`
  puts response.request_id
end

View full source

Run your code

Save this file to your machine and run it:

ruby request.rb

Guides

Code Snippets

Use Cases

Further Reading