Saltar a contenido

Tabla de solicitudes

GET /apientidades/v1/declaraciones/{iddeclaracion}/derecho-acceso/tabla

Devuelve la tabla completa de solicitudes de derecho de acceso, organizada por ejercicios (períodos). Cada ejercicio contiene las categorías (columnas) y los conceptos (filas) con sus valores actuales. Los IDs de las celdas son los que se usan en el PUT /derecho-acceso para enviar datos.

Parámetros de ruta

Parámetro Tipo Descripción
iddeclaracion int ID de la declaración

Ejemplo de petición

curl -s "https://apientidades-pro.transparenciacanarias.org/apientidades/v1/declaraciones/5001/derecho-acceso/tabla" \
  -H "Authorization: Bearer $TOKEN" | jq .
import requests

BASE_URL = "https://apientidades-pro.transparenciacanarias.org/apientidades/v1"
headers = {"Authorization": f"Bearer {token}"}

response = requests.get(
    f"{BASE_URL}/declaraciones/5001/derecho-acceso/tabla",
    headers=headers
)
ejercicios = response.json()

for ejercicio in ejercicios:
    print(f"\nEjercicio {ejercicio['titulo']} (id: {ejercicio['idperiodo']})")
    print(f"Categorías: {[c['nombre'] for c in ejercicio['categorias']]}")
    for tipo in ejercicio['tipos']:
        if tipo['idtiporejilla'] == 0:  # Solo filas editables
            print(f"  Concepto '{tipo['nombre']}':")
            for valor in tipo['valores']:
                if valor['idcategoria'] != 99999:  # Excluir totales
                    print(f"    id={valor['id']}, idcategoria={valor['idcategoria']}, valor={valor['valor']}")
var response = await client.GetAsync($"{baseUrl}/declaraciones/5001/derecho-acceso/tabla");
var json = await response.Content.ReadAsStringAsync();
var ejercicios = JsonConvert.DeserializeObject<List<DaTablaDto>>(json);

foreach (var ejercicio in ejercicios)
{
    Console.WriteLine($"Ejercicio {ejercicio.Titulo} (id: {ejercicio.Idperiodo})");
    var editables = ejercicio.Tipos.Where(t => t.Idtiporejilla == 0);
    foreach (var tipo in editables)
    {
        Console.WriteLine($"  Concepto: {tipo.Nombre}");
        foreach (var valor in tipo.Valores.Where(v => v.Idcategoria != 99999))
            Console.WriteLine($"    id={valor.Id}, valor={valor.Valor}");
    }
}

Respuesta exitosa (200)

Array con un elemento por ejercicio vinculado a la evaluación de la declaración.

[
  {
    "idperiodo": 5,
    "titulo": "Ejercicio 2024",
    "inicio": "2024-01-01",
    "fin": "2024-12-31",
    "categorias": [
      { "idcategoria": 1, "nombre": "Presentadas" },
      { "idcategoria": 2, "nombre": "Admitidas" },
      { "idcategoria": 3, "nombre": "Resueltas estimadas" },
      { "idcategoria": 4, "nombre": "Resueltas desestimadas" },
      { "idcategoria": 99999, "nombre": "Total" }
    ],
    "tipos": [
      {
        "idtipo": 0,
        "nombre": "Total solicitudes a resolver",
        "desglosada": false,
        "idtiporejilla": 2,
        "valores": [
          { "id": 99999, "idcategoria": 1, "valor": 80 },
          { "id": 99999, "idcategoria": 2, "valor": 72 },
          { "id": 99999, "idcategoria": 3, "valor": 50 },
          { "id": 99999, "idcategoria": 4, "valor": 22 },
          { "id": 99999, "idcategoria": 99999, "valor": 224 }
        ]
      },
      {
        "idtipo": 1,
        "nombre": "Acceso a documentos",
        "desglosada": false,
        "idtiporejilla": 1,
        "valores": [
          { "id": 99999, "idcategoria": 1, "valor": 45 },
          { "id": 99999, "idcategoria": 2, "valor": 40 },
          { "id": 99999, "idcategoria": 3, "valor": 28 },
          { "id": 99999, "idcategoria": 4, "valor": 12 },
          { "id": 99999, "idcategoria": 99999, "valor": 125 }
        ]
      },
      {
        "idtipo": 10,
        "nombre": "Acceso integral",
        "desglosada": false,
        "idtiporejilla": 0,
        "valores": [
          { "id": 1001, "idcategoria": 1, "valor": 30 },
          { "id": 1002, "idcategoria": 2, "valor": 27 },
          { "id": 1003, "idcategoria": 3, "valor": 19 },
          { "id": 1004, "idcategoria": 4, "valor": 8 },
          { "id": 99999, "idcategoria": 99999, "valor": 84 }
        ]
      },
      {
        "idtipo": 11,
        "nombre": "Expediente personal",
        "desglosada": false,
        "idtiporejilla": 0,
        "valores": [
          { "id": 1005, "idcategoria": 1, "valor": 15 },
          { "id": 1006, "idcategoria": 2, "valor": 13 },
          { "id": 1007, "idcategoria": 3, "valor": 9 },
          { "id": 1008, "idcategoria": 4, "valor": 4 },
          { "id": 99999, "idcategoria": 99999, "valor": 41 }
        ]
      }
    ]
  }
]

