Crear una Validación de Teléfono de Registro de Aplicación
Endpoint
POST https://api.verifik.co/v2/phone-validations/app-registration
Una Validación de Teléfono es una instancia dentro del sistema de Verifik que te permite procesar y validar números telefónicos durante el proceso de registro de aplicación. Este proceso asegura la autenticidad de los números de teléfono de los usuarios y proporciona verificación segura mediante métodos de entrega por SMS o WhatsApp.
warning
El Token JWT que debes usar al crear Validaciones de Teléfono de Registro de Aplicación se proporciona desde el Registro de Aplicación en creación. Debes usar el token devuelto al crear un Registro de Aplicación para autenticar esta solicitud.
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Params
| Name | Type | Required | Description |
|---|---|---|---|
project | string | Yes | El identificador único del proyecto donde se utilizará esta validación de teléfono |
validationMethod | string | Yes | El método de validación. Debe ser verificationCode |
phone | string | Yes | El número de teléfono que será validado. Los espacios se eliminarán automáticamente durante el procesamiento |
countryCode | string | Yes | El código de país del número telefónico en formato +XXX (ej: +507 para Panamá, +1 para Estados Unidos). Debe coincidir con el formato + seguido de 1 a 3 dígitos |
type | string | Yes | Tipo de validación. Debe ser uno de: validation, login, onboarding, o oneTimeLink |
expiresAt | string | No | Fecha de expiración opcional para el código de validación. Si no se proporciona, se establecerá un tiempo de expiración por defecto. Formato: ISO 8601 (ej: 2024-12-31T23:59:59.000Z) |
redirectUrl | string | No | URL opcional para redirigir después de la validación |
webhookUrl | string | No | URL de webhook opcional para notificaciones de validación |
identityUrl | string | No | URL opcional de verificación de identidad |
requires2FA | boolean | No | Bandera opcional que indica si se requiere autenticación de dos factores. Por defecto: false |
ipAddress | string | No | Dirección IP opcional del usuario |
Validation Method Values
| Value | Description |
|---|---|
verificationCode | Envía una contraseña de un solo uso (OTP) al número de teléfono para verificación |
Type Values
| Value | Description |
|---|---|
onboarding | Verificación de teléfono durante el registro de usuario (recomendado para registros de aplicación) |
validation | Validación general de número telefónico |
login | Verificación de teléfono durante el inicio de sesión del usuario |
oneTimeLink | Validación de enlace de un solo uso |
Request
- Node.js
- PHP
- Python
- Go
const fetch = require("node-fetch");
async function run() {
const res = await fetch("https://api.verifik.co/v2/phone-validations/app-registration", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
},
body: JSON.stringify({
project: "507f1f77bcf86cd799439011",
validationMethod: "verificationCode",
phone: "62647737",
countryCode: "+507",
type: "onboarding",
}),
});
console.log(await res.json());
}
run();
<?php
$ch = curl_init("https://api.verifik.co/v2/phone-validations/app-registration");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer " . getenv("VERIFIK_TOKEN")
]);
$body = json_encode([
"project" => "507f1f77bcf86cd799439011",
"validationMethod" => "verificationCode",
"phone" => "62647737",
"countryCode" => "+507",
"type" => "onboarding"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import os, requests
url = "https://api.verifik.co/v2/phone-validations/app-registration"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"
}
payload = {
"project": "507f1f77bcf86cd799439011",
"validationMethod": "verificationCode",
"phone": "62647737",
"countryCode": "+507",
"type": "onboarding"
}
r = requests.post(url, json=payload, headers=headers)
print(r.json())
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
payload := map[string]interface{}{
"project": "507f1f77bcf86cd799439011",
"validationMethod": "verificationCode",
"phone": "62647737",
"countryCode": "+507",
"type": "onboarding",
}
b, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", "https://api.verifik.co/v2/phone-validations/app-registration", bytes.NewBuffer(b))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer "+os.Getenv("VERIFIK_TOKEN"))
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var out map[string]interface{}
json.NewDecoder(resp.Body).Decode(&out)
fmt.Println(out)
}
Response
- 200
- 409
- 409 (Formato de Código de País Inválido)
- 404 (Proyecto No Encontrado)
- 404 (Flujo de Proyecto No Encontrado)
{
"data": {
"client": "507f1f77bcf86cd799439013",
"project": "507f1f77bcf86cd799439011",
"projectFlow": "507f1f77bcf86cd799439015",
"status": "sent",
"countryCode": "+507",
"phone": "62647737",
"phoneGateway": "whatsapp",
"otp": "$2a$10$/v55.1QmwlCdX6zD1jy51OF87POIDZzj30.UmTtp13pZv6uKm.a.m",
"expiresAt": "2024-12-02T17:15:35.000Z",
"phoneData": {},
"type": "validation",
"redirectUrl": "https://api.verifik.co",
"requires2FA": false,
"ipAddress": "172.17.0.1",
"language": "en",
"_id": "674de8df21c72be3cc42b8a7",
"updatedAt": "2024-12-02T17:05:36.788Z",
"createdAt": "2024-12-02T17:05:36.788Z",
"__v": 0,
"new": true
}
}
{
"code": "MissingParameter",
"message": "missing project\n. missing validationMethod\n. missing phone\n. missing countryCode\n. missing type"
}
{
"code": "MissingParameter",
"message": "Invalid countryCode format. CountryCode should be in the format + followed by 1 to 3 digits."
}
{
"code": "project_not_found",
"message": "404:project_not_found"
}
{
"code": "projectFlow_not_found",
"message": "404:projectFlow_not_found"
}
Notes
- Formato de Código de País: El
countryCodedebe estar en formato+XXXdonde X son dígitos (máximo 1-3 dígitos). Por ejemplo:+1,+507,+52. - Número de Teléfono: Los espacios en los números de teléfono se eliminan automáticamente durante el procesamiento.
- Seguridad OTP: El OTP se encripta usando bcrypt antes del almacenamiento por seguridad.
- Puerta de Enlace por Defecto: Las validaciones de teléfono usan por defecto el método de entrega WhatsApp basado en la configuración de tu flujo de proyecto.
- Vinculación Automática: Cuando se crea a través del endpoint de registro de aplicación, la validación de teléfono se vincula automáticamente al registro de registro de aplicación del usuario.
- Carga de Créditos: Este endpoint carga automáticamente créditos de tu plan SmartEnroll.
- Registro de Aplicación Requerido: Este endpoint requiere una sesión de registro de aplicación activa. Debes usar el token devuelto al crear un Registro de Aplicación.