> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ugps.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Editar una tarea del catálogo

> Edición parcial. Editar una tarea base cambia sólo la copia de la empresa. Un nombre nuevo también retitula las tareas de pauta que la usan. Responde 400 con el mismo código que crear si el código o el nombre chocan.



## OpenAPI

````yaml /openapi.json put /api/maintenance/task-definitions/{id}
openapi: 3.0.0
info:
  title: UGPS Atlas API
  version: 1.0.0
  description: >-
    Documentación de la API REST principal de UGPS Atlas (plataforma de rastreo
    GPS)
servers:
  - url: https://api.ugps.io
    description: Servidor de producción
security:
  - bearerAuth: []
  - cookieAuth: []
tags:
  - name: Auth - Autenticación
    description: Operaciones de autenticación
  - name: Usuarios - Usuarios
    description: Operaciones relacionadas con usuarios
  - name: Usuarios - Roles
    description: Operaciones relacionadas con roles
  - name: Usuarios - Permisos
    description: Operaciones relacionadas con permisos
  - name: Activos - Assets
    description: Operaciones relacionadas con activos
  - name: Activos - Tipos
    description: Operaciones relacionadas con tipos de activos
  - name: Activos - Grupos
    description: Operaciones relacionadas con grupos de activos
  - name: Activos - Campos personalizados
    description: >-
      Campos propios que cada empresa define para sus activos (nombre interno,
      tipo, reglas y opciones)
  - name: Activos - Grupos de campos
    description: Grupos que ordenan los campos personalizados de la empresa
  - name: Activos - Vehículos
    description: Operaciones relacionadas con tipos de vehículos
  - name: Activos - QR
    description: >-
      QR del activo (identidad escaneable del activo): resolver, stickers,
      reemplazo e historial
  - name: Tracking - Trackers
    description: Operaciones relacionadas con trackers
  - name: Tracking - Viajes
    description: Operaciones relacionadas con viajes y paradas
  - name: Tracking - Geocercas
    description: Operaciones relacionadas con geocercas
  - name: Alertas - Alertas
    description: Operaciones relacionadas con alertas
  - name: Alertas - Disparadores
    description: Operaciones relacionadas con disparadores de alertas
  - name: Alertas - Notificaciones
    description: Operaciones relacionadas con notificaciones
  - name: Clientes - Clientes
    description: Operaciones relacionadas con clientes
  - name: Clientes - Restricciones
    description: Operaciones relacionadas con restricciones
  - name: Integraciones - Flespi
    description: Operaciones relacionadas con Flespi
  - name: Otros - Conductores
    description: Operaciones relacionadas con conductores
  - name: Formularios dinámicos
    description: Plantillas de formulario propias de Atlas, asignables a activos
  - name: Inspecciones
    description: >-
      Inspecciones de activos enviadas desde la app al escanear el QR, con
      resultado apta / no apta
  - name: Otros - Capas
    description: Operaciones relacionadas con capas
  - name: User Tracker Access
    description: Operaciones de acceso personalizado a trackers por usuario
  - name: Reportes - Historial de Posiciones
    description: Estadísticas y detalle de posiciones GPS por activo
  - name: Reportes - Excesos de Velocidad
    description: Reportes de excesos de velocidad por tracker
  - name: Reportes - Ralentí
    description: Reportes de ralentí (motor encendido sin movimiento) por tracker
  - name: Reportes - Horas de Trabajo
    description: >-
      Reportes de horas de trabajo (conducción + paradas dentro de horario
      laboral) por tracker
  - name: Reportes - Última Actividad
    description: Reporte de estado de comunicación y última posición de activos
  - name: Reportes - Reportes Programados
    description: Gestión de reportes programados (CRUD)
  - name: Device Health
    description: Operaciones de salud de dispositivos del cliente
  - name: Activity Log
    description: Registro de actividad del cliente
  - name: Work - Importaciones
    description: Operaciones de importación de datos
  - name: Work - Plantillas
    description: Operaciones de plantillas de importación
  - name: Cargo - Transportistas
    description: Gestión de transportistas
  - name: Cargo - Pedidos
    description: Gestión de pedidos de carga
  - name: Cargo - Monitoreo
    description: Monitoreo en vivo de carga y transporte
  - name: Integraciones - Navixy
    description: Integración con plataforma Navixy
  - name: Mantenimiento - Dashboard
    description: Dashboard y métricas generales de mantenimiento
  - name: Mantenimiento - Proveedores
    description: Gestión de proveedores de servicio
  - name: Mantenimiento - Tareas
    description: Catálogo de tareas con que se arman las pautas de mantención
  - name: Mantenimiento - Pautas
    description: Pautas de mantención, con sus tareas del catálogo y su familia de activos
  - name: Mantenimiento - Estado
    description: Estado de mantenimiento de activos
  - name: Mantenimiento - Perfiles
    description: Perfiles de mantenimiento por activo
  - name: Mantenimiento - Fallas
    description: Gestión de fallas activas
  - name: Mantenimiento - DVIR
    description: Driver Vehicle Inspection Reports
  - name: Mantenimiento - Defectos
    description: Gestión de defectos detectados
  - name: Mantenimiento - Programaciones
    description: Programación de mantenimientos preventivos
  - name: Mantenimiento - Próximos
    description: Ítems de mantenimiento próximos
  - name: Mantenimiento - Órdenes de Trabajo
    description: Gestión de órdenes de trabajo
  - name: Mantenimiento - Registros de Servicio
    description: Registros históricos de servicios realizados
  - name: Mantenimiento - Problemas
    description: Gestión de problemas de mantenimiento
  - name: Mantenimiento - Tareas de Servicio
    description: Tareas específicas dentro de órdenes de trabajo
  - name: Mantenimiento - Inventario
    description: Gestión de partes, ubicaciones y stock
  - name: Mantenimiento - Costos
    description: Gestión y agregación de costos de mantenimiento
  - name: Trabajo - Tareas
    description: Gestión de tareas, tareas recurrentes, rutas y operaciones en lote
  - name: Trabajo - Empleados
    description: Gestión de empleados, departamentos y sus catálogos (tags, trackers)
  - name: Otros - Lugares
    description: Gestión de lugares (places) del cliente
  - name: Cargo - Activos
    description: Disponibilidad de activos de carga
  - name: Cargo - Ubicaciones
    description: Gestión de ubicaciones de carga
  - name: Cargo - Rendimiento
    description: Métricas de rendimiento de pedidos de carga
  - name: Reportes - Check-ins
    description: Reporte de check-ins de tareas
  - name: Reportes - Utilización
    description: Reporte de utilización de activos
  - name: Reportes - Visitas por Geocercas
    description: Reporte de visitas a geocercas
  - name: Reportes - Visitas por Trackers
    description: Reporte de visitas por tracker/activo
  - name: Reportes - Progreso de Geozonas
    description: Reporte de progreso de cobertura de geozonas (agricultura)
  - name: Reportes - Temperatura
    description: Reporte de temperatura por activo
  - name: Reportes - Exportación
    description: Exportación de reportes a archivo
  - name: Público - Business Time
    description: Reloj de servidor (endpoint público, sin autenticación)
  - name: Formularios
    description: Definiciones y envíos de formularios de la app
  - name: Sistema
    description: Endpoints de salud del servicio (liveness/readiness), sin autenticación
  - name: Facturación
    description: >-
      Portal del cliente — facturas publicadas de la empresa (proyección de
      Raúl)
  - name: Tienda de módulos
    description: >-
      Catálogo de módulos y productos UGPS con el estado de cada uno para el
      usuario
  - name: Soporte
    description: Portal del cliente — tickets de soporte de la empresa (proyección de Raúl)
  - name: Asistente
    description: Historial de conversaciones del Asistente de Atlas (spec
paths:
  /api/maintenance/task-definitions/{id}:
    put:
      tags:
        - Mantenimiento - Tareas
      summary: Editar una tarea del catálogo
      description: >-
        Edición parcial. Editar una tarea base cambia sólo la copia de la
        empresa. Un nombre nuevo también retitula las tareas de pauta que la
        usan. Responde 400 con el mismo código que crear si el código o el
        nombre chocan.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              minProperties: 1
              properties:
                code:
                  type: string
                name:
                  type: string
                  maxLength: 120
                category:
                  type: string
                  description: >-
                    Categoría de la tarea, de la lista compartida de categorías
                    de tarea de servicio. Los valores van sin tildes; la web
                    muestra su etiqueta.
                  enum:
                    - Mantencion preventiva
                    - Motor
                    - Frenos
                    - Neumaticos
                    - Sistema electrico
                    - Suspension y direccion
                    - Transmision
                    - Carroceria
                    - Otros
                description:
                  type: string
                  maxLength: 1000
      responses:
        '200':
          description: Tarea editada
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  data:
                    type: object
                    description: >-
                      Tarea del catálogo de Mantención de la empresa, con la que
                      se arman las pautas.
                    properties:
                      id:
                        type: string
                        example: 507f1f77bcf86cd799439011
                      code:
                        type: string
                        description: >-
                          De 2 a 8 caracteres: una letra mayúscula y después
                          letras o dígitos. Único en la empresa (también entre
                          archivadas).
                        example: ACM
                      name:
                        type: string
                        description: >-
                          Único entre las tareas activas, sin distinguir tildes
                          ni mayúsculas.
                        example: Cambio de aceite de motor
                      category:
                        type: string
                        description: >-
                          Categoría de la tarea, de la lista compartida de
                          categorías de tarea de servicio. Los valores van sin
                          tildes; la web muestra su etiqueta.
                        enum:
                          - Mantencion preventiva
                          - Motor
                          - Frenos
                          - Neumaticos
                          - Sistema electrico
                          - Suspension y direccion
                          - Transmision
                          - Carroceria
                          - Otros
                      description:
                        type: string
                      origin:
                        type: string
                        enum:
                          - base
                          - client
                        description: >-
                          `base`: copia de una tarea base de Atlas. `client`:
                          creada por la empresa.
                      baseKey:
                        type: string
                        nullable: true
                        description: >-
                          Clave de la tarea base de Atlas; `null` en una tarea
                          propia.
                        example: engine_oil_change
                      status:
                        type: string
                        enum:
                          - active
                          - archived
                      archivedAt:
                        type: string
                        format: date-time
                        nullable: true
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                      usedInPrograms:
                        type: array
                        description: Pautas activas que la usan («Usada en»), por nombre.
                        items:
                          type: object
                          description: Pauta activa que usa la tarea, con su intervalo ahí.
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                            conditions:
                              type: object
                              description: >-
                                Intervalo de una tarea de pauta: vence con la
                                primera condición que se cumpla, desde su último
                                servicio. Siempre «Se repite» y sin primer
                                vencimiento por fecha (`dueDate`). Sin «recordar
                                antes», el backend pone el 10 % del intervalo
                                (por fecha, en días).
                              additionalProperties: false
                              properties:
                                odometer:
                                  type: object
                                  additionalProperties: false
                                  required:
                                    - everyKm
                                  properties:
                                    everyKm:
                                      type: integer
                                      minimum: 1
                                      example: 40000
                                    remindBeforeKm:
                                      type: integer
                                      minimum: 0
                                      example: 4000
                                engineHours:
                                  type: object
                                  additionalProperties: false
                                  required:
                                    - everyHours
                                  properties:
                                    everyHours:
                                      type: integer
                                      minimum: 1
                                    remindBeforeHours:
                                      type: integer
                                      minimum: 0
                                date:
                                  type: object
                                  additionalProperties: false
                                  required:
                                    - every
                                    - unit
                                  properties:
                                    every:
                                      type: integer
                                      minimum: 1
                                    unit:
                                      type: string
                                      enum:
                                        - days
                                        - weeks
                                        - months
                                    remindBefore:
                                      type: integer
                                      minimum: 0
                                    remindUnit:
                                      type: string
                                      enum:
                                        - days
                                        - weeks
                                        - months
        '400':
          description: Error de validación
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      error:
                        type: string
                        example: El email es requerido
                  - type: object
                    properties:
                      status:
                        type: string
                        example: failed
                      message:
                        type: string
                        example: Error de validación
                      errors:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            message:
                              type: string
        '401':
          description: No autorizado
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Token inválido o expirado
        '403':
          description: Sin permisos
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: No tiene permisos para realizar esta acción
        '404':
          description: Recurso no encontrado
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Recurso no encontrado
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      message:
                        type: string
                        example: Error interno del servidor
                  - type: object
                    properties:
                      status:
                        type: string
                        example: failed
                      message:
                        type: string
                        example: Error interno del servidor
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Token de sesión Better Auth o API token (`atk_...`) en el header
        `Authorization: Bearer <token>`. Los JWT legacy ya no son válidos.
    cookieAuth:
      type: apiKey
      in: cookie
      name: better-auth.session_token
      description: >-
        Cookie de sesión Better Auth emitida al iniciar sesión en el frontend
        web. En producción el nombre lleva prefijo `__Secure-`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.