Reporte de Auditoría de Tareas
Rastro de auditoría a nivel de campo para tareas: quién cambió qué, cuándo y desde dónde, incluyendo cambios de estado, asignaciones y ediciones de campos dinámicos.
/apidev/v1/audit/tasksResumen
Devuelve el historial de auditoría de las tareas durante el período seleccionado. Cada registro captura un único evento de cambio sobre una tarea — qué acción ocurrió, quién la disparó, desde qué canal y los campos exactos que cambiaron (valor anterior → valor nuevo), incluyendo campos dinámicos (OAV), transiciones de estado y asignaciones.
- Filtro de acción — acotá el rastro a un único tipo de evento (ej. solo cambios de estado, solo cancelaciones)
- Filtro de origen — acotá por el canal donde se originó el cambio (panel web, app móvil, API externa, automatización, etc.)
- Búsqueda de tarea — localizá el rastro de una tarea por su id interno, número de servicio, número externo o número de asistencia
- Filtro de usuario — observá todos los cambios realizados por un usuario específico
Este rastro de auditoría se registra únicamente para las compañías que tienen activada la auditoría de tareas. Si está desactivada, el endpoint devuelve una lista vacía sin error — simplemente no hay historial para mostrar.
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. |
action | string | No | Todas las acciones | Código de acción único. Ver Valores de acción. |
source | string | No | Todos los orígenes | Código de canal de origen único. Ver Valores de origen. |
user_id | string | No | Todos los usuarios | Filtra por el usuario que realizó el cambio. |
task_id | string | No | — | Identificador interno de la tarea. |
service_number | string | No | — | Número de servicio (coincidencia parcial). |
external_number | string | No | — | Número externo de tarea de una integración (coincidencia parcial). |
assistance_number | string | No | — | Número de asistencia (coincidencia parcial). |
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 acción
Pasá uno de estos códigos en action para restringir el rastro a un único tipo de evento. La respuesta también devuelve el código activo en el campo action de cada registro.
| Código | Significado |
|---|---|
CREAR | La tarea fue creada. |
EDITAR | Se editaron los datos de la tarea (campos estáticos). |
CAMBIO_ESTADO | Cambio de estado (ej. de recibida a asignada, de asignada a aceptada). |
ASIGNAR | Se asignó un conductor, vehículo o prestador. |
DESASIGNAR | Se desasignó un conductor, vehículo o prestador. |
RESERVAR | La tarea fue reservada. |
DESRESERVAR | Se liberó la reserva de la tarea. |
CANCELAR | La tarea fue cancelada (individualmente o en masa). |
FINALIZAR | La tarea fue finalizada (individualmente o en masa). |
OAV_CREAR | Se crearon valores de campos dinámicos (OAV). |
OAV_EDITAR | Se editaron valores de campos dinámicos (OAV). |
MIGRAR_HISTORIC | La tarea fue movida al archivo histórico. |
ACK | Se recibió un acuse / no acuse de recibo desde la app móvil. |
REASIGNAR | La tarea fue reasignada a un conductor, vehículo o prestador diferente. |
Valores de origen
Pasá uno de estos códigos en source para restringir el rastro a un único canal de origen. La respuesta también devuelve el código activo en el campo source de cada registro.
| Código | Significado |
|---|---|
WEB | Panel web (operador / despachador). |
MDT | App móvil (conductor de campo). |
API_EXTERNA | API externa o integración. |
IMPORT | Proceso de importación masiva. |
RUTAFIJA | Programador de rutas fijas. |
WORKFLOW | Automatización de flujo de trabajo. |
IA_DESPACHO | Despacho automático por IA. |
SISTEMA | Proceso interno del sistema (tareas programadas, 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/tasks?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&action=CAMBIO_ESTADO&source=MDT&limit=25"
const res = await fetch(
`https://${TENANT}/apidev/v1/audit/tasks?startdate=2026-03-01T00:00:00&enddate=2026-03-31T23:59:59&action=CAMBIO_ESTADO&source=MDT&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/tasks",
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",
"action": "CAMBIO_ESTADO",
"source": "MDT",
"limit": 25,
},
)
data = response.json()
Respuesta
Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
audit_id | string | Identificador del registro de auditoría. |
task_id | string | Identificador interno de la tarea. |
service_number | string | null | Número de servicio de la tarea. |
external_number | string | null | Número externo de tarea de una integración. |
assistance_number | string | null | Número de asistencia de la tarea. |
audit_date | string | Marca de tiempo del evento de cambio. |
user_id | string | null | Identificador del usuario que realizó el cambio. |
code | string | null | Código interno del evento. |
action | string | Código de acción. Ver Valores de acción. |
source | string | Código de canal de origen. Ver Valores de origen. |
actor | object | null | Quién realizó el cambio: usuid, usunom, opcional conid/connom, opcional integration. |
changes | array | Campos estáticos que cambiaron. Cada elemento: field, old, new, opcional label, oldLabel, newLabel. |
oav_changes | array | Campos dinámicos (OAV) que cambiaron. Cada elemento: itemId, itemName, itemType, old, new. |
status | object | null | Para cambios de estado: anterior, nuevo, opcional nuevoNom. |
assignment | object | null | Para asignaciones: conid/connom, vehid/vehnom, preid/prenom. |
context | object | null | Contexto de la solicitud: opcional ip, endpoint, jobId, motivo e identificadores relacionados. |
meta | object | null | Metadatos adicionales de formato libre. |
Ejemplo de respuesta
{
"success": true,
"data": [
{
"audit_id": "982710394857201664",
"task_id": "982710394857100200",
"service_number": "100245",
"external_number": "EXT-77123",
"assistance_number": "A-55012",
"audit_date": "2026-03-12T09:41:00",
"user_id": "982710394857201700",
"code": null,
"action": "CAMBIO_ESTADO",
"source": "MDT",
"actor": {
"usuid": "982710394857201700",
"usunom": "Carlos Martinez",
"conid": "982710394857300100",
"connom": "Carlos Martinez"
},
"changes": [],
"oav_changes": [],
"status": {
"anterior": "ASI",
"nuevo": "ACE",
"nuevoNom": "Accepted"
},
"assignment": null,
"context": {
"ip": "201.45.12.8",
"endpoint": "/api/tarea/estado"
},
"meta": null
},
{
"audit_id": "982710394857201665",
"task_id": "982710394857100201",
"service_number": "100246",
"external_number": null,
"assistance_number": "A-55013",
"audit_date": "2026-03-12T10:05:00",
"user_id": "982710394857201800",
"code": null,
"action": "EDITAR",
"source": "WEB",
"actor": {
"usuid": "982710394857201800",
"usunom": "Laura Hernandez"
},
"changes": [
{
"field": "serconid",
"old": "982710394857300100",
"new": "982710394857300101",
"label": "Driver",
"oldLabel": "Carlos Martinez",
"newLabel": "Diego Fuentes"
}
],
"oav_changes": [],
"status": null,
"assignment": null,
"context": {
"ip": "190.12.4.55",
"endpoint": "/api/tarea/update"
},
"meta": 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 código action/source desconocido). |
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. |