Verify SMS Verification Message
curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"otp": "<string>",
"template_id": "{your_trust_flow_id}",
"verification_id": "{your_created_verification_id}"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify"
payload = {
"otp": "<string>",
"template_id": "{your_trust_flow_id}",
"verification_id": "{your_created_verification_id}"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
otp: '<string>',
template_id: '{your_trust_flow_id}',
verification_id: '{your_created_verification_id}'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'otp' => '<string>',
'template_id' => '{your_trust_flow_id}',
'verification_id' => '{your_created_verification_id}'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify"
payload := strings.NewReader("{\n \"otp\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_id}\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"otp\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_id}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"otp\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_id}\"\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"message": "OK",
"result": {
"reference_id": "3661783EEE8C0104919289F32793C687",
"sub_resource": "sms",
"errors": [],
"status": {
"updated_on": "2025-07-31T01:20:39.675083Z",
"code": 200,
"description": "Delivered to handset"
},
"verify": {
"code_state": "VALID",
"code_entered": "991903"
},
"phone_evaluation_score": 0
}
}Compliance
Verify SMS Verification Message
Verify the submitted SMS OTP and complete phone number verification.
POST
/
api
/
v2
/
verification
/
phone-verification-v2
/
verify
Verify SMS Verification Message
curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"otp": "<string>",
"template_id": "{your_trust_flow_id}",
"verification_id": "{your_created_verification_id}"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify"
payload = {
"otp": "<string>",
"template_id": "{your_trust_flow_id}",
"verification_id": "{your_created_verification_id}"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
otp: '<string>',
template_id: '{your_trust_flow_id}',
verification_id: '{your_created_verification_id}'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'otp' => '<string>',
'template_id' => '{your_trust_flow_id}',
'verification_id' => '{your_created_verification_id}'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify"
payload := strings.NewReader("{\n \"otp\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_id}\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"otp\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_id}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{environment-subdomain}.idmetagroup.com/api/v2/verification/phone-verification-v2/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"otp\": \"<string>\",\n \"template_id\": \"{your_trust_flow_id}\",\n \"verification_id\": \"{your_created_verification_id}\"\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"message": "OK",
"result": {
"reference_id": "3661783EEE8C0104919289F32793C687",
"sub_resource": "sms",
"errors": [],
"status": {
"updated_on": "2025-07-31T01:20:39.675083Z",
"code": 200,
"description": "Delivered to handset"
},
"verify": {
"code_state": "VALID",
"code_entered": "991903"
},
"phone_evaluation_score": 0
}
}Authorizations
Use Bearer {your_api_token} in the Authorization header.
Body
application/json
One-time passcode submitted by the user.
Identifier used to categorize or group requests for tracking or reporting.
A unique ID used to identify your verification request.
Reference identifier returned by the send step.
Country dialing code (optional if already bound in session context).
Phone number (optional if already bound in session context).
⌘I

