Mobile 360 Send OTP Request
curl --request POST \
--url https://sandbox.cashfree.com/verification/mobile360/otp/send \
--header 'Content-Type: application/json' \
--header 'x-api-version: <x-api-version>' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"verification_id": "ABC00122",
"mobile_number": "9999999999",
"name": "John Doe",
"user_consent": {
"timestamp": "2024-11-29T12:34:56Z",
"purpose": "User consent to fetch data.",
"obtained": true,
"type": "EXPLICIT"
},
"notification_modes": [
"SMS",
"WHATSAPP"
]
}
'import requests
url = "https://sandbox.cashfree.com/verification/mobile360/otp/send"
payload = {
"verification_id": "ABC00122",
"mobile_number": "9999999999",
"name": "John Doe",
"user_consent": {
"timestamp": "2024-11-29T12:34:56Z",
"purpose": "User consent to fetch data.",
"obtained": True,
"type": "EXPLICIT"
},
"notification_modes": ["SMS", "WHATSAPP"]
}
headers = {
"x-api-version": "<x-api-version>",
"x-client-id": "<api-key>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-version': '<x-api-version>',
'x-client-id': '<api-key>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
verification_id: 'ABC00122',
mobile_number: '9999999999',
name: 'John Doe',
user_consent: {
timestamp: '2024-11-29T12:34:56Z',
purpose: 'User consent to fetch data.',
obtained: true,
type: 'EXPLICIT'
},
notification_modes: ['SMS', 'WHATSAPP']
})
};
fetch('https://sandbox.cashfree.com/verification/mobile360/otp/send', 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://sandbox.cashfree.com/verification/mobile360/otp/send",
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([
'verification_id' => 'ABC00122',
'mobile_number' => '9999999999',
'name' => 'John Doe',
'user_consent' => [
'timestamp' => '2024-11-29T12:34:56Z',
'purpose' => 'User consent to fetch data.',
'obtained' => true,
'type' => 'EXPLICIT'
],
'notification_modes' => [
'SMS',
'WHATSAPP'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-version: <x-api-version>",
"x-client-id: <api-key>",
"x-client-secret: <api-key>"
],
]);
$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://sandbox.cashfree.com/verification/mobile360/otp/send"
payload := strings.NewReader("{\n \"verification_id\": \"ABC00122\",\n \"mobile_number\": \"9999999999\",\n \"name\": \"John Doe\",\n \"user_consent\": {\n \"timestamp\": \"2024-11-29T12:34:56Z\",\n \"purpose\": \"User consent to fetch data.\",\n \"obtained\": true,\n \"type\": \"EXPLICIT\"\n },\n \"notification_modes\": [\n \"SMS\",\n \"WHATSAPP\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-version", "<x-api-version>")
req.Header.Add("x-client-id", "<api-key>")
req.Header.Add("x-client-secret", "<api-key>")
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://sandbox.cashfree.com/verification/mobile360/otp/send")
.header("x-api-version", "<x-api-version>")
.header("x-client-id", "<api-key>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"verification_id\": \"ABC00122\",\n \"mobile_number\": \"9999999999\",\n \"name\": \"John Doe\",\n \"user_consent\": {\n \"timestamp\": \"2024-11-29T12:34:56Z\",\n \"purpose\": \"User consent to fetch data.\",\n \"obtained\": true,\n \"type\": \"EXPLICIT\"\n },\n \"notification_modes\": [\n \"SMS\",\n \"WHATSAPP\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/verification/mobile360/otp/send")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-version"] = '<x-api-version>'
request["x-client-id"] = '<api-key>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"verification_id\": \"ABC00122\",\n \"mobile_number\": \"9999999999\",\n \"name\": \"John Doe\",\n \"user_consent\": {\n \"timestamp\": \"2024-11-29T12:34:56Z\",\n \"purpose\": \"User consent to fetch data.\",\n \"obtained\": true,\n \"type\": \"EXPLICIT\"\n },\n \"notification_modes\": [\n \"SMS\",\n \"WHATSAPP\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"verification_id": "ABC00122",
"mobile_number": "9999999999",
"status": "OTP_GENERATED",
"reference_id": 123454,
"name": "John Doe",
"notification_modes": [
"SMS",
"WHATSAPP"
]
}
Mobile 360 Send OTP Request
The Mobile Send OTP API generates and sends a One-Time Password (OTP) to a user’s mobile number via specified notification modes like SMS or WhatsApp.It captures consent details, ensuring secure and compliant user verification. View the test data and use the information to trigger the validations. You can use the test data only in test environments such as sandbox.
POST
/
mobile360
/
otp
/
send
Mobile 360 Send OTP Request
curl --request POST \
--url https://sandbox.cashfree.com/verification/mobile360/otp/send \
--header 'Content-Type: application/json' \
--header 'x-api-version: <x-api-version>' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"verification_id": "ABC00122",
"mobile_number": "9999999999",
"name": "John Doe",
"user_consent": {
"timestamp": "2024-11-29T12:34:56Z",
"purpose": "User consent to fetch data.",
"obtained": true,
"type": "EXPLICIT"
},
"notification_modes": [
"SMS",
"WHATSAPP"
]
}
'import requests
url = "https://sandbox.cashfree.com/verification/mobile360/otp/send"
payload = {
"verification_id": "ABC00122",
"mobile_number": "9999999999",
"name": "John Doe",
"user_consent": {
"timestamp": "2024-11-29T12:34:56Z",
"purpose": "User consent to fetch data.",
"obtained": True,
"type": "EXPLICIT"
},
"notification_modes": ["SMS", "WHATSAPP"]
}
headers = {
"x-api-version": "<x-api-version>",
"x-client-id": "<api-key>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-version': '<x-api-version>',
'x-client-id': '<api-key>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
verification_id: 'ABC00122',
mobile_number: '9999999999',
name: 'John Doe',
user_consent: {
timestamp: '2024-11-29T12:34:56Z',
purpose: 'User consent to fetch data.',
obtained: true,
type: 'EXPLICIT'
},
notification_modes: ['SMS', 'WHATSAPP']
})
};
fetch('https://sandbox.cashfree.com/verification/mobile360/otp/send', 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://sandbox.cashfree.com/verification/mobile360/otp/send",
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([
'verification_id' => 'ABC00122',
'mobile_number' => '9999999999',
'name' => 'John Doe',
'user_consent' => [
'timestamp' => '2024-11-29T12:34:56Z',
'purpose' => 'User consent to fetch data.',
'obtained' => true,
'type' => 'EXPLICIT'
],
'notification_modes' => [
'SMS',
'WHATSAPP'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-version: <x-api-version>",
"x-client-id: <api-key>",
"x-client-secret: <api-key>"
],
]);
$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://sandbox.cashfree.com/verification/mobile360/otp/send"
payload := strings.NewReader("{\n \"verification_id\": \"ABC00122\",\n \"mobile_number\": \"9999999999\",\n \"name\": \"John Doe\",\n \"user_consent\": {\n \"timestamp\": \"2024-11-29T12:34:56Z\",\n \"purpose\": \"User consent to fetch data.\",\n \"obtained\": true,\n \"type\": \"EXPLICIT\"\n },\n \"notification_modes\": [\n \"SMS\",\n \"WHATSAPP\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-version", "<x-api-version>")
req.Header.Add("x-client-id", "<api-key>")
req.Header.Add("x-client-secret", "<api-key>")
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://sandbox.cashfree.com/verification/mobile360/otp/send")
.header("x-api-version", "<x-api-version>")
.header("x-client-id", "<api-key>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"verification_id\": \"ABC00122\",\n \"mobile_number\": \"9999999999\",\n \"name\": \"John Doe\",\n \"user_consent\": {\n \"timestamp\": \"2024-11-29T12:34:56Z\",\n \"purpose\": \"User consent to fetch data.\",\n \"obtained\": true,\n \"type\": \"EXPLICIT\"\n },\n \"notification_modes\": [\n \"SMS\",\n \"WHATSAPP\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/verification/mobile360/otp/send")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-version"] = '<x-api-version>'
request["x-client-id"] = '<api-key>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"verification_id\": \"ABC00122\",\n \"mobile_number\": \"9999999999\",\n \"name\": \"John Doe\",\n \"user_consent\": {\n \"timestamp\": \"2024-11-29T12:34:56Z\",\n \"purpose\": \"User consent to fetch data.\",\n \"obtained\": true,\n \"type\": \"EXPLICIT\"\n },\n \"notification_modes\": [\n \"SMS\",\n \"WHATSAPP\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"verification_id": "ABC00122",
"mobile_number": "9999999999",
"status": "OTP_GENERATED",
"reference_id": 123454,
"name": "John Doe",
"notification_modes": [
"SMS",
"WHATSAPP"
]
}
Authorizations
Client ID. You can find your ID in the Merchant Dashboard.
Client secret key. You can find your secret key in the Merchant Dashboard.
Headers
Body
application/json
Find the request parameters to send the OTP to the mobile number
Response
Response for Mobile360 Send OTP
