Saltar al contenido principal

Niveles de la Malla Societaria

Este endpoint recorre la malla societaria completa de un RUT y devuelve cuántos niveles tiene y cuántas relaciones hay en cada uno, sin el detalle de las relaciones. Úsalo para planificar el recorrido de Capas de la Malla Societaria antes de pedir cada nivel.

  • Consultar un RUT ya cargado en tu cuenta no genera costos adicionales.
  • El RUT debe estar cargado en tu cuenta antes de la consulta (ver Carga de RUT).
  • Requiere que tu plan incluya el ayudante Legal.
  • Los niveles se construyen con las mismas reglas que Capas de la Malla Societaria.

Detalle de API​

Request​

  • URL: /helper/legal/{rut}/capasMallaSocietaria/niveles?modo={modo}
  • Método: GET

Parámetros de ruta (path)​

ValorTipoEs requeridoDescripción
rutstringSíRUT a consultar, en formato "12345678-9".

Parámetros de consulta (query)​

ValorTipoEs requeridoDescripción
modostringNoForma de recorrer la malla: beneficiariosFinales (por defecto) o ampliada. Usa el mismo valor que en las consultas a Capas de la Malla Societaria.

Ejemplo request con curl​

curl -X 'GET' \
'https://prod.api.thesheriff.cl/api/clients/v3/helper/legal/76123456-0/capasMallaSocietaria/niveles?modo=beneficiariosFinales' \
-H 'accept: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9EjemploDeToken123'

Response​

Diferencias por tipo de persona​

La estructura es la misma para personas naturales y jurídicas. Como en Capas, lo que cambia es el significado del nivel 1:

CampoPersona jurídicaPersona natural
nombreRazón social de la sociedadNombre de la persona
total del nivel 1Cantidad de relaciones directas de la sociedad (socios, accionistas u otros roles)Cantidad de sociedades en las que participa la persona

Respuesta para persona jurídica​

Success

  • Status code: 200

  • Example response body:

    {
    "success": true,
    "data": {
    "rut": "76123456-0",
    "nombre": "EMPRESA FICTICIA SPA",
    "modo": "beneficiariosFinales",
    "truncada": false,
    "nivelMaximo": 3,
    "nivelesDisponibles": [
    { "nivel": 1, "total": 2 },
    { "nivel": 2, "total": 3 },
    { "nivel": 3, "total": 1 }
    ],
    "ultimaActualizacion": "15-08-2026 13:45:10"
    }
    }

Respuesta para persona natural​

El nivel 1 cuenta las sociedades en las que participa la persona; el nivel 2, los demás socios de esas sociedades.

Success

  • Status code: 200

  • Example response body:

    {
    "success": true,
    "data": {
    "rut": "11111111-1",
    "nombre": "SOCIO FICTICIO UNO",
    "modo": "beneficiariosFinales",
    "truncada": false,
    "nivelMaximo": 2,
    "nivelesDisponibles": [
    { "nivel": 1, "total": 2 },
    { "nivel": 2, "total": 4 }
    ],
    "ultimaActualizacion": "15-08-2026 13:45:10"
    }
    }

Respuesta sin relaciones​

Un RUT sin relaciones registradas responde 200 con nivelMaximo en 0:

{
"success": true,
"data": {
"rut": "76123456-0",
"nombre": null,
"modo": "beneficiariosFinales",
"truncada": false,
"nivelMaximo": 0,
"nivelesDisponibles": [],
"ultimaActualizacion": null
}
}

Campos de la respuesta​

Los campos son los mismos para personas naturales y jurídicas.

CampoTipoDescripción
successboolIndica si la operación fue exitosa.
dataobjectNiveles de la malla societaria del RUT.

Campos dentro de data:

CampoTipoDescripción
rutstringRUT consultado, normalizado sin puntos (formato "12345678-9").
nombrestringRazón social o nombre del RUT consultado; null si no está en las fuentes legales.
modostringModo de recorrido usado: "beneficiariosFinales" o "ampliada".
truncadabooleantrue si el recorrido se interrumpió antes de completar la malla (ver Mallas truncadas). En ese caso, pueden faltar los niveles más profundos y el total del último nivel puede estar incompleto.
nivelMaximonumberNivel más profundo con relaciones (0 si no hay relaciones).
nivelesDisponiblesarrayNiveles con relaciones y la cantidad de relaciones de cada uno (ver campos anidados).
ultimaActualizacionstringFecha y hora de la última actualización del ayudante Legal (formato "DD-MM-YYYY HH:mm:ss"); null si no hay registro.

Campos dentro de cada elemento de nivelesDisponibles:

CampoTipoDescripción
nivelnumberNúmero de nivel.
totalnumberCantidad de relaciones en ese nivel.

Para obtener las relaciones de un nivel, consulta Capas de la Malla Societaria con ese nivel y recorre page desde 1 hasta ceil(total / 100).

Errores​

Además de los errores comunes y los de acceso al RUT, este endpoint puede responder:

400 - Parámetros inválidos​

El RUT de la ruta o el parámetro modo no son válidos. Corrige el valor indicado en el mensaje y vuelve a enviar la solicitud.

Cuándo ocurreMensaje en error
RUT con formato o dígito verificador inválidoEl RUT ingresado no es válido. Por favor verifica el formato.
modo inválidoEl campo 'modo' debe ser uno de: [beneficiariosFinales, ampliada].
{
"success": false,
"code": 400,
"error": "El campo 'modo' debe ser uno de: [beneficiariosFinales, ampliada]."
}

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 - RUT sin acceso​

El RUT existe en Sheriff, pero no está cargado en tu cuenta. Cárgalo con Carga de RUT antes de consultarlo.

{
"success": false,
"code": 403,
"error": "No tienes permisos para consultar este RUT."
}

Tu plan no incluye el ayudante Legal.

{
"success": false,
"code": 403,
"error": "El plan no cuenta con el ayudante legal."
}

404 - RUT no encontrado​

El RUT no existe en Sheriff. Cárgalo con Carga de RUT antes de consultarlo.

{
"success": false,
"code": 404,
"error": "El RUT consultado no existe en el sistema."
}

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."
}