Listar perfiles de compliance
Este endpoint lista los perfiles de compliance buscados por nombre en tu cuenta, ya sea que se hayan cargado desde la plataforma o con Cargar perfil en Compliance. Puedes filtrarlos por nombre, tipo de persona, país, estado, monitoreo y fecha de carga.
- Consultar los perfiles no tiene costo.
- Requiere que tu plan incluya el módulo de compliance.
- Incluye todos los perfiles activos de tu cuenta, sin importar qué usuario los cargó.
Endpoint nuevo en la v3. Ver la Guía de Migración.
Detalle de API
Request
- URL:
/compliance/perfiles - Método:
GET
Parámetros de consulta (query)
Todos los parámetros son opcionales.
| Valor | Tipo | Es requerido | Descripción |
|---|---|---|---|
nombre | string | No | Busca perfiles cuyo nombre contenga el texto (entre 2 y 200 caracteres). No distingue mayúsculas ni tildes. |
tipoPersona | string | No | natural o juridical. |
pais | string | No | País de la búsqueda, como código (ej: CL) o nombre en español (ej: Chile). |
estado | string | No | EN_CURSO, COMPLETADO o FALLIDO (ver Estados del perfil). |
monitoreo | boolean | No | true para los perfiles en monitoreo; false para las consultas. |
desde | string | No | Fecha de carga inicial, inclusive, en UTC (formato DD-MM-YYYY). |
hasta | string | No | Fecha de carga final, inclusive, en UTC (formato DD-MM-YYYY). No puede ser anterior a desde. |
page | number | No | Página a consultar. Entero mayor o igual a 1. Por defecto 1. Cada página trae hasta 50 perfiles. |
Ejemplo request con curl
curl -X 'GET' \
'https://prod.api.thesheriff.cl/api/clients/v3/compliance/perfiles?tipoPersona=natural&estado=COMPLETADO&page=1' \
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9EjemploDeToken123'
Response
Success
-
Status code: 200
-
Example response body:
{
"success": true,
"data": {
"perfiles": [
{
"id": 7,
"nombreCompleto": "JUAN PEREZ SOTO",
"tipoPersona": "natural",
"toleranciaBusqueda": 1,
"pais": "Chile",
"estado": "COMPLETADO",
"riesgo": "medium",
"monitoreo": true,
"fechaCarga": "13-08-2026 12:00:00",
"ultimaActualizacion": "14-08-2026 09:30:00",
"marshal": {
"totalInvestigaciones": 2,
"ultima": {
"id": "0b6c1d9e-7a7f-4a2b-9c55-3f1e2d4a5b6c",
"estado": "COMPLETADA",
"riesgo": "ALTO",
"fecha": "10-08-2026 12:00:00"
}
}
},
{
"id": 6,
"nombreCompleto": "EMPRESA FICTICIA SPA",
"tipoPersona": "juridica",
"toleranciaBusqueda": 0,
"pais": null,
"estado": "COMPLETADO",
"riesgo": "free",
"monitoreo": false,
"fechaCarga": "12-08-2026 16:20:00",
"ultimaActualizacion": "12-08-2026 16:21:10",
"marshal": {
"totalInvestigaciones": 0,
"ultima": null
}
}
],
"pagina": 1,
"totalPaginas": 1,
"cantidad": 2
}
}
Campos de la respuesta:
| Campo | Tipo | Descripción |
|---|---|---|
success | boolean | Indica si la operación fue exitosa. |
data | object | Página de perfiles y datos de paginación. |
Campos dentro de data:
| Campo | Tipo | Descripción |
|---|---|---|
perfiles | array | Perfiles de la página, del más reciente al más antiguo (ver campos anidados). |
pagina | number | Página devuelta. |
totalPaginas | number | Cantidad de páginas (50 perfiles por página); 0 si no hay resultados. |
cantidad | number | Cantidad total de perfiles que cumplen los filtros. |
Campos dentro de cada elemento de perfiles:
| Campo | Tipo | Descripción |
|---|---|---|
id | number | Identificador del perfil. Úsalo en Detalle de un perfil. |
nombreCompleto | string | Nombre o razón social buscado. |
tipoPersona | string | "natural" o "juridica". |
toleranciaBusqueda | number | Tolerancia de la búsqueda: 0 (exacta) a 2 (más flexible). |
pais | string | País de la búsqueda, con su nombre en español; null si se buscó sin país. |
estado | string | Estado del perfil (ver Estados del perfil). |
riesgo | string | Riesgo agregado: "free", "medium" o "critical"; null si aún no se calcula. |
monitoreo | boolean | true si el perfil está en monitoreo. |
fechaCarga | string | Fecha y hora de carga (formato DD-MM-YYYY HH:mm:ss, UTC). |
ultimaActualizacion | string | Fecha y hora de la última actualización del resultado (formato DD-MM-YYYY HH:mm:ss, UTC); puede ser null. |
marshal | object | Resumen de las investigaciones Marshal del perfil; null si tu plan no cuenta con Marshal (ver tabla siguiente). |
Campos dentro de marshal:
| Campo | Tipo | Descripción |
|---|---|---|
totalInvestigaciones | number | Cantidad de investigaciones Marshal del perfil, incluidas las fallidas que luego se reintentaron. |
ultima | object | Última investigación: id, estado (EN_CURSO, COMPLETADA o FALLIDA), riesgo y fecha (DD-MM-YYYY HH:mm:ss); null si no tiene. |
Para ver todas las investigaciones de un perfil, usa Investigaciones de un perfil.
La respuesta tiene la misma estructura para personas naturales y jurídicas; el campo tipoPersona indica el tipo de cada perfil.
Estados del perfil
| Estado | Significado |
|---|---|
EN_CURSO | La búsqueda todavía se está procesando. |
COMPLETADO | La búsqueda terminó y el resultado está disponible. |
FALLIDO | La búsqueda no pudo completarse. |
Errores
Además de los errores comunes, este endpoint puede responder:
400 - Parámetros inválidos
Algún parámetro de la consulta no es válido. El mensaje indica el parámetro rechazado; si hay más de uno, los mensajes vienen uno a continuación del otro, separados por un espacio. Corrige los parámetros indicados y vuelve a enviar la solicitud.
| Cuándo ocurre | Mensaje en error |
|---|---|
nombre de 1 carácter | El campo 'nombre' debe tener al menos 2 caracteres. |
tipoPersona inválido | El campo 'tipoPersona' debe ser uno de: [natural, juridical]. |
pais de 1 carácter | El campo 'pais' debe tener al menos 2 caracteres. |
estado inválido | El campo 'estado' debe ser uno de: [EN_CURSO, COMPLETADO, FALLIDO]. |
monitoreo no booleano | El campo 'monitoreo' debe ser verdadero o falso. |
desde o hasta con otro formato | La fecha debe tener el formato DD-MM-YYYY. |
desde posterior a hasta | La fecha "desde" no puede ser posterior a "hasta". |
page menor a 1 | El campo 'page' debe ser mayor o igual a 1. |
{
"success": false,
"code": 400,
"error": "El campo 'estado' debe ser uno de: [EN_CURSO, COMPLETADO, FALLIDO]."
}
401 - No autorizado
El token no se envió, expiró o no es válido (ver Errores de autenticación). Si expiró, solicita uno nuevo en Obtener Token.
{
"success": false,
"code": 401,
"error": "El token de autenticación no es válido."
}
403 - Plan sin el módulo de compliance
Tu plan no incluye el módulo de compliance.
{
"success": false,
"code": 403,
"error": "El plan no cuenta con el módulo de compliance."
}
429 - Demasiadas solicitudes
Superaste el límite de solicitudes (ver Rate Limits). Espera los segundos que indica el header Retry-After antes de reintentar.
{
"success": false,
"code": 429,
"error": "Demasiadas solicitudes desde esta API externa, intente más tarde."
}
500 - Error interno del servidor
Ocurrió un error inesperado. Intenta nuevamente más tarde.
{
"success": false,
"code": 500,
"error": "Ocurrió un error interno. Intenta nuevamente más tarde."
}