Registration
Send One-Time Passcode
This endpoint generates a 6-digit OTP and sends it to the user contact (email or phone number SMS) provided in the request body, as long as it matches the receiver contact info stored in the SDP. A valid SEP-24 token should be included in this request’s Authorization header.
Send One-Time Passcode
curl --request POST \
--url https://api.example.com/sep24-interactive-deposit/otp \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"recaptcha_token": "<string>",
"phone_number": "<string>",
"email": "<string>"
}
'import requests
url = "https://api.example.com/sep24-interactive-deposit/otp"
payload = {
"recaptcha_token": "<string>",
"phone_number": "<string>",
"email": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({recaptcha_token: '<string>', phone_number: '<string>', email: '<string>'})
};
fetch('https://api.example.com/sep24-interactive-deposit/otp', 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://api.example.com/sep24-interactive-deposit/otp",
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([
'recaptcha_token' => '<string>',
'phone_number' => '<string>',
'email' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://api.example.com/sep24-interactive-deposit/otp"
payload := strings.NewReader("{\n \"recaptcha_token\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"email\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://api.example.com/sep24-interactive-deposit/otp")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"recaptcha_token\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"email\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/sep24-interactive-deposit/otp")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"recaptcha_token\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"email\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "if your phone number is registered, you'll receive an OTP",
"verification_field": "DATE_OF_BIRTH"
}{
"error": "<string>",
"extras": {}
}{
"error": "Not authorized",
"extras": {
"status": 401,
"message": "Not authorized"
}
}Authorizations
Authorization header containing a SEP-24 JWT (Bearer {token}).
Body
application/json
Object containing phone number
Token for reCAPTCHA validation (required unless reCAPTCHA is disabled).
Phone number to which the OTP will be sent. Either phone_number or email is required.
Email to which the OTP will be sent. Either phone_number or email is required.
Send One-Time Passcode
curl --request POST \
--url https://api.example.com/sep24-interactive-deposit/otp \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"recaptcha_token": "<string>",
"phone_number": "<string>",
"email": "<string>"
}
'import requests
url = "https://api.example.com/sep24-interactive-deposit/otp"
payload = {
"recaptcha_token": "<string>",
"phone_number": "<string>",
"email": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({recaptcha_token: '<string>', phone_number: '<string>', email: '<string>'})
};
fetch('https://api.example.com/sep24-interactive-deposit/otp', 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://api.example.com/sep24-interactive-deposit/otp",
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([
'recaptcha_token' => '<string>',
'phone_number' => '<string>',
'email' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://api.example.com/sep24-interactive-deposit/otp"
payload := strings.NewReader("{\n \"recaptcha_token\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"email\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://api.example.com/sep24-interactive-deposit/otp")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"recaptcha_token\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"email\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/sep24-interactive-deposit/otp")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"recaptcha_token\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"email\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "if your phone number is registered, you'll receive an OTP",
"verification_field": "DATE_OF_BIRTH"
}{
"error": "<string>",
"extras": {}
}{
"error": "Not authorized",
"extras": {
"status": 401,
"message": "Not authorized"
}
}