Enviar datos estadísticos
Actualiza los valores numéricos de las celdas de la tabla de solicitudes de derecho de acceso. El body es un diccionario donde cada clave es el id de una celda obtenido del GET /derecho-acceso/tabla y el valor es el número de solicitudes.
Obtener los IDs primero
Antes de enviar datos, consulte GET /derecho-acceso/tabla para obtener la estructura completa con los IDs de cada celda editable (idtiporejilla=0, id≠99999).
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
iddeclaracion |
int | ID de la declaración |
Body de la petición
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
valores |
object | Sí | Diccionario id_celda → valor_numerico. Las claves son strings que representan el id de cada celda del GET |
Ejemplo completo: GET tabla → PUT valores
# 1. Obtener la tabla con los IDs
curl -s "https://apientidades-pro.transparenciacanarias.org/apientidades/v1/declaraciones/5001/derecho-acceso/tabla" \
-H "Authorization: Bearer $TOKEN" | jq '.[]'
# 2. Enviar valores (usando los IDs obtenidos del GET)
curl -s -X PUT \
"https://apientidades-pro.transparenciacanarias.org/apientidades/v1/declaraciones/5001/derecho-acceso" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"valores": {
"1001": 30,
"1002": 27,
"1003": 19,
"1004": 8
}
}' | jq .
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 y valores actuales
ejercicios = requests.get(
f"{BASE_URL}/declaraciones/5001/derecho-acceso/tabla",
headers=headers
).json()
# 2. Construir el diccionario de valores a enviar
# Solo celdas editables: idtiporejilla=0 e idcategoria≠99999
valores = {}
for ejercicio in ejercicios:
for tipo in ejercicio["tipos"]:
if tipo["idtiporejilla"] == 0:
for celda in tipo["valores"]:
if celda["idcategoria"] != 99999:
# Aquí asignar el valor real de vuestro sistema
valores[str(celda["id"])] = celda["valor"]
# 3. Enviar
response = requests.put(
f"{BASE_URL}/declaraciones/5001/derecho-acceso",
headers=headers,
json={"valores": valores}
)
print(response.json())
// 1. Obtener la tabla
var getResponse = await client.GetAsync($"{baseUrl}/declaraciones/5001/derecho-acceso/tabla");
var ejercicios = JsonConvert.DeserializeObject<List<DaTablaDto>>(
await getResponse.Content.ReadAsStringAsync());
// 2. Construir el diccionario de valores editables
var valores = new Dictionary<int, int>();
foreach (var ejercicio in ejercicios)
foreach (var tipo in ejercicio.Tipos.Where(t => t.Idtiporejilla == 0))
foreach (var celda in tipo.Valores.Where(v => v.Idcategoria != 99999))
valores[celda.Id] = celda.Valor; // o el nuevo valor de vuestro sistema
// 3. Enviar
var payload = new { valores };
var content = new StringContent(
JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json");
var putResponse = await client.PutAsync(
$"{baseUrl}/declaraciones/5001/derecho-acceso", content);
Console.WriteLine(await putResponse.Content.ReadAsStringAsync());
Respuesta exitosa (200)
| Campo | Tipo | Descripción |
|---|---|---|
message |
string | Mensaje descriptivo con el número de registros actualizados |
count |
int | Número de celdas actualizadas |
Validaciones
| Validación | Límite | Error |
|---|---|---|
id de celda |
Debe ser > 0 | 400 "ID de item inválido" |
| Valor no negativo | >= 0 | 400 "valor no puede ser negativo" |
| Valor máximo | <= 999.999 | 400 "excede el máximo razonable" |
| Cantidad de ítems | Máx 2.000 por petición | 400 "Máximo 2000 ítems" |
valores vacío |
Al menos 1 entrada | 400 "Debe proporcionar al menos un valor" |
| Celdas de otra remisión | Se ignoran silenciosamente | Sin error, count no las incluye |
Ítems ignorados
Si se envía un id que no pertenece a la declaración o remisión activa, se ignora silenciosamente (no genera error). Esto permite enviar un volcado completo sin necesidad de filtrar previamente por ejercicio.
Rendimiento
La actualización ejecuta un UPDATE individual por celda. Para declaraciones con muchos ejercicios (>1.000 celdas), la petición puede tardar varios segundos. Se recomienda enviar solo las celdas cuyos valores hayan cambiado.
Errores posibles
| Código | Descripción |
|---|---|
400 |
Validación fallida (ver tabla) |
401 |
Token ausente, expirado o inválido |
404 |
La declaración no existe, no pertenece a la entidad, o no tiene remisión activa |
Estado de la declaración
Solo funciona cuando la declaración está en estado NoPresentada (1) o AlegacionesAbiertas (4).