Skip to main content

Crear un proyecto

Endpoint

POST https://api.verifik.co/v3/projects

Crea un nuevo proyecto KYC con configuración completa. Puedes crear un proyecto básico con campos mínimos o incluir una configuración de flujo completa en una sola solicitud.

Encabezados

NombreValor
Content-Typeapplication/json
AuthorizationBearer <token>

Parámetros

NombreTipoRequeridoDescripción
namestringNombre del proyecto (máx. 60 caracteres)
allowedCountriesarrayLista de países permitidos
contactEmailstringCorreo de contacto (formato válido)
privacyUrlstringURL de política de privacidad
termsAndConditionsUrlstringURL de términos y condiciones
dataProtectionobjectInformación del responsable de protección de datos
identifierstringNoIdentificador del proyecto
currentStepnumberNoPaso actual de configuración
lastStepnumberNoÚltimo paso completado
demoModebooleanNoActiva modo demo para pruebas
demoOTPstringNoOTP demo (6 dígitos) - se genera si no se envía
brandingobjectNoConfiguración de marca
projectFlowobjectNoConfiguración del flujo del proyecto
projectFlowTypestringNoTipo de flujo (requerido si envías projectFlow)

Objeto Data Protection

NombreTipoRequeridoDescripción
namestringNombre
emailstringEmail (formato válido)
addressstringDirección principal
address2stringNoDirección secundaria
citystringCiudad
countrystringPaís
postalCodestringCódigo postal (3-12 caracteres)

Objeto Project Flow

NombreTipoRequeridoDescripción
targetstringAudiencia (personal)
typestringTipo de flujo (onboarding)
signUpFormobjectNoConfiguración del formulario de registro
documentsobjectNoAjustes de verificación de documentos
livenessobjectNoAjustes de verificación biométrica
stepsobjectNoConfiguración de pasos
integrationsobjectNoAjustes de integraciones

Solicitud

const fetch = require("node-fetch");

async function run() {
const res = await fetch("https://api.verifik.co/v3/projects", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
},
body: JSON.stringify({
name: "My KYC Project",
allowedCountries: ["United States"],
contactEmail: "admin@example.com",
privacyUrl: "https://example.com/privacy",
termsAndConditionsUrl: "https://example.com/terms",
dataProtection: {
name: "John Doe",
email: "dpo@example.com",
address: "123 Main St",
city: "New York",
country: "United States",
postalCode: "10001"
}
}),
});
console.log(await res.json());
}

run();

Respuesta

{
"data": {
"_id": "64a1b2c3d4e5f6789012345",
"name": "My KYC Project",
"identifier": null,
"contactEmail": "admin@example.com",
"privacyUrl": "https://example.com/privacy",
"termsAndConditionsUrl": "https://example.com/terms",
"status": "draft",
"currentStep": 0,
"lastStep": 0,
"demoMode": false,
"demoOTP": null,
"allowedCountries": ["United States", "Canada"],
"dataProtection": {
"name": "John Doe",
"email": "dpo@example.com",
"address": "123 Main St",
"address2": "",
"city": "New York",
"country": "United States",
"postalCode": "10001"
},
"branding": {
"bgColor": "#01236D",
"tabColor": "#01236D",
"borderColor": "#B2BDD3",
"buttonColor": "#B2BDD3",
"buttonTxtColor": "#FFFFFF",
"secondaryButtonColor": "#B2BDD3",
"secondaryButtonTextColor": "#FFFFFF",
"txtColor": "#8091B6",
"titleColor": "#000000",
"logo": null,
"rightImage": null,
"rightImagePosition": "center center",
"rightBackgroundColor": "white"
},
"projectFlows": "64a1b2c3d4e5f6789012346",
"version": 2,
"createdAt": "2023-07-01T10:00:00.000Z",
"updatedAt": "2023-07-01T10:00:00.000Z"
}
}

Notas

  • Modo demo: con demoMode: true y sin demoOTP, el sistema genera un OTP de 6 dígitos. En desarrollo, el modo demo se activa automáticamente.
  • Flujo del proyecto: en producción, crea proyectos completos con projectFlow para consistencia.
  • Validación: todos los campos se validan; errores retornan 4xx correspondientes.
  • Data Protection: postalCode entre 3–12 caracteres, alfanumérico, espacios y guiones permitidos.
  • Documentos: si steps.document no es "skip", verificationMethods y documentTypes son obligatorios.
  • Liveness: minScore 0.52–0.9; searchMinScore 0.7–0.95.