Privacidad avanzada
Copia pixelada del documento con redact, campos enmascarados con mask_fields, borrado y exportación por metadatos (derechos de supresión y de acceso) y retención de resultados por plantilla o cuenta.
Además de decidir qué se hace con el fichero original (ver Almacenamiento y privacidad), Constaia te da herramientas para minimizar los datos que guardas y para atender los derechos de las personas:
| Herramienta | Para qué |
|---|---|
redact | Guardar una copia del documento con los identificadores, la firma y la foto pixelados. |
mask_fields | Guardar solo parte de un dato (12****78Z) aunque la validación use el valor completo. |
| Borrado por metadatos | Borrar todos los análisis de una persona con una llamada. |
| Exportación por metadatos | Entregar a una persona todos sus datos. |
| Retención | Borrar solos los resultados pasado un plazo. |
Todo se puede fijar en cada petición o en una plantilla, y mask_fields y la retención
también como predeterminados de la cuenta en el panel (Ajustes → Privacidad).
Copia pixelada (redact)
Con redact: true (o export: ["redacted_image"], que es equivalente) el análisis genera una copia JPEG del documento
con estas zonas pixeladas:
- el número de documento y los demás identificadores leídos (NIF, IBAN, números de soporte…), según su caja;
- la banda MRZ, localizada por el lector local;
- la firma manuscrita y la foto del titular, según las cajas que detecta el modelo. Si en un documento de identidad no se localiza la foto, se pixela una zona de seguridad (el lado izquierdo del anverso; en pasaportes, la banda inferior con la MRZ).
En PDF se pixela la primera página renderizada.
curl https://api.constaia.com/v1/analyze \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
-F "file=@dni.jpg" \
-F 'options={"expect":"es_dni","storage":"none","redact":true}'La copia llega como URL firmada en exports.redacted_image (caduca a las 24 h; vuelve a pedir el análisis para obtener
otra). Se conserva aunque el original se borre (por ejemplo con storage: "none") durante la retención de resultados
de la plantilla o, si no fija ninguna, 30 días. Así puedes enseñar el documento a un revisor o
archivarlo sin guardar el original.
Campos enmascarados (mask_fields)
{ "expect": "es_dni", "mask_fields": ["document_number", "mrz"] }Los campos de mask_fields (hasta 50) se guardan enmascarados: los dos primeros y los tres últimos caracteres
visibles (12345678Z → 12****78Z; valores de 5 caracteres o menos, todo con asteriscos). Los objetos y listas se
enmascaran por dentro, y se admiten rutas anidadas (employee.tax_id).
- La validación usa el valor completo: la letra del NIF o la edad mínima se comprueban antes de enmascarar.
- La respuesta síncrona de
POST /v1/analyzetrae el valor completo, una sola vez. Todo lo guardado sale enmascarado:GET /v1/analyses/{id}, listas, webhooks, callbacks de enlaces, exportaciones y el panel. - El valor también se enmascara dentro de
checks[].messageyverdict.reasons[].message. - La MRZ repite el número de documento: añade
mrzsi también la quieres enmascarada. - Con resultados progresivos (
stream=true), el eventolocalno traemrz,barcodeniidentifierssi haymask_fields. - En un expediente, un valor enmascarado no sirve para comparar titulares: si enmascaras el
número de documento, la comprobación
same_holderse apoya en el nombre y la fecha de nacimiento.
Si un análisis no trae mask_fields (ni por petición ni por plantilla), se usan los de la cuenta.
Borrado por metadatos (derecho de supresión)
Guarda en metadata el identificador de la persona en tu sistema ({ "user_id": "123" }) y podrás borrar todos sus
análisis de una vez:
curl -X DELETE -G https://api.constaia.com/v1/analyses \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
--data-urlencode "metadata[user_id]=123"{ "object": "deletion", "deleted": 3, "ids": ["an_01J9Z8Q3K4M5N6P7Q8R9S0T1V2", "an_…", "an_…"] }- Hace falta al menos un filtro
metadata[clave]=valor; varios filtros deben cumplirse todos. Sin filtro:422 metadata_filter_required. - Borra, en el modo de la clave, el fichero, los resultados, las exportaciones (también la copia pixelada) y los
metadatos de cada análisis, igual que
DELETE /v1/analyses/{id}. - También vacía el cuerpo de las entregas de webhook que llevaban esos resultados.
- Como mucho 10.000 análisis por petición: si
deletedes 10.000, repite la llamada. - Queda registrado en el registro de auditoría de la cuenta.
Exportación por metadatos (derecho de acceso)
curl -G https://api.constaia.com/v1/analyses/export \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
--data-urlencode "metadata[user_id]=123" \
--data-urlencode "format=json"| Parámetro | Descripción |
|---|---|
metadata[clave] | Al menos uno. Deben coincidir todos. |
format | json (por defecto): { "object": "list", "data": [...], "has_more": false, "url": "/v1/analyses/export" } con el objeto analysis completo. csv o xlsx: descarga de un fichero. |
Devuelve hasta 1.000 análisis del modo de la clave, del más reciente al más antiguo; has_more: true si hay más. Los
campos de mask_fields salen enmascarados, como están guardados.
Retención de resultados
storage decide cuánto vive el fichero; la retención decide cuánto viven los resultados (datos extraídos,
veredicto, comprobaciones, nombre del fichero y exportaciones):
retention_daysde la plantilla (1–3650 días), si el análisis usó una.- Si no, el plazo de la cuenta («Conservación de resultados» en Ajustes → Privacidad).
- Si no hay ninguno, los resultados se conservan hasta que los borres (salvo
keep_results: false, que no los guarda).
El plazo empieza al terminar el análisis. Un proceso diario borra los vencidos. Se conserva el registro mínimo del
análisis (tipo, veredicto, créditos y metadata) para el uso, la facturación y la analítica:
por eso conviene que metadata lleve identificadores internos, no datos personales.
Cuerpos de webhook con resultados
Las entregas de webhook y de callbacks de enlaces que llevan resultados se vacían (quedan { type, purged: true, purged_at }, con su estado, intentos y código de respuesta) a los 7 días de entregarse con éxito, y en cuanto se
borran los resultados de alguno de esos análisis (retención, borrado individual o por metadatos). Una entrega pendiente
cuyo cuerpo se vacía pasa a failed: no se reenvía un cuerpo vacío.
Siguientes pasos
Almacenamiento y privacidad
Qué guarda Constaia de tus documentos y cuánto tiempo, con los modos review, none, temporary y persistent, plazos de revisión, keep_results, borrado, cifrado y perfiles de proceso.
Verificación facial
Módulo opcional: selfie con prueba de vida activa y pasiva comparada 1:1 con la foto del documento de identidad. Modelos abiertos en nuestros servidores de la UE, sin guardar imágenes ni plantillas faciales. Solo cuentas del EEE.