Skip to main content

Encriptar HumanID

Endpoint

POST https://api.verifik.co/v2/human-id/encrypt

Crea un HumanID (credencial verificable) encriptando metadatos y almacenándolos en IPFS. HumanAuthn usa cifrado de zelf.world. El campo de producto de Verifik es humanID.

Encabezados

NombreValor
Content-Typeapplication/json
AuthorizationBearer <token>

Parámetros

NombreTipoRequeridoDescripción
faceBase64stringImagen facial codificada en Base64
requireLivenessbooleanSi requiere detección de vitalidad
livenessLevelstringNivel de detección de vitalidad (REGULAR, SOFT, HARDENED)
osstringSistema operativo (DESKTOP, ANDROID, IOS)
identifierstringIdentificador único (solo alfanumérico, sin espacios ni caracteres especiales)
publicDataobjectDatos públicos a almacenar con la prueba (pares clave-valor de string)
metadataobjectMetadatos privados (pares clave-valor de string)
passwordstringNoContraseña opcional para seguridad adicional
referenceFaceBase64stringNoCara de referencia para comparación
tolerancestringNoNivel de tolerancia (REGULAR, SOFT, HARDENED)
verifierKeystringNoClave de verificador para validación adicional
storageProviderstringNoGuardar en IPFS o devolver sin persistencia de Verifik (ipfs, none). Por defecto ipfs
livenessDetectionPriorCreationbooleanNoHabilitar detección de vitalidad antes de la creación de la prueba

Solicitud

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

async function run() {
const res = await fetch("https://api.verifik.co/v2/human-id/encrypt", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
},
body: JSON.stringify({
faceBase64: "<base64_image>",
requireLiveness: false,
livenessLevel: "REGULAR",
password: "1234",
os: "DESKTOP",
identifier: "randomid",
publicData: {
"a": "1",
"b": "2",
"vida": "true"
},
metadata: {
"secretA": "3",
"secretB": "4"
}
}),
});
console.log(await res.json());
}

run();

Respuesta

{
"data": {
"humanID": "A39T6XGv2ld+/lwCeB11tcXKFUE2+4LkYwr2BfVwko8OvAqFCavD2S5o62IsxIH8QuQ6K9z1yJ6qhedWojVAhlMoufcpZLlhSknJTUMsql+FXXECoZ0elw3ZCKm1DHrrn3QoRtv3Pfc1EPB2fSoXan2RjFEnkolmrNA/FvRaEOgPeFLUlOFAVzYRVVsoFfe9N6pNZ9q5uCRti7vUwPz5LnObB5uVxFyNZFxZJKrJmqkEHWI+elEqQR/7KnGtwgyN4TNnVGdbyRUUZ8eTztGal5VHIDwYdKxIbjDb1x+xz/elCShcHr4K2QhG+cefp1hj6GFg8BSLF83Wk5U20Cm5V6G0F3Vjk4yNDc7IQB6OfvEDsD8OEov4xBG51D7pw6ukFrw/FrlHBbR+KV6We8t7pJ5/vzFll1tZKcki4PoOXcu/DzmhEVVb0DoVRcB53sbxpU0G5aT0hRH2rhs1jI0yitSzISqFOTNCb7wm3CQoA2ZGndx4+DLaoKjOb/9RFlRyk2FWpM1QGAPGMbJbDeW1JrZmBTsWQ6vTr6U+JdCZA2ZxEXIsugpzbkbMMnisW8m+ddoYJm2TJTvYI8XX6bLtC6T6dEM0oFPbJkjcYdW6bemsaMm0+evZUdREs7E435jDXEoJEP0LOufTluGYcstrTqcwKtSwM5OKK9qH27WNaWcybYrKw8tA0RBUf1jDc8ChHiKXRtiUQ3JxKzK2qLnlpBYLo/0Kyy0tYP7xK1lhxaJvMks8igH/jOuyjqLL0MmOs9EnCGZayJD/UQcu84XgDQKmVxk2zFUVhol7HlcRgpMisVaSawWhpnZtPFAeV+rpJgYAR8g4NjhZ7d9QGuHTdrxmGhHZcEyTqblMx4Kx4UVdWKzvHgaFjFFYag2w",
"ipfs": {
"url": "https://blush-selective-earwig-920.mypinata.cloud/ipfs/bafkreibu6ouy66tv7mmqbf4rxjd2tywdhfad2vri2sk562bltuz663imwu",
"IpfsHash": "bafkreibu6ouy66tv7mmqbf4rxjd2tywdhfad2vri2sk562bltuz663imwu",
"PinSize": 965,
"Timestamp": "2025-10-15T15:22:00.333Z",
"ID": "8e4dd38b-580d-4bf7-a71d-5c6d4e7dc008",
"Name": "613375a1eab2fe08527f81e2_zk_randomid_93558.json",
"NumberOfFiles": 1,
"MimeType": "application/json",
"GroupId": "861b93d7-9795-461d-b479-31f751d6869e",
"pinned": true,
"web3": true,
"name": "613375a1eab2fe08527f81e2_zk_randomid_93558.json",
"metadata": [
"a",
"b",
"vida"
]
}
},
"credits": {
"amount": -0.84,
"status": "approved",
"category": "usage",
"client": "613375a1eab2fe08527f81e2",
"superAdmin": null,
"expensesGroup": "613375a1eab2fe08527f81e2_zk_randomid_93558",
"product": "humanAuthn",
"transaction": null,
"expiresAt": null,
"isExpired": false,
"referenceCredit": null,
"_id": "68efbc187fb658e0366a3019",
"updatedAt": "2025-10-15T15:22:00.907Z",
"createdAt": "2025-10-15T15:22:00.907Z",
"__v": 0
}
}

Notas

  • El token humanID contiene la prueba facial encriptada y debe almacenarse de forma segura
  • Los datos IPFS incluyen metadatos sobre la prueba almacenada y claves de datos públicos
  • Se deducen créditos por la creación de la prueba (típicamente 0.84 créditos)
  • El identifier debe ser solo alfanumérico (sin espacios ni caracteres especiales)
  • publicData y metadata deben contener solo pares clave-valor de string
  • La detección de vitalidad puede habilitarse para seguridad adicional
  • La protección con contraseña añade una capa extra de seguridad a la prueba