La API de BCN

Guía rápida de la API de BCN y los endpoints principales

Web Service

La BCN ofrece un servicio web para desarrolladores donde permite descargar datos con distintas aplicaciones mediante XML, entre los servicios que son mas utiles se encuentran:

  • Obtiene los metadatos de una norma y el texto de encabezado
  • Obtiene el XML completo de la version actualizada de una norma. (Norma completa)
  • Normas seleccionadas por una institucion en convenio con la BCN. (Normas por institucion)

Metadatos De una Norma

Consulta por los metadatos de una norma (tipo de norma, palabras claves, organismo, materia) más su encabezado.

https://www.leychile.cl/Consulta/obtxml?opt=4546&idNorma={id}

Como parámetro deberá colocar el número del identificador único de la norma. Para obtener este identificador deberá obtenerlo buscando por el número de la ley (en la búsqueda simple) o de algun otro servicio de consulta de normas.

Norma Completa

Última versión de cualquier norma (leyes, decretos, tratados, DL, DFL, resoluciones, etc.)

https://www.leychile.cl/Consulta/obtxml?opt=7&idNorma={id}

Como parámetro deberá colocar el número del identificador único de la norma.

Normas por institución

Consulta por las normas seleccionadas por una determinada institución

https://www.leychile.cl/Consulta/obtxml?opt=6&idCategoria={id_institucion}

En el parámetro idCategoria o id_institucion deberá colocar el número del convenio, el que puede obtener siguiendo los siguientes pasos:

  1. Visitar la siguiente página
  2. Buscar la institución a consultar y descargar el XML del convenio
  3. Obtener el valor del atributo id_categoria desde el elemento NORMAS_CONVENIO

Tipos de normas

En el Web Service de la BCN existen distinciones entre los tipos de normas que hay (decretos, leyes, decretos con fuerza de ley, etc.), estos se encuentra en el XML de las normas guardado como:

<Grupo id_grupo="153">Decretos</Grupo>

Sin embargo, también existe otra clasificación o forma de clasificación de las normas en el Web Service, específicamente el <Tipos_Numeros>:

<TIPOS_NUMEROS>
    <TIPO_NUMERO>
        <TIPO>XX2</TIPO>
        <NUMERO>179</NUMERO>
        <DESCRIPCION>Decreto</DESCRIPCION>
        <ABREVIACION>DTO</ABREVIACION>
        <COMPUESTO>DTO-179</COMPUESTO>
    </TIPO_NUMERO>
</TIPOS_NUMEROS>

La primera forma de clasificación (de ahora en adelante <Grupo>), solo se encuentra en las respuestas al endpoint de Normas por institución y el id_grupo no atiende a ningún otro endpoint e incluso el id_grupo cambia por institución para los mismos tipos de norma, es decir que los ids de un tipo de norma pueden ser diferentes dependiendo de la institución.

La segunda forma de clasificación (de ahora en adelante <TIPO_NUMERO>) , se encuentra tanto en las respuestas al endpoint de Norma completa como en el endpoint de Normas por institución, y es la forma de clasificación que se utiliza para identificar un tipo de norma de manera única en el Web Service. Pero esta forma no es consistente con el endpoint de Norma Completa.

Norma Completa

<TiposNumeros>
    <TipoNumero>
        <Tipo>Ley</Tipo>
        <Numero>19846</Numero>
    </TipoNumero>
</TiposNumeros>

Normas por institución

<TIPOS_NUMEROS>
    <TIPO_NUMERO>
        <TIPO>XX2</TIPO>
        <NUMERO>179</NUMERO>
        <DESCRIPCION>Decreto</DESCRIPCION>
        <ABREVIACION>DTO</ABREVIACION>
        <COMPUESTO>DTO-179</COMPUESTO>
    </TIPO_NUMERO>
</TIPOS_NUMEROS>

Problema-Solución

En resumen el Web Service de la BCN no posee una forma de clasificación de normas consistentes en todos los endpoints, por lo que es necesario utilizar la forma de clasificación <TIPO_NUMERO> para identificar un tipo de norma de manera única en el Web Service.

Es por esto que se creó el TiposNormasManager para manejar la forma de clasificación <TIPO_NUMERO> y poder identificar un tipo de norma de manera única en el Web Service.

Instituciones

La BCN, a partir de su Base de Datos Legal, provee a instituciones públicas y privadas acceso, vía digital, a la normativa siempre actualizada de su ámbito de acción.