Reporte de Auditoría de Configuración
Rastro de auditoría unificado de ediciones y eliminaciones en las entidades de configuración — cuentas, dispositivos, personal, catálogos y registros del portal.
/apidev/v1/audit/configResumen
Devuelve el rastro de auditoría de los cambios realizados en las entidades de configuración. Cada fila registra quién cambió qué, cuándo, desde dónde y las diferencias exactas a nivel de campo (valor anterior → valor nuevo).
Solo se registran modificaciones y eliminaciones — las creaciones nunca se auditan. Usá este reporte para investigar quién editó una cuenta, cuándo se desactivó una lista de precios o qué usuario eliminó una configuración del portal.
- Filtro de entidad — acotá a un único tipo de configuración (cuenta, dispositivo, personal, etc.)
- Filtro de acción — conservá solo las ediciones o solo las eliminaciones
- Filtro de origen — observá si el cambio provino del panel web, la app móvil, una integración externa, una importación masiva, una automatización o un proceso interno
- Filtros de actor y objetivo — enfocate en un usuario específico o en un registro de entidad específico
- Búsqueda de texto libre — coincidí contra el nombre de la entidad y el contexto del cambio
Solicitud
Encabezados de la solicitud
Every request to a protected endpoint requires these headers:
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer token obtained from the Login endpoint. Format: Bearer <token> |
X-API-Key | Yes | Company integration key provided during onboarding. Format: gtk_xxx... |
tenant | Yes | Your assigned tenant domain (default: geotareas.com) — always send your assigned tenant |
Content-Type | Conditional | application/json — required for POST and PUT requests |
Parámetros de consulta
| Parámetro | Tipo | Requerido | Predeterminado | Descripción |
|---|---|---|---|---|
startdate | string | Sí | — | Fecha-hora de inicio en ISO 8601 (ej. 2026-03-01T00:00:00). |
enddate | string | Sí | — | Fecha-hora de fin en ISO 8601. Rango máximo 92 días desde startdate. |
entity | string | No | Todas | Tipo de entidad de configuración. Uno de los valores de Entidad. |
action | string | No | Todas | Tipo de cambio. Uno de los valores de Acción. |
source | string | No | Todos | Origen del cambio. Uno de los valores de Origen. |
user_id | string | No | Todos | Restringe a los cambios realizados por el ID de un usuario (actor) específico. |
entity_id | string | No | Todos | Restringe a los cambios que afectan al ID de un registro de entidad específico. |
search | string | No | — | Búsqueda de texto libre contra el nombre de la entidad y el contexto del cambio. |
limit | integer | No | 25 | Cantidad de registros por página (1–100). Un valor fuera de ese rango devuelve 400 VALIDATION_ERROR: no se ajusta en silencio. |
offset | integer | No | 0 | Cantidad de registros a omitir para la paginación. |
Valores de Entidad
El filtro entity acepta uno de los siguientes tipos de entidad de configuración:
| Código | Descripción |
|---|---|
CUENTA | Cuenta (registro raíz). |
DISPOSITIVO | Dispositivo / vehículo. |
PERSONAL | Personal / conductor. |
PLANTILLA_COM | Plantilla de comunicación (registro raíz). |
PLANTILLA_ESTADO | Entrada de estado de una plantilla de comunicación (sub-recurso de PLANTILLA_COM). |
CAMPO_DINAMICO | Definición / esquema de campo dinámico. |
PROCEDENCIA | Entrada del catálogo de procedencia / origen. |
PRODUCTO | Entrada del catálogo de productos. |
COBERTURA | Entrada de cobertura (sub-recurso de PRODUCTO). |
PRESTACION | Tipo de servicio (clasificación). |
CAUSA | Causa (clasificación). |
SUBCAUSA | Subcausa (clasificación, sub-recurso de CAUSA). |
MOTIVO | Motivo de servicio. |
FINSERVICIO | Código de finalización de servicio. |
RECHAZO | Código de rechazo de servicio. |
ESTADO_TAREA | Estado de tarea (catálogo configurable). |
PORTAL_FACTURA | Factura de prestador (Portal). |
PORTAL_LIQUIDACION | Liquidación de prestador (Portal). |
PORTAL_CONFIG | Configuración del portal. |
Valores de Acción
El filtro action acepta uno de los siguientes. Las creaciones no se auditan.
| Código | Descripción |
|---|---|
EDITAR | Edición de campo — se modificaron uno o más campos de la entidad (incluye la desactivación cuando viaja como un cambio de campo en el formulario de edición). |
ELIMINAR | Eliminación — borrado, desactivación o desvinculación de la entidad o de un sub-recurso. |
Valores de Origen
El filtro source acepta uno de los siguientes orígenes:
| Código | Descripción |
|---|---|
WEB | Cambio realizado desde el panel web. |
MDT | Cambio realizado desde la app móvil. |
API_EXTERNA | Cambio realizado a través de la API externa / integraciones. |
IMPORT | Cambio realizado por el proceso de importación masiva. |
WORKFLOW | Cambio realizado por una automatización de flujo de trabajo. |
SISTEMA | Cambio realizado por un proceso interno del sistema (cron, limpieza, mantenimiento). |
Ejemplos de código
- cURL
- JavaScript
- Python
curl -s -H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT" \
"https://$TENANT/apidev/v1/audit/config?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&entity=CUENTA&action=EDITAR&source=WEB&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/audit/config?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&entity=CUENTA&action=EDITAR&source=WEB&limit=25`,
{
headers: {
'Authorization': `Bearer ${token}`,
'X-API-Key': apiKey,
'tenant': TENANT,
},
}
);
const data = await res.json();
import requests
response = requests.get(
f"https://{TENANT}/apidev/v1/audit/config",
headers={"Authorization": f"Bearer {token}", "X-API-Key": api_key, "tenant": TENANT},
params={
"startdate": "2026-03-01T00:00:00",
"enddate": "2026-03-31T23:59:59",
"entity": "CUENTA",
"action": "EDITAR",
"source": "WEB",
"limit": 25,
},
)
data = response.json()
Respuesta
Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
audit_id | string | Identificador del registro de auditoría. |
timestamp | string | Cuándo se registró el cambio. |
entity | string | Tipo de entidad de configuración. Uno de los valores de Entidad. |
entity_id | string | null | Identificador del registro de entidad afectado. |
entity_name | string | Nombre legible de la entidad afectada. |
action | string | Tipo de cambio. Uno de los valores de Acción. |
source | string | Origen del cambio. Uno de los valores de Origen. |
user_id | string | null | Identificador del usuario que realizó el cambio. |
user_name | string | Nombre del usuario que realizó el cambio. |
is_admin | boolean | Si el actor es un administrador de la plataforma. |
changes | array | Diferencias a nivel de campo (ver más abajo). |
context | object | null | Contexto adicional capturado con el cambio. |
Cada elemento en changes tiene la siguiente estructura:
| Campo | Tipo | Descripción |
|---|---|---|
field | string | Nombre del campo que cambió. |
label | string | Nombre legible del campo. |
old | string | null | Valor anterior. |
new | string | null | Valor nuevo. |
Ejemplo de respuesta
{
"success": true,
"data": [
{
"audit_id": "982710394857201664",
"timestamp": "2026-03-05T16:53:00",
"entity": "CUENTA",
"entity_id": "982710394857100200",
"entity_name": "Distribuidora del Norte S.A.",
"action": "EDITAR",
"source": "WEB",
"user_id": "982710394857009999",
"user_name": "Laura Hernandez",
"is_admin": false,
"changes": [
{
"field": "cuetel",
"label": "Phone",
"old": "555-1234",
"new": "555-9876"
}
],
"context": null
},
{
"audit_id": "982710394857201665",
"timestamp": "2026-03-06T09:12:00",
"entity": "PRODUCTO",
"entity_id": "982710394857100455",
"entity_name": "Roadside Assistance — Premium",
"action": "ELIMINAR",
"source": "IMPORT",
"user_id": "982710394857009100",
"user_name": "System Import",
"is_admin": true,
"changes": [
{
"field": "proestado",
"label": "Status",
"old": "A",
"new": "I"
}
],
"context": null
}
],
"meta": {
"total": 2,
"limit": 25,
"offset": 0
}
}
Errores
| Código | HTTP | Descripción |
|---|---|---|
VALIDATION_ERROR | 400 | Parámetros inválidos (ej. el rango de fechas supera los 92 días, o un valor desconocido de entity / action / source). |
UNAUTHORIZED | 401 | tenant / Authorization / X-API-Key faltante, inválido o expirado |
FORBIDDEN | 403 | El usuario carece del permiso requerido. |
RATE_LIMITED | 429 | Se superaron las 10 req/min. |
INTERNAL_ERROR | 500 | Error inesperado del servidor. |