Tasvalúo SAI

Configuración

Parámetros del motor de evaluación que se pueden ajustar sin desplegar.

Radios de búsqueda, umbrales y tolerancias que usa el motor. Un cambio aplica a las evaluaciones siguientes, no a las que ya terminaron. Requieren config:read o config:write.

GET/v1/configuracionesconfig:read

Parámetros operativos vigentes

PUT/v1/configuraciones/{clave}config:write

Cambia el valor de un parámetro

POST/v1/configuraciones/{clave}/resetconfig:write

Restablece un parámetro a su valor de fábrica

GET/v1/configuraciones/{clave}/historialconfig:read

Bitácora de cambios de un parámetro

Los parámetros de la certificación

Dos parámetros deciden cuándo se puede emitir el certificado:

ClavePor defectoEfecto
evaluacion.max_criticos_certificacion0Hallazgos críticos sin justificar que se toleran. Por encima: 409 CRITICOS_PENDIENTES.
evaluacion.max_pendientes_certificacion0Hallazgos de cualquier severidad sin justificar que se toleran. Por encima: 409 HALLAZGOS_PENDIENTES.

El segundo siempre cuenta también los críticos: subir sólo el primero no relaja nada si el segundo sigue en 0.

Consultar

Listar parámetros

GET/v1/configuracionesconfig:read

Parámetros operativos vigentes

Parámetros que el motor lee al inicio de cada evaluación: el radio de cobertura, los umbrales de población, las tolerancias y los criterios de certificación.

Parámetros
CampoTipoDescripción
?grupostringEn la query. Sólo los parámetros de ese grupo (texto libre, p. ej. mercado, antecedentes o evaluacion). Un grupo desconocido devuelve una lista vacía.
Petición
curl "$API_URL/v1/configuraciones?grupo=mercado" \
  -H "x-api-key: $API_KEY"
Respuesta

200Parámetros vigentes.

{
  "configuraciones": [
    {
      "clave": "mercado.radio_km_default",
      "grupo": "mercado",
      "etiqueta": "Radio de cobertura por defecto",
      "descripcion": "Radio inicial de búsqueda de comparables de mercado alrededor del sujeto.",
      "tipo": "numero",
      "valor": 8,
      "valor_default": 5,
      "unidad": "km",
      "min": 0.5,
      "max": 50,
      "editable": true,
      "actualizado_por": "Ana Pérez",
      "updated_at": "2026-09-14T16:20:00.000Z"
    },
    {
      "clave": "evaluacion.max_pendientes_certificacion",
      "grupo": "evaluacion",
      "etiqueta": "Hallazgos sin justificar permitidos para certificar",
      "descripcion": "Máximo de hallazgos de cualquier severidad sin justificar que aún permiten emitir el certificado.",
      "tipo": "numero",
      "valor": 0,
      "valor_default": 0,
      "unidad": null,
      "min": 0,
      "max": 100,
      "editable": true,
      "actualizado_por": null,
      "updated_at": "2026-09-05T10:00:00.000Z"
    }
  ]
}
Errores
HTTPCuándo ocurre
401API Key ausente, inválida, revocada o expirada.
403La API Key es válida pero le faltan permisos: Faltan scopes: <scope>.
429Se superó el límite de peticiones (rate limit).

Historial de un parámetro

GET/v1/configuraciones/{clave}/historialconfig:read

Bitácora de cambios de un parámetro

Los últimos 20 cambios de la clave, del más reciente al más antiguo. Una clave desconocida devuelve una lista vacía.

Parámetros
CampoTipoDescripción
claverequeridostringEn la ruta. Clave del parámetro, p. ej. mercado.radio_km_default.
Petición
curl "$API_URL/v1/configuraciones/mercado.radio_km_default/historial" \
  -H "x-api-key: $API_KEY"
Respuesta

200Últimos cambios registrados.

{
  "historial": [
    {
      "valor_anterior": 5,
      "valor_nuevo": 8,
      "actor_id": "usr_12",
      "actor_nombre": "Ana Pérez",
      "created_at": "2026-09-14T16:20:00.000Z"
    }
  ]
}
Errores
HTTPCuándo ocurre
401API Key ausente, inválida, revocada o expirada.
403La API Key es válida pero le faltan permisos: Faltan scopes: <scope>.
429Se superó el límite de peticiones (rate limit).

Modificar

Cada cambio queda en el historial con el actor que envíes: indícalo siempre para saber quién cambió qué.

