Send verification request using WhatsApp
You can start the verification process by sending a verify request to the Verify API. The following example will send a request that uses WhatsApp for verification.
Where needed, replace the following variables in the sample code with your own values:
| Key | Description |
|---|---|
JWT | Used to authenticate your request. See Authentication for more information, including how to generate a JWT. |
BRAND_NAME | Included in the message to explain who is confirming the phone number |
VONAGE_APPLICATION_PRIVATE_KEY_PATH | Private key path. |
VONAGE_APPLICATION_ID | The Vonage Application ID. |
TO_NUMBER | The phone number to verify |
Write the code
Add the following to send-request-whatsapp.sh:
curl -X POST \
--url https://api.nexmo.com/v2/verify \
-H "Authorization: Bearer $JWT"\
-H 'Content-Type: application/json' \
-d $'{
"brand": "'$BRAND_NAME'",
"workflow": [
{
"channel": "whatsapp",
"to": "'$TO_NUMBER'"
}
]
}'Run your code
Save this file to your machine and run it:
Prerequisites
npm install @vonage/server-sdkCreate a file named request.js and add the following code:
const { Vonage } = require('@vonage/server-sdk');
const { Channels } = require('@vonage/verify2');
const vonage = new Vonage({
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH,
});Write the code
Add the following to request.js:
vonage.verify2.newRequest({
brand: BRAND_NAME,
workflow: [
{
channel: Channels.WHATSAPP,
to: TO_NUMBER,
},
],
})
.then(({requestId}) => console.log(requestId))
.catch((err) => console.error(err));Run your code
Save this file to your machine and run it:
Prerequisites
Add the following to build.gradle:
implementation 'com.vonage:server-sdk-kotlin:1.1.2'Create a file named SendVerificationRequestWhatsapp and add the following code to the main method:
val client = Vonage {
applicationId(VONAGE_APPLICATION_ID)
privateKeyPath(VONAGE_APPLICATION_PRIVATE_KEY_PATH)
}Write the code
Add the following to the main method of the SendVerificationRequestWhatsapp file:
val response = client.verify.sendVerification(BRAND_NAME) {
whatsapp(TO_NUMBER, WHATSAPP_BUSINESS_NUMBER)
}
println("Verification sent: ${response.requestId}")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.kt.verify with the package containing SendVerificationRequestWhatsapp:
Prerequisites
Add the following to build.gradle:
implementation 'com.vonage:server-sdk:8.15.1'Create a file named SendRequestWhatsapp and add the following code to the main method:
VonageClient client = VonageClient.builder()
.applicationId(VONAGE_APPLICATION_ID)
.privateKeyPath(VONAGE_PRIVATE_KEY_PATH)
.build();Write the code
Add the following to the main method of the SendRequestWhatsapp file:
VerificationResponse response = client.getVerify2Client().sendVerification(
VerificationRequest.builder()
.addWorkflow(new WhatsappWorkflow(TO_NUMBER, WHATSAPP_BUSINESS_NUMBER))
.brand(BRAND_NAME).build()
);
System.out.println("Verification sent: " + response.getRequestId());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.verify2 with the package containing SendRequestWhatsapp:
Prerequisites
Install-Package VonageCreate a file named StartVerificationRequestWhatsApp.cs and add the following code:
using Vonage;
using Vonage.Request;
using Vonage.VerifyV2.StartVerification;
using Vonage.VerifyV2.StartVerification.WhatsApp;Add the following to StartVerificationRequestWhatsApp.cs:
var credentials = Credentials.FromAppIdAndPrivateKeyPath(VONAGE_APPLICATION_ID, VONAGE_APPLICATION_PRIVATE_KEY_PATH);
var client = new VonageClient(credentials);Write the code
Add the following to StartVerificationRequestWhatsApp.cs:
var request = StartVerificationRequest.Build()
.WithBrand(BRAND_NAME)
.WithWorkflow(WhatsAppWorkflow.Parse(TO_NUMBER, FROM_NUMBER))
.Create();
var response = await client.VerifyV2Client.StartVerificationAsync(request);Prerequisites
composer require vonage/clientCreate a file named request.php and add the following code:
$client = new Vonage\Client(
new Vonage\Client\Credentials\Keypair(VONAGE_APPLICATION_PRIVATE_KEY_PATH, VONAGE_APPLICATION_ID),
);Write the code
Add the following to request.php:
$newRequest = new \Vonage\Verify2\Request\WhatsAppRequest(TO_NUMBER, 'my-verification');
$client->verify2()->startVerification($newRequest);Run your code
Save this file to your machine and run it:
Prerequisites
pip install vonageWrite the code
Add the following to request.py:
from vonage import Auth, Vonage
from vonage_verify import StartVerificationResponse, VerifyRequest, WhatsappChannel
client = Vonage(
Auth(
application_id=VONAGE_APPLICATION_ID,
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
)
verify_request = VerifyRequest(
brand=BRAND_NAME,
workflow=[
WhatsappChannel(to=TO_NUMBER, from_=WHATSAPP_BUSINESS_NUMBER),
],
)
response: StartVerificationResponse = client.verify.start_verification(verify_request)
pprint(response)Run your code
Save this file to your machine and run it:
Prerequisites
gem install vonageCreate a file named request.rb and add the following code:
client = Vonage::Client.new(
application_id: VONAGE_APPLICATION_ID,
private_key: File.read(VONAGE_APPLICATION_PRIVATE_KEY_PATH)
)Write the code
Add the following to request.rb:
client.verify2.start_verification(
brand: BRAND_NAME,
workflow: [
{channel: 'whatsapp', to: TO_NUMBER}
]
)Run your code
Save this file to your machine and run it:
Note: If you receive a callback to your designated webhook indicating the request was blocked, the target network might have been blocked by the platform's anti-fraud system.