Saltar al contenido principal

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.

GET/apidev/v1/audit/tasks
PermisoAPICLI_AUDITORIA_TAREAS
Límite de solicitudes10 req/min
Caché60s
Rango máximo92 días

Resumen​

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
La auditoría debe habilitarse por compañía

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:

HeaderRequiredDescription
AuthorizationYesBearer token obtained from the Login endpoint. Format: Bearer <token>
X-API-KeyYesCompany integration key provided during onboarding. Format: gtk_xxx...
tenantYesYour assigned tenant domain (default: geotareas.com) — always send your assigned tenant
Content-TypeConditionalapplication/json — required for POST and PUT requests

Parámetros de consulta​

ParámetroTipoRequeridoPredeterminadoDescripción
startdatestringSí—Fecha-hora de inicio en ISO 8601 (ej. 2026-03-01T00:00:00).
enddatestringSí—Fecha-hora de fin en ISO 8601. Rango máximo 92 días desde startdate.
actionstringNoTodas las accionesCódigo de acción único. Ver Valores de acción.
sourcestringNoTodos los orígenesCódigo de canal de origen único. Ver Valores de origen.
user_idstringNoTodos los usuariosFiltra por el usuario que realizó el cambio.
task_idstringNo—Identificador interno de la tarea.
service_numberstringNo—Número de servicio (coincidencia parcial).
external_numberstringNo—Número externo de tarea de una integración (coincidencia parcial).
assistance_numberstringNo—Número de asistencia (coincidencia parcial).
limitintegerNo25Cantidad de registros por página (1–100). Un valor fuera de ese rango devuelve 400 VALIDATION_ERROR: no se ajusta en silencio.
offsetintegerNo0Cantidad 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ódigoSignificado
CREARLa tarea fue creada.
EDITARSe editaron los datos de la tarea (campos estáticos).
CAMBIO_ESTADOCambio de estado (ej. de recibida a asignada, de asignada a aceptada).
ASIGNARSe asignó un conductor, vehículo o prestador.
DESASIGNARSe desasignó un conductor, vehículo o prestador.
RESERVARLa tarea fue reservada.
DESRESERVARSe liberó la reserva de la tarea.
CANCELARLa tarea fue cancelada (individualmente o en masa).
FINALIZARLa tarea fue finalizada (individualmente o en masa).
OAV_CREARSe crearon valores de campos dinámicos (OAV).
OAV_EDITARSe editaron valores de campos dinámicos (OAV).
MIGRAR_HISTORICLa tarea fue movida al archivo histórico.
ACKSe recibió un acuse / no acuse de recibo desde la app móvil.
REASIGNARLa 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ódigoSignificado
WEBPanel web (operador / despachador).
MDTApp móvil (conductor de campo).
API_EXTERNAAPI externa o integración.
IMPORTProceso de importación masiva.
RUTAFIJAProgramador de rutas fijas.
WORKFLOWAutomatización de flujo de trabajo.
IA_DESPACHODespacho automático por IA.
SISTEMAProceso interno del sistema (tareas programadas, mantenimiento).

Ejemplos de código​

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"

Respuesta​

Campos de la respuesta​

CampoTipoDescripción
audit_idstringIdentificador del registro de auditoría.
task_idstringIdentificador interno de la tarea.
service_numberstring | nullNúmero de servicio de la tarea.
external_numberstring | nullNúmero externo de tarea de una integración.
assistance_numberstring | nullNúmero de asistencia de la tarea.
audit_datestringMarca de tiempo del evento de cambio.
user_idstring | nullIdentificador del usuario que realizó el cambio.
codestring | nullCódigo interno del evento.
actionstringCódigo de acción. Ver Valores de acción.
sourcestringCódigo de canal de origen. Ver Valores de origen.
actorobject | nullQuién realizó el cambio: usuid, usunom, opcional conid/connom, opcional integration.
changesarrayCampos estáticos que cambiaron. Cada elemento: field, old, new, opcional label, oldLabel, newLabel.
oav_changesarrayCampos dinámicos (OAV) que cambiaron. Cada elemento: itemId, itemName, itemType, old, new.
statusobject | nullPara cambios de estado: anterior, nuevo, opcional nuevoNom.
assignmentobject | nullPara asignaciones: conid/connom, vehid/vehnom, preid/prenom.
contextobject | nullContexto de la solicitud: opcional ip, endpoint, jobId, motivo e identificadores relacionados.
metaobject | nullMetadatos 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ódigoHTTPDescripción
VALIDATION_ERROR400Parámetros inválidos (ej. el rango de fechas supera los 92 días, o un código action/source desconocido).
UNAUTHORIZED401tenant / Authorization / X-API-Key faltante, inválido o expirado
FORBIDDEN403El usuario carece del permiso requerido.
RATE_LIMITED429Se superaron las 10 req/min.
INTERNAL_ERROR500Error inesperado del servidor.