Saltar a contenido

Actualizar una obligación

PUT /apientidades/v1/declaraciones/{iddeclaracion}/pa/{idobligacion}

Actualiza los datos de una obligación individual de publicidad activa: enlaces, aclaraciones, opción de publicación y autoevaluación.

Parámetros de ruta

Parámetro Tipo Descripción
iddeclaracion int ID de la declaración
idobligacion int ID de la obligación (campo id del árbol PA, NO idobligacion)

Body de la petición

{
  "obligacionId": 7001,
  "enlaces": [
    {
      "url": "https://portal.entidad.es/transparencia/presupuestos",
      "valida": true,
      "orden": 0
    },
    {
      "url": "https://sede.entidad.es/presupuestos-2024",
      "valida": true,
      "orden": 1
    }
  ],
  "aclaraciones": "Publicado en ambos portales",
  "opcionPublicacion": 0,
  "noCumple": false,
  "autoevaluacion": [
    { "id": 456, "valor": 3 }
  ]
}

Tabla de campos del body

Campo Tipo Obligatorio Descripción
obligacionId int ID del ítem PA (campo id del GET /pa)
enlaces array No URLs donde se publica la información
enlaces[].url string URL completa (debe empezar por http:// o https://)
enlaces[].valida bool No Si la URL ha sido validada como accesible (default: false)
enlaces[].orden int No Orden de presentación, de 0 a 99 (default: 0)
aclaraciones string No Texto libre de aclaraciones (máximo 5.000 caracteres)
opcionPublicacion int Opción de publicación (0-3, ver tabla)
noCumple bool No Indica que la entidad declara no cumplir (default: false)
autoevaluacion array No Valores de autoevaluación por criterio
autoevaluacion[].id int ID del ítem de autoevaluación (campo id del array autoevaluacion[] del GET /pa, ej: 949162)
autoevaluacion[].valor int Valor discreto para el criterio (0 a 100; ver tabla de valores admitidos)

Opciones de publicación

Código Descripción Requiere enlaces
0 Publica información Sí (al menos 1 URL)
1 No publica por tipo de actividad No
2 No publica por otra razón No
3 No publica por carecer de la información No

Ejemplo de petición

curl -s -X PUT \
  "https://apientidades-pro.transparenciacanarias.org/apientidades/v1/declaraciones/5001/pa/7001" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "obligacionId": 7001,
    "enlaces": [
      {
        "url": "https://portal.entidad.es/transparencia/presupuestos",
        "valida": true,
        "orden": 0
      }
    ],
    "aclaraciones": "Presupuestos publicados en el portal",
    "opcionPublicacion": 0,
    "noCumple": false,
    "autoevaluacion": [
      { "id": 456, "valor": 5 },
      { "id": 457, "valor": 2 }
    ]
  }' | jq .
import requests

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

payload = {
    "obligacionId": 7001,
    "enlaces": [
        {
            "url": "https://portal.entidad.es/transparencia/presupuestos",
            "valida": True,
            "orden": 0
        }
    ],
    "aclaraciones": "Presupuestos publicados en el portal",
    "opcionPublicacion": 0,
    "noCumple": False,
    "autoevaluacion": [
        {"id": 456, "valor": 5},
        {"id": 457, "valor": 2}
    ]
}

response = requests.put(
    f"{BASE_URL}/declaraciones/5001/pa/7001",
    headers=headers,
    json=payload
)
print(response.json())
var payload = new
{
    obligacionId = 7001,
    enlaces = new[]
    {
        new { url = "https://portal.entidad.es/transparencia/presupuestos", valida = true, orden = 0 }
    },
    aclaraciones = "Presupuestos publicados en el portal",
    opcionPublicacion = 0,
    noCumple = false,
    autoevaluacion = new[]
    {
        new { id = 456, valor = 5 },
        new { id = 457, valor = 2 }
    }
};

var content = new StringContent(
    JsonConvert.SerializeObject(payload),
    Encoding.UTF8,
    "application/json"
);

var response = await client.PutAsync(
    $"{baseUrl}/declaraciones/5001/pa/7001", content);
Console.WriteLine(await response.Content.ReadAsStringAsync());

Respuesta exitosa (200)

{
  "message": "Obligación actualizada correctamente."
}

Validaciones

Validación Límite Error
obligacionId existe en la declaración Verificado contra árbol PA real 404
opcionPublicacion en rango 0-3 400
Cada enlace tiene URL No vacía 400
URL bien formada Empieza por http:// o https:// 400
Longitud URL Max 2.048 caracteres 400
Orden de enlace 0-99 400
Cantidad de enlaces Max 10 por obligación 400
Aclaraciones Max 5.000 caracteres 400
Valor autoevaluación 0 a 100 400
ID autoevaluación > 0 400
Cantidad criterios autoevaluación Max 10 400

Estado de la declaración

Este endpoint solo funciona cuando la declaración está en estado NoPresentada (1) o AlegacionesAbiertas (4). En otros estados, devuelve error 400.

Errores posibles

Código Descripción
400 Validación fallida (ver tabla de validaciones)
401 Token ausente, expirado o inválido
404 La declaración u obligación no existe o no pertenece a la entidad

Actualización masiva

Si necesita actualizar muchas obligaciones a la vez, use el endpoint bulk que permite enviar hasta 500 ítems en una sola petición transaccional.