40. Veículos
Este módulo é responsável pelo gerenciamento dos veículos cadastrados na plataforma. Ele permite consultar, atualizar e excluir informações dos veículos, além de realizar operações relacionadas à associação de motoristas, atualização de quilometragem, importação e exportação de dados.
O módulo de Veículos centraliza todas as informações cadastrais da frota, possibilitando o gerenciamento completo dos veículos, seus condutores e integrações com processos de manutenção e telemetria.
Funcionalidades Principais
Abaixo estão os atalhos para as operações mais utilizadas neste módulo:
Consultar entidade específica por Id
Retorna os dados completos de um veículo específico, incluindo informações cadastrais, modelo, cliente, bloco, localização e configurações relacionadas.
Endpoint: /api/vehicles/{id}
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body (schema mestre Vehicle, reutilizado por diversos endpoints deste módulo):
{ "id": 0, "modelYear": 0, "chassisNumber": "string", "licensePlate": "string", "initialMileage": 0, "firstMileage": 0, "vtvExpiration": "string", "modelId": 0, "blockId": 0, "clientId": 0, "cityId": 0, "city": {}, "district": "string", "registrationDate": "2024-01-01T00:00:00Z", "brandId": 0, "model": {}, "block": {}, "client": {}, "businessArea": 0, "businessLine": 0, "marketSegment": 0, "useClass": 0, "expenseGroup": "string", "costCenter": "string", "version": 0, "telemetryCapable": true, "documentDate": "2024-01-01", "kbaNumber": "string", "driversName": [ "string" ], "lastMileageUpdated": 0, "displayModelBrand": "string", "typeId": 0, "tcdTypeId": 0, "integrationType": "DIANA_MUNICIO", "lastTelemetryStatus": "CAPABLE", "haveMaintenancePlan": true, "havePriceTable": true, "notificationClientId": 0, "notificationCarWorkshopId": 0, "notificationDriverIds": [ 0 ], "serverUrl": "string"}Atualizar entidade específica
Atualiza as informações cadastrais de um veículo existente.
Endpoint: /api/vehicles/{id}
Método: PUT
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body: Mesmo schema Vehicle do endpoint "Consultar entidade específica por Id".
Excluir entidade específica
Remove um veículo cadastrado na plataforma.
Endpoint: /api/vehicles/{id}
Método: DELETE
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
{ "message": "string", "payLoad": true, "warning": true}Associar motorista ao veículo
Associa um motorista específico a um veículo.
Endpoint: /api/vehicles/{id}/drivers/{driverId}
Método: POST
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
- driverId (path, obrigatório, integer) — Identificador do motorista.
Response body:
{ "message": "string", "payLoad": { "vehicleId": 0, "driverId": 0 }, "warning": true}Remover associação de motorista
Remove a associação entre um motorista e um veículo.
Endpoint: /api/vehicles/{id}/drivers/{driverId}
Método: DELETE
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
- driverId (path, obrigatório, integer) — Identificador do motorista.
Response body:
{ "message": "string", "payLoad": "string", "warning": true}Adicionar quilometragem ao veículo
Registra uma nova quilometragem para um veículo específico.
Endpoint: /api/vehicles/{id}/add-mileage
Método: POST
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
{ "id": 0, "createdAt": "2024-01-01T00:00:00Z", "username": "string", "vehicleId": 0, "mileage": 0, "latitude": 0, "longitude": 0, "city": "string"}Importar veículos
Importa veículos em lote por meio de um arquivo ou atualiza a quilometragem utilizando uma planilha.
Endpoint: /api/vehicles/import
Método: POST
Parâmetros:
- Não especificados na documentação de origem (endpoint provavelmente recebe um arquivo via multipart/form-data).
Response body:
[ { "linePosition": 0, "rowValues": "string", "errorMessage": "string" }]Gerar relatório de veículos
Cria uma mensagem na fila para geração do relatório de veículos.
Endpoint: /api/vehicles/export
Método: POST
Response body (payload de exemplo vazio na documentação de origem):
{}Importar motoristas dos veículos
Importa associações entre veículos e motoristas por meio de um arquivo.
Endpoint: /api/vehicles/drivers/import
Método: POST
Parâmetros:
- Não especificados na documentação de origem (endpoint provavelmente recebe um arquivo via multipart/form-data).
Response body:
[ "string"]Consultar dados de telemetria do veículo
Retorna as informações de telemetria disponíveis para um veículo, incluindo quilometragem, nível de combustível, pressão dos pneus, indicadores do painel, localização e demais dados coletados pelo sistema.
Endpoint: /api/vehicles/{id}/telemetry_data
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
{ "telemetryDate": "string", "nextServiceDistance": "string", "nextServiceDistanceUnit": "string", "nextServiceDate": "string", "nextLegalInspectionDate": "string", "fuelLevel": "string", "fuelLevelUnit": "string", "tirePressureFrontLeft": "string", "tirePressureFrontLeftUnit": "string", "tirePressureFrontLeftStatus": "string", "tirePressureFrontRight": "string", "tirePressureFrontRightUnit": "string", "tirePressureFrontRightStatus": "string", "tirePressureRearLeft": "string", "tirePressureRearLeftUnit": "string", "tirePressureRearLeftStatus": "string", "tirePressureRearRight": "string", "tirePressureRearRightUnit": "string", "tirePressureRearRightStatus": "string", "lastUpdateTimestamp": "string", "telemetryCapable": true, "mileage": "string", "mileageUnit": "string", "coolantTemperature": "string", "ignitionStatus": "string", "gearLeverPosition": "string", "relativeRemainingOilLife": "string", "excessiveIdle": "string", "harshBraking": "string", "harshAcceleration": "string", "vehicleSpeed": "string", "absIndicatorLight": "string", "brakeWarningIndicatorLight": "string", "checkFuelFilterIndicatorLight": "string", "engineMalfunctionIndicatorLight": "string", "lightningSystemFailureIndicatorLight": "string", "lowWasherFluidIndicatorLight": "string", "powertrainMalfunctionIndicatorLight": "string", "restraintsIndicatorWarningLight": "string", "tirePressureMonitorSystemWarningLight": "string", "tractionMotorTemperatureWarningLight": "string", "waterInFuelIndicatorLight": "string", "lowEngineOilPressureIndicatorLight": "string", "engineCoolantOverTempIndicatorLight": "string", "bateryLowWarningIndicator": "string", "breakFluidWarningIndicatorLight": "string", "breakLiningWearWarningIndicatorLight": "string", "engineCoolantLevelWarningIndicatorLight": "string", "preBreakLiningLiningWearWarningIndicatorLight": "string", "batteryVoltage": "string", "batteryVoltageUnit": "string", "telemetryStatus": "string", "powerTrainRange": "string", "powerTrainRangeUnit": "string", "row1WheelLeftTirePressureNominal": "string", "row1WheelRightTirePressureNominal": "string", "row2wheelLeftTirePressureNominal": "string", "row2wheelRightTirePressureNominal": "string", "serviceOilToService": "string", "powerTrainCombustionEngineRelativeOilLifeRemaining": "string", "wheelBrakeFluidChangeDate": "string", "lastLocationDateTime": "string", "lastLocationLatitude": "string", "lastLocationLongitude": "string", "gpsEnabled": true, "lastRequestDate": "string", "lastTelemetryStatus": "CAPABLE"}Consultar solicitações de serviço do veículo
Retorna uma lista paginada das solicitações de serviço associadas ao veículo informado.
Endpoint: /api/vehicles/{id}/service-requests
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
- filterDTO (query, obrigatório, tipo não especificado)
- page (query, obrigatório, tipo não especificado)
Response body:
{ "totalElements": 0, "totalPages": 0, "size": 0, "content": [ { "id": 0, "requestId": "string", "serviceType": "string", "status": "string", "budgetStatus": "string", "clientPrice": 0, "date": "2024-01-01T00:00:00Z", "endedIn": "2024-01-01T00:00:00Z", "approvalCode": 0, "carWorkshopId": 0, "carWorkshop": "string" } ], "number": 0, "sort": {}, "pageable": {}, "numberOfElements": 0, "first": true, "last": true, "empty": true}Verificar solicitação de serviço em andamento
Verifica se o veículo possui uma solicitação de serviço em andamento com validações ativas.
Endpoint: /api/vehicles/{id}/service-requests/in-progress
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
trueConsultar perfil do veículo
Retorna as principais informações do perfil do veículo, incluindo dados do modelo, cliente, quilometragem e informações cadastrais.
Endpoint: /api/vehicles/{id}/profile
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
{ "modelDescription": "string", "modelMotor": "string", "modelVersion": "string", "modelInitialYear": "string", "modelEndYear": "string", "modelBrand": "string", "licensePlate": "string", "modelYear": "string", "chassisNumber": "string", "clientName": "string", "documentDate": "2024-01-01", "blockName": "string", "clientStateName": "string", "clientCountryCode": "string", "registrationDate": "2024-01-01T00:00:00Z", "monthsUntilToday": 0, "totalOdometer": 0, "averageOdometer": 0, "latestOdometerUpdate": "2024-01-01T00:00:00Z", "telemetryCapable": true, "lastRequestDate": "string", "vehiclePicture": "string"}Consultar histórico de quilometragem
Retorna o histórico paginado das quilometragens registradas para o veículo.
Endpoint: /api/vehicles/{id}/mileage-history
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
- filterDTO (query, obrigatório, tipo não especificado)
- page (query, obrigatório, tipo não especificado)
Response body:
[ { "id": 0, "createdAt": "2024-01-01T00:00:00Z", "username": "string", "vehicleId": 0, "mileage": 0, "latitude": 0, "longitude": 0, "city": "string" }]Verificar status de manutenção do veículo
Retorna se o veículo está com a manutenção em dia.
Endpoint: /api/vehicles/{id}/maintenance-status
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
trueConsultar informações de manutenção do veículo
Retorna informações de manutenção do veículo de acordo com os tipos de serviço disponíveis.
Endpoint: /api/vehicles/{id}/maintenance-info
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body (payload de exemplo vazio na documentação de origem):
{}Consultar motoristas do veículo
Retorna todos os motoristas associados ao veículo informado.
Endpoint: /api/vehicles/{id}/drivers
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
[ { "id": 0, "sub": "string", "name": "string", "email": "string", "username": "string", "...": "Demais propriedades conforme documentação da API." }]⚠️ O payload original inclui um campo literal "..." indicando propriedades adicionais não detalhadas na fonte.
Consultar perfil dos motoristas do veículo
Retorna o perfil resumido dos motoristas vinculados ao veículo.
Endpoint: /api/vehicles/{id}/drivers/profile
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
[ { "id": 0, "name": "string", "telephoneNumber": "string", "email": "string", "vehicleAssociationDate": "2024-01-01T00:00:00Z", "lastAccessDate": "2024-01-01T00:00:00Z" }]Consultar histórico de associação de motoristas
Retorna o histórico de associações e remoções de motoristas realizadas para o veículo.
Endpoint: /api/vehicles/{id}/drivers/history
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
[ { "actionDate": "2024-01-01T00:00:00Z", "action": "ASSOCIATED", "name": "string", "telephoneNumber": "string", "email": "string" }]Consultar histórico de oficinas utilizadas
Retorna o histórico das oficinas que já realizaram serviços para o veículo informado, permitindo acompanhar os atendimentos anteriores.
Endpoint: /api/vehicles/{id}/car-workshops/history
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
- carWorkshopHistoryFilterDTO (query, obrigatório, tipo não especificado)
- page (query, obrigatório, tipo não especificado)
Response body:
[ { "id": 0, "tradingName": "string", "address": { "id": 0, "district": "string", "street": "string", "number": "string", "city": "string", "state": "string", "country": "string", "countryCode": "string", "complement": "string", "zipCode": "string", "stateRegistration": "string" }, "serviceCompletionDate": "2024-01-01T00:00:00Z", "distance": 0, "provideDesiredServices": true, "acceptVehicleBrand": true, "provideServiceType": true, "latitude": 0, "longitude": 0, "networkName": "string", "maintenancePrice": 0, "email": "string", "phone": "string", "name": "string", "favorite": true, "selected": true, "workshopGroupIds": [ 0 ], "conversations": [ { "id": 0, "active": true, "status": "FINISHED", "conversations": [], "proposedDates": [] } ], "negotiationId": 0, "taxIdentifier": "string", "corporateName": "string" }]Consultar oficina sugerida para o veículo
Retorna o histórico das oficinas que já realizaram serviços para o veículo informado, permitindo acompanhar os atendimentos anteriores.
⚠️ Esta descrição é idêntica à do endpoint anterior ("Consultar histórico de oficinas utilizadas") na documentação de origem — mantida fielmente, mesmo que pareça uma inconsistência de conteúdo.
Endpoint: /api/vehicles/{id}/car-workshop-suggestion
Método: GET
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
{ "id": 0, "sapId": 0, "corporateName": "string", "tradingName": "string", "taxIdentifier": "string", "phone": "string", "email": "string", "address": { "id": 0, "street": "string", "zipCode": "string", "number": "string", "district": "string", "complement": "string", "cityId": 0, "city": { "id": 0, "name": "string", "state": null }, "cityName": "string", "stateName": "string", "countryName": "string", "ibgeCode": "string" }, "regionServiceId": 0, "regionPartId": 0, "defaultRegionServiceId": 0, "defaultRegionPartId": 0, "purchaseOrder": 0, "isBlocked": true, "employeeContacts": [ { "id": 0, "name": "string", "email": "string", "username": "string", "responsability": "CONSULTANT", "active": true } ], "stateRegistration": "string", "latitude": 0, "longitude": 0, "modelCategories": [], "ownerName": "string", "ownerMobilePhone": "string", "ownerEmail": "string", "concept": "NETWORK", "serviceTypes": [], "category": { "id": 0, "code": "string" }, "network": { "id": 0, "name": "string", "concept": "NETWORK", "concessionary": true }, "blockedBrands": [], "version": 0, "subsidiaryCorporateName": "string", "subsidiaryTaxIdentifier": "string", "subsidiarySapId": 0, "subsidiaryPurchaseOrder": 0, "isParent": true, "parent": { "id": 0, "corporateName": "string", "tradingName": "string" }, "subsidiaries": [], "isOffline": true, "isFee": true, "checkoutType": "YES", "isMargin": true, "googleMapsId": "string", "bcsAccountId": "string", "bcsExternalId": "string", "isFavorite": true, "carWorkshopOriginId": 0, "franchiseId": 0, "noIntermediation": true, "isPrimaryOrigin": true, "municipalRegistration": "string", "taxRegime": "SIMPLE_NATIONAL", "franchiseName": "string", "priceTypes": [ "FEE" ], "fee_workshop_settings": { "fee01Tire": 0, "fee02Tire": 0, "client_increase_fee_percent": 0, "workshop_discount_fee_percent": 0, "has_client_admin_fee": true, "client_fee_type": "PERCENT", "client_fee_value": 0, "has_application_cap": true, "application_cap_value": 0, "model_fee": "DEFAULT" }}Consultar veículos para agendamento
Retorna os veículos que possuem solicitações de serviço relacionadas ao processo de agendamento.
Endpoint: /api/vehicles/scheduling
Método: GET
Parâmetros:
- vehicleServiceRequestFilterDTO (query, obrigatório, tipo não especificado)
Response body:
[ { "id": 0, "modelDisplayName": "string", "licensePlate": "string", "serviceRequest": { "id": 0, "date": "2024-01-01T00:00:00Z", "period": "string", "displayPeriod": "string", "status": "string", "stepStatus": "string", "vehicleArrived": true, "checkList": true, "serviceRequestRating": {}, "carWorkshop": {} } }]Consultar veículos da minha frota
Retorna uma lista paginada contendo todos os veículos pertencentes à frota do usuário.
Endpoint: /api/vehicles/fleet
Método: GET
Parâmetros:
- filter (query, obrigatório, tipo não especificado)
- page (query, obrigatório, tipo não especificado)
Response body:
{ "totalElements": 0, "totalPages": 0, "size": 0, "content": [ { "vehicleId": 0, "licensePlate": "string", "motor": "string", "version": "string", "initialYear": 0, "endYear": 0, "modelDescription": "string", "modelYear": 0, "category": "RIDE", "city": "string", "state": "string", "totalFinishedMaintenancePrice": 0, "totalMaintenance": 0, "dateOfLastPreventive": "2024-01-01T00:00:00Z", "dateOfLastCompletePreventive": "2024-01-01T00:00:00Z", "mileage": 0, "dateMileage": "2024-01-01T00:00:00Z", "lastMileageHistoryId": 0, "lastServiceRequestFinishedPreventiveId": 0, "modelId": 0, "nextMaintenancePlanPackage": 0, "nextMaintenancePlanPackageDate": "2024-01-01T00:00:00Z", "isPreventiveUpToDate": true, "nextMaintenancePlanPackageMonthYear": "string", "nextPreventiveTimeBased": "2024-01-01", "nextPreventiveMileageBased": "2024-01-01", "activeDamageReports": true, "warning": true, "danger": true, "telemetryCapable": true, "lastMileageUpdated": 0, "clientId": 0, "clientName": "string", "serviceNeedReminder": "string", "serviceNeedTypeReminder": "string", "serviceNeedDescriptionReminder": "string", "nextServicePredictions": [], "telemetryEventCount": 0, "telemetryEventStatus": "string", "damageReportEventCount": 0, "damageReportEventStatus": "string", "scheduledServices": [], "serviceSummary": [] } ], "number": 0, "sort": {}, "pageable": {}, "numberOfElements": 0, "first": true, "last": true, "empty": true}Consultar indicadores da frota
Retorna os indicadores utilizados no painel de saúde da frota, incluindo percentual de veículos com manutenção em dia, quilometragem atualizada e quantidade de veículos por situação.
Endpoint: /api/vehicles/fleet/infographics
Método: GET
Parâmetros:
- filter (query, obrigatório, tipo não especificado)
Response body:
{ "percentageOfVehiclesWithUpToDateMaintenance": 0, "percentageOfVehiclesWithOutdateMileage": 0, "totalOfVehiclesBasedOnFilters": 0, "immediateMaintenance": 0, "nearMaintenance": 0, "damageReport": 0, "totalOfVehiclesWithOutdateMileage": 0, "totalImmediateMaintenance": 0, "totalNearMaintenance": 0, "totalDamageReport": 0}Pesquisar veículos por filtros
Retorna uma lista paginada de veículos com base nos filtros informados.
Endpoint: /api/vehicles/filters
Método: GET
Parâmetros:
- vehicleFilterDTO (query, obrigatório, tipo não especificado)
- page (query, obrigatório, tipo não especificado)
Response body: Lista paginada (totalElements, totalPages, size, number, sort, pageable, numberOfElements, first, last, empty) cujo content utiliza o mesmo schema Vehicle detalhado no endpoint "Consultar entidade específica por Id".
Consultar grupos de despesas
Retorna todos os grupos de despesas (Expense Groups) disponíveis para utilização nos veículos.
Endpoint: /api/vehicles/expense-group
Método: GET
Parâmetros:
- vehicleFilterDTO (query, obrigatório, tipo não especificado)
- page (query, obrigatório, tipo não especificado)
Response body:
[ { "name": "string", "value": "string" }]Consultar status de orçamento
Retorna todos os status de orçamento disponíveis no sistema.
Endpoint: /api/vehicles/budget-status
Método: GET
Parâmetros:
- vehicleFilterDTO (query, obrigatório, tipo não especificado)
- page (query, obrigatório, tipo não especificado)
Response body:
[ { "name": "string", "value": "string" }]Listar veículos
Retorna uma lista paginada contendo todos os veículos cadastrados de acordo com os filtros informados.
Endpoint: /api/vehicles
Método: GET
Parâmetros:
- vehicleFilterDTO (query, obrigatório, tipo não especificado)
- page (query, obrigatório, tipo não especificado)
Response body: Lista paginada cujo content utiliza o mesmo schema Vehicle detalhado no endpoint "Consultar entidade específica por Id" (idêntico ao retorno do endpoint "Pesquisar veículos por filtros").
Remover última quilometragem do veículo
Remove o último registro de quilometragem cadastrado para o veículo informado.
Endpoint: /api/vehicles/{id}/remove-mileage
Método: DELETE
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
trueExcluir veículo de forma forçada
Realiza a exclusão forçada de um veículo, ignorando validações convencionais quando permitido pelo sistema.
Endpoint: /api/vehicles/{id}/force
Método: DELETE
Parâmetros:
- id (path, obrigatório, integer) — Identificador do veículo.
Response body:
{ "message": "string", "payLoad": "string", "warning": true}