Crear una Validación de Email
Endpoint
POST https://api.verifik.co/v2/email-validations
Una Validación de Email es una instancia dentro del sistema de Verifik que permite procesar y validar direcciones de correo electrónico durante los procesos de autenticación y registro. Este proceso garantiza la autenticidad de las direcciones de email de los usuarios y brinda verificación segura mediante métodos de entrega por correo.
Encabezados
Content-Type
Tipo: String
Requerido: Sí
Valor: application/json
Authorization
Tipo: String
Requerido: Sí
Valor: Bearer {YOUR_ACCESS_TOKEN}
Parámetros del Cuerpo
project
Tipo: String
Requerido: Sí
El identificador único del proyecto donde se utilizará esta validación de email.
validationMethod
Tipo: String
Requerido: Sí
El método de validación, establecido en verificationCode o oneTimeLink.
email
Tipo: String
Requerido: Sí
La dirección de email que será validada (los espacios se eliminarán automáticamente y se convertirá a minúsculas).
type
Tipo: String
Requerido: Sí
Tipo de validación: validation, login, onboarding o oneTimeLink.
expiresAt
Tipo: String
Requerido: No
Fecha de expiración opcional para el código de validación.
redirectUrl
Tipo: String
Requerido: No
URL opcional para redirigir después de la validación.
webhookUrl
Tipo: String
Requerido: No
URL opcional de webhook para notificaciones de validación.
identityUrl
Tipo: String
Requerido: No
URL opcional de verificación de identidad.
requires2FA
Tipo: Boolean
Requerido: No
Indicador opcional que indica si se requiere autenticación de dos factores.
ipAddress
Tipo: String
Requerido: No
Dirección IP opcional del usuario.
Valores de validationMethod
| Valor | Descripción |
|---|---|
verificationCode | Envía un código OTP de 6 dígitos a la dirección de email |
oneTimeLink | Envía un enlace de un solo uso a la dirección de email |
Solicitud
- Node.js
- Python
- PHP
- Go
- Swift
import axios from "axios";
const options = {
method: "POST",
url: "https://api.verifik.co/v2/email-validations",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer <your_token>",
},
data: {
project: "project_123456789",
validationMethod: "verificationCode",
email: "user@example.com",
type: "validation",
expiresAt: "2024-01-15T11:30:00Z",
redirectUrl: "https://example.com/success",
webhookUrl: "https://example.com/webhook",
requires2FA: false,
ipAddress: "192.168.1.1",
},
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
import http.client
import json
conn = http.client.HTTPSConnection("api.verifik.co")
payload = json.dumps({
"project": "project_123456789",
"validationMethod": "verificationCode",
"email": "user@example.com",
"type": "validation",
"expiresAt": "2024-01-15T11:30:00Z",
"redirectUrl": "https://example.com/success",
"webhookUrl": "https://example.com/webhook",
"requires2FA": False,
"ipAddress": "192.168.1.1"
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer <your_token>'
}
conn.request("POST", "/v2/email-validations", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://api.verifik.co/v2/email-validations', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer <your_token>',
],
'json' => [
'project' => 'project_123456789',
'validationMethod' => 'verificationCode',
'email' => 'user@example.com',
'type' => 'validation',
'expiresAt' => '2024-01-15T11:30:00Z',
'redirectUrl' => 'https://example.com/success',
'webhookUrl' => 'https://example.com/webhook',
'requires2FA' => false,
'ipAddress' => '192.168.1.1'
]
]);
echo $response->getBody();
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.verifik.co/v2/email-validations"
payload := map[string]interface{}{
"project": "project_123456789",
"validationMethod": "verificationCode",
"email": "user@example.com",
"type": "validation",
"expiresAt": "2024-01-15T11:30:00Z",
"redirectUrl": "https://example.com/success",
"webhookUrl": "https://example.com/webhook",
"requires2FA": false,
"ipAddress": "192.168.1.1",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Bearer <your_token>")
client := &http.Client{}
res, _ := client.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
import Foundation
let headers = [
"Content-Type": "application/json",
"Authorization": "Bearer <your_token>"
]
let parameters = [
"project": "project_123456789",
"validationMethod": "verificationCode",
"email": "user@example.com",
"type": "validation",
"expiresAt": "2024-01-15T11:30:00Z",
"redirectUrl": "https://example.com/success",
"webhookUrl": "https://example.com/webhook",
"requires2FA": false,
"ipAddress": "192.168.1.1"
] as [String : Any]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://api.verifik.co/v2/email-validations")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
Respuesta
- 200
- 400
{
"success": true,
"data": {
"_id": "email_validation_123456789",
"client": "client_123456789",
"project": "project_123456789",
"projectFlow": "flow_123456789",
"status": "sent",
"email": "user@example.com",
"type": "validation",
"validationMethod": "verificationCode",
"verificationCode": "123456",
"expiresAt": "2024-01-15T11:30:00Z",
"redirectUrl": "https://example.com/success",
"webhookUrl": "https://example.com/webhook",
"requires2FA": false,
"ipAddress": "192.168.1.1",
"attempts": 0,
"maxAttempts": 3,
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
},
"signature": {
"dateTime": "April 11, 2023 12:25 PM",
"message": "Certified by Verifik.co"
}
}
{
"success": false,
"error": "Invalid email address",
"code": "INVALID_EMAIL"
}
Características
- Creación de validaciones: Crea nuevas validaciones de email con configuración completa
- Múltiples métodos: Soporte para códigos de verificación y enlaces de un solo uso
- Tipos de validación: Validación estándar, login, onboarding y enlaces únicos
- Configuración avanzada: URLs de redirección, webhooks y autenticación de dos factores
- Seguridad: Control de intentos, expiración y prevención de abuso
- Múltiples lenguajes: Soporte para JavaScript, Python, PHP y Swift
- Manejo de errores: Respuestas de error detalladas para distintos escenarios