Saltar al contenido principal
Send Verification Code
curl --request POST \
  --url https://api.spherepay.co/v2/customer/{id}/otp-send \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "type": "email"
}
'
import requests

url = "https://api.spherepay.co/v2/customer/{id}/otp-send"

payload = { "type": "email" }
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({type: 'email'})
};

fetch('https://api.spherepay.co/v2/customer/{id}/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://api.spherepay.co/v2/customer/{id}/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([
'type' => 'email'
]),
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://api.spherepay.co/v2/customer/{id}/otp-send"

payload := strings.NewReader("{\n \"type\": \"email\"\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://api.spherepay.co/v2/customer/{id}/otp-send")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"email\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.spherepay.co/v2/customer/{id}/otp-send")

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 \"type\": \"email\"\n}"

response = http.request(request)
puts response.read_body
{
  "customerId": "customer_f31121c389624d3697cbf3ea8830b7a4",
  "expiresAt": "2026-03-09T20:46:31.305Z"
}
{
"status": 400,
"detail": "Invalid request parameters",
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}
{
"status": 404,
"detail": "Resource not found",
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}
{
"status": 422,
"detail": "Validation failed",
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
]
}
Envía una contraseña de un solo uso (OTP) a la dirección de correo electrónico o número de teléfono registrado de un cliente como parte de la verificación de contacto durante el flujo KYC. Después de que se envía el código, solicita al cliente que lo ingrese y luego llama al endpoint Verificar Código OTP para confirmar el detalle de contacto. Los códigos OTP expiran en el momento indicado por expiresAt en la respuesta — si el código ha expirado antes de que el cliente lo envíe, llama a este endpoint nuevamente para enviar uno nuevo.

Autorizaciones

Authorization
string
header
requerido

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Parámetros de ruta

id
string
requerido

Customer ID

Ejemplo:

"customer_f31121c389624d3697cbf3ea8830b7a4"

Cuerpo

application/json
type
enum<string>
requerido

Type of verification code to send

Opciones disponibles:
phone,
email
Ejemplo:

"email"

Respuesta

customerId
string
requerido

Customer ID

Ejemplo:

"customer_f31121c389624d3697cbf3ea8830b7a4"

expiresAt
string
requerido

ISO 8601 formatted date and time of the verification code expiration

Ejemplo:

"2026-03-09T20:46:31.305Z"

Última modificación el 22 de junio de 2026