Cambiar un valor

PUT/v1/configuraciones/{clave}config:write

Cambia el valor de un parámetro

Valida el valor contra el tipo y los límites min/max de la clave y registra el cambio en el historial. Los cambios aplican a las evaluaciones nuevas: nada recalcula resultados ya almacenados.

Parámetros
CampoTipoDescripción
claverequeridostringEn la ruta. Clave del parámetro, p. ej. mercado.radio_km_default.
Cuerpo application/json
CampoTipoDescripción
valorrequeridonumber | string | boolean | objectNuevo valor; debe cuadrar con el tipo de la clave (numero, texto, booleano o json). No puede ser null.
actorobjectPersona que hace el cambio, para el historial.
actor.idstringId del usuario en tu aplicación. (máx. 120 caracteres)
actor.nombrestring(máx. 160 caracteres)
Petición
curl -X PUT "$API_URL/v1/configuraciones/mercado.radio_km_default" \
  -H "x-api-key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "valor": 8,
  "actor": {
    "id": "usr_12",
    "nombre": "Ana Pérez"
  }
}'
Respuesta

200Parámetro actualizado.

{
  "clave": "mercado.radio_km_default",
  "grupo": "mercado",
  "etiqueta": "Radio de cobertura por defecto",
  "descripcion": "Radio inicial de búsqueda de comparables de mercado alrededor del sujeto.",
  "tipo": "numero",
  "valor": 8,
  "valor_default": 5,
  "unidad": "km",
  "min": 0.5,
  "max": 50,
  "editable": true,
  "actualizado_por": "Ana Pérez",
  "updated_at": "2026-09-14T16:20:00.000Z"
}
Errores
HTTPCuándo ocurre
400Cuerpo o parámetros inválidos. message es un arreglo con un texto por problema (campo faltante, tipo incorrecto o campo no permitido). valor es obligatorio y no puede ser null; actor.id admite hasta 120 caracteres y actor.nombre hasta 160.
401API Key ausente, inválida, revocada o expirada.
403La API Key es válida pero le faltan permisos: Faltan scopes: <scope>.
404La clave no existe: La configuración '<clave>' no existe.
409El parámetro no es editable (CONFIGURACION_NO_EDITABLE).
422El valor no cuadra con la clave: '<clave>' espera un número, no puede ser menor que <min>, no puede ser mayor que <max>, espera true o false, espera texto o espera un objeto JSON.
429Se superó el límite de peticiones (rate limit).

Volver al valor por defecto

POST/v1/configuraciones/{clave}/resetconfig:write

Restablece un parámetro a su valor de fábrica

Vuelve a poner valor_default como valor vigente y registra el cambio en el historial. El cuerpo es opcional.

Parámetros
CampoTipoDescripción
claverequeridostringEn la ruta. Clave del parámetro, p. ej. mercado.radio_km_default.
Cuerpo application/json
CampoTipoDescripción
actorobjectPersona que hace el cambio, para el historial.
actor.idstringId del usuario en tu aplicación. (máx. 120 caracteres)
actor.nombrestring(máx. 160 caracteres)
Petición
curl -X POST "$API_URL/v1/configuraciones/mercado.radio_km_default/reset" \
  -H "x-api-key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "actor": {
    "id": "usr_12",
    "nombre": "Ana Pérez"
  }
}'
Respuesta

201Parámetro restablecido.

{
  "clave": "mercado.radio_km_default",
  "grupo": "mercado",
  "etiqueta": "Radio de cobertura por defecto",
  "descripcion": "Radio inicial de búsqueda de comparables de mercado alrededor del sujeto.",
  "tipo": "numero",
  "valor": 5,
  "valor_default": 5,
  "unidad": "km",
  "min": 0.5,
  "max": 50,
  "editable": true,
  "actualizado_por": "Ana Pérez",
  "updated_at": "2026-09-14T16:20:00.000Z"
}
Errores
HTTPCuándo ocurre
400Cuerpo o parámetros inválidos. message es un arreglo con un texto por problema (campo faltante, tipo incorrecto o campo no permitido). actor.id admite hasta 120 caracteres y actor.nombre hasta 160.
401API Key ausente, inválida, revocada o expirada.
403La API Key es válida pero le faltan permisos: Faltan scopes: <scope>.
404La clave no existe: La configuración '<clave>' no existe.
429Se superó el límite de peticiones (rate limit).

On this page