Crear un Registro de Aplicación
Endpoint
POST https://api.verifik.co/v2/app-registrations
Un Registro de Aplicación es una instancia dentro del sistema de Verifik que permite a un usuario iniciar el proceso de autenticación y validación utilizando flujos de proyecto específicos, detalles de correo electrónico y/o teléfono. Este proceso asegura la identidad del usuario y proporciona validación segura a través de varios pasos de verificación.
Al crear un Registro de Aplicación, se devuelve un token en la solicitud. Debes usar este token para crear validaciones de documentos, validaciones de correo electrónico, validaciones de teléfono y validaciones biométricas para Registros de Aplicación. Esto asegura que las validaciones estén relacionadas con el registrante de la aplicación.
El token puede recrearse ingresando la misma información (phone/email), sin embargo, cualquier validación de phone o email completada previamente será eliminada. Recomendamos que tus usuarios completen las validaciones de email y phone nuevamente para revalidar que son los propietarios originales de los datos.
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Params
| Name | Type | Required | Description |
|---|---|---|---|
project | string | Yes | ID único del proyecto asociado con este registro |
projectFlow | string | Yes | ID único del flujo de proyecto que define el proceso de registro y validación |
email | string | No | Dirección de correo electrónico del usuario a registrar. Se requiere email o phone |
phone | string | No | Número de teléfono del usuario a registrar (solo dígitos, sin espacios). Se requiere email o phone |
countryCode | string | No | Código de país asociado con el número de teléfono. Requerido si se proporciona phone. Formato: +123 |
fullName | string | No | Nombre completo de la persona que se está registrando |
firstName | string | No | Nombre de pila de la persona que se está registrando |
lastName | string | No | Apellido de la persona que se está registrando |
language | string | No | Idioma preferido para la comunicación durante el proceso de registro. Por defecto: "en" |
Request
- Node.js
- PHP
- Python
- Go
const fetch = require("node-fetch");
async function run() {
const res = await fetch("https://api.verifik.co/v2/app-registrations", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
},
body: JSON.stringify({
project: "507f1f77bcf86cd799439011",
projectFlow: "507f1f77bcf86cd799439015",
email: "user@example.com",
phone: "1234567890",
countryCode: "+1",
fullName: "John Doe",
language: "en",
}),
});
console.log(await res.json());
}
run();
<?php
$ch = curl_init("https://api.verifik.co/v2/app-registrations");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer " . getenv("VERIFIK_TOKEN")
]);
$body = json_encode([
"project" => "507f1f77bcf86cd799439011",
"projectFlow" => "507f1f77bcf86cd799439015",
"email" => "user@example.com",
"phone" => "1234567890",
"countryCode" => "+1",
"fullName" => "John Doe",
"language" => "en"
]);
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/app-registrations"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"
}
payload = {
"project": "507f1f77bcf86cd799439011",
"projectFlow": "507f1f77bcf86cd799439015",
"email": "user@example.com",
"phone": "1234567890",
"countryCode": "+1",
"fullName": "John Doe",
"language": "en"
}
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",
"projectFlow": "507f1f77bcf86cd799439015",
"email": "user@example.com",
"phone": "1234567890",
"countryCode": "+1",
"fullName": "John Doe",
"language": "en",
}
b, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", "https://api.verifik.co/v2/app-registrations", 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 (Dominio de Email)
- 409 (Código de País)
{
"data": {
"appRegistration": {
"_id": "674de8df21c72be3cc42b8a7",
"client": "507f1f77bcf86cd799439013",
"project": "507f1f77bcf86cd799439011",
"projectFlow": "507f1f77bcf86cd799439015",
"status": "STARTED",
"email": "user@example.com",
"phone": "1234567890",
"countryCode": "+1",
"currentStep": "1",
"language": "en",
"createdAt": "2024-12-02T17:05:36.788Z",
"updatedAt": "2024-12-02T17:05:36.788Z"
},
"informationValidation": {
"_id": "674de8df21c72be3cc42b8a8",
"fullName": "John Doe",
"firstName": "John",
"lastName": "Doe"
},
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
{
"message": "Needs an email or a phone at least",
"code": "MissingParameter",
"status": 409
}
{
"message": "email domain not allowed",
"code": "PreconditionFailed",
"status": 409
}
{
"message": "missing countryCode",
"code": "MissingParameter",
"status": 409
}
Notes
- Generación de Token: Se devuelve un token JWT en la respuesta que debe usarse para solicitudes de validación posteriores (email, teléfono, documento, biométrica).
- Información de Contacto: Se debe proporcionar
emailophone(concountryCode). Ambos pueden proporcionarse. - Campos de Nombre: Puedes usar
fullNameo la combinaciónfirstName/lastName. - Formato de Teléfono: Los números de teléfono deben contener solo dígitos (sin espacios, guiones u otros caracteres).
- Código de País: Debe estar en formato
+XXXdonde X son dígitos (máximo 1-3 dígitos). - Estado: Los nuevos registros de aplicación comienzan con estado
STARTED. - Idioma: Por defecto es
"en"si no se proporciona.