Estructura del ejercicio

Campo Tipo Descripción
idperiodo int ID del ejercicio/período
titulo string Título descriptivo del ejercicio (ej: "Ejercicio 2024")
inicio string Fecha de inicio del ejercicio (ISO 8601, formato YYYY-MM-DD)
fin string Fecha de fin del ejercicio (ISO 8601, formato YYYY-MM-DD)
categorias array Columnas del cuadrante (tipos de resolución)
tipos array Filas del cuadrante (conceptos de solicitud y subtotales)

Campos de las categorías

Campo Tipo Descripción
idcategoria int ID de la categoría. El valor 99999 corresponde a la columna Total
nombre string Nombre de la categoría (ej: "Presentadas", "Resueltas estimadas")

Campos de los tipos (filas)

Campo Tipo Descripción
idtipo int ID del tipo o concepto
nombre string Nombre del concepto o subtotal
desglosada bool Si los conceptos de este grupo tienen desglose adicional
idtiporejilla int Tipo de fila: 0 = editable, 1 = subtotal de grupo, 2 = total general
valores array Celdas de esta fila, una por categoría más el total

Campos de los valores (celdas)

Campo Tipo Descripción
id int ID del registro — usar este valor como clave en el PUT. El valor 99999 indica una celda de total (no editar)
idcategoria int ID de la categoría (columna) a la que pertenece esta celda. El valor 99999 es el total de fila
valor int Número de solicitudes en esta celda

Tipos de fila (idtiporejilla)

Valor Significado Editable Qué hacer
0 Concepto individual Tomar el id de cada celda y enviarlo en el PUT
1 Subtotal de grupo No Ignorar — calculado por el sistema
2 Total general No Ignorar — calculado por el sistema

Solo editar celdas con idtiporejilla=0 e id≠99999

Las celdas con id=99999 son totales calculados. Las filas con idtiporejilla=1 o idtiporejilla=2 son subtotales. Enviar estos valores en el PUT no tiene efecto (se ignoran silenciosamente).

Flujo: GET tabla → PUT valores

import requests

BASE_URL = "https://apientidades-pro.transparenciacanarias.org/apientidades/v1"
headers = {
    "Authorization": f"Bearer {token}",
    "Content-Type": "application/json"
}

# 1. Obtener la tabla con todos los IDs
ejercicios = requests.get(
    f"{BASE_URL}/declaraciones/5001/derecho-acceso/tabla",
    headers=headers
).json()

# 2. Recopilar IDs editables y asignar nuevos valores
#    (aquí el sistema externo cruza con sus propios datos)
valores = {}
for ejercicio in ejercicios:
    for tipo in ejercicio["tipos"]:
        if tipo["idtiporejilla"] == 0:  # Solo filas editables
            for valor in tipo["valores"]:
                if valor["idcategoria"] != 99999:  # Excluir columna Total
                    # ← aquí cruzar con el valor real de vuestro sistema
                    valores[valor["id"]] = valor["valor"]  # o el nuevo valor

# 3. Enviar los valores actualizados
response = requests.put(
    f"{BASE_URL}/declaraciones/5001/derecho-acceso",
    headers=headers,
    json={"valores": valores}
)
print(response.json())

Errores posibles

Código Descripción
401 Token ausente, expirado o inválido
404 La declaración no existe, no pertenece a la entidad, o no tiene remisión activa