Viagens
Uma viagem vincula um condutor a um veículo durante um intervalo de datas. A partir desse vínculo, todas as multas e notificações do veículo no período — e que ainda não têm condutor indicado — são associadas automaticamente ao condutor da viagem.
É a forma mais eficiente de responsabilizar condutores: em vez de indicar cada infração manualmente, você registra a jornada e a plataforma cuida do resto.
O que dá para fazer
| Ação | Endpoint | Quando usar |
|---|---|---|
| Criar viagem | POST /key/trips | Registrar uma jornada com condutor e veículo |
| Listar viagens | GET /key/trips | Sincronizar ou consultar viagens existentes |
| Buscar por ID | GET /key/trips/{id} | Consultar uma viagem específica |
| Atualizar viagem | PUT /key/trips/{id} | Fechar uma viagem aberta ou ajustar dados |
| Excluir viagem | DELETE /key/trips/{id} | Remover o vínculo e desvincular infrações |
Todas as chamadas usam os três headers de autenticação: Authorization, Key e cache-control. Ainda não tem as credenciais? Veja os Primeiros passos.
Como funciona
Quando você cria uma viagem:
- O sistema busca todas as multas e notificações do veículo no intervalo
startDate→endDate - As que ainda não têm condutor indicado são vinculadas ao condutor da viagem
- Se
endDatenão for definido, o vínculo permanece ativo para eventos futuros
- O veículo principal (
vehicleId) não pode ter o campotype(tipo de veículo) igual a REBOQUE ou SEMIRREBOQUE - Veículos adicionais com
typeREBOQUE ou SEMIRREBOQUE só são permitidos se o veículo principal for CAMINHÃO ou TRATOR - É possível vincular até 3 veículos adicionais por viagem
- Se houver duas viagens para o mesmo dia e a multa não tiver hora definida, será vinculada à primeira viagem criada
Criar viagem
/key/tripsRegistra o vínculo entre um condutor e um veículo em um intervalo de datas. Apenas vehicleId, driverId e startDate são obrigatórios.
Quanto mais campos enviar, mais rico fica o histórico da jornada: quilometragem, observações, descrição e metadados customizados ajudam a rastrear cada viagem no seu sistema.
curl -X POST \
https://apidev.v1.frota162.com.br/key/trips \
-H 'Authorization: Basic SEU_ACCESS_TOKEN' \
-H 'Key: SUA_ASSINATURA_HMAC' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"vehicleId": "123456",
"driverId": "15",
"startDate": "2024-08-01T13:20:07.046Z",
"endDate": "2024-08-02T13:20:07.046Z"
}'
Campos
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
vehicleId | string | Sim | ID do veículo principal |
driverId | string | Sim | ID do condutor |
startDate | string (ISO 8601) | Sim | Data/hora de início |
endDate | string (ISO 8601) | Não | Data/hora de fim (omitir para viagem sem fim) |
kmStart | string | Não | Quilometragem inicial |
kmEnd | string | Não | Quilometragem final |
notes | string | Não | Observações da viagem |
description | string | Não | Descrição geral |
metadata | array | Não | Campos customizados [{ key, value }] |
additionalVehicleIds | array | Não | IDs de até 3 veículos adicionais |
Exemplo com todos os campos
{
"vehicleId": "123456",
"driverId": "654321",
"startDate": "2024-08-01T13:20:07.046Z",
"endDate": "2024-08-02T13:20:07.046Z",
"kmStart": "1055",
"kmEnd": "2600",
"notes": "Pneu furou no km 200",
"description": "Entrega São Paulo → Campinas",
"metadata": [
{ "key": "internalTripId", "value": "TRIP-2024-001" }
],
"additionalVehicleIds": ["789012", "345678"]
}
Resposta
{
"message": { "id": "7434" },
"error": false,
"code": "fbk_200"
}
Viagem sem data de fim
Omita endDate para criar uma viagem aberta. O condutor continuará sendo vinculado a novas multas e notificações do veículo até que endDate seja definido via atualização.
{
"vehicleId": "123456",
"driverId": "15",
"startDate": "2024-08-01T00:00:00.000Z"
}
Listar viagens
/key/tripsRetorna as viagens da conta em páginas. É o endpoint de sincronização: use na primeira carga e nas conferências periódicas para manter sua base alinhada com a da Frota162.
curl -X GET \
'https://apidev.v1.frota162.com.br/key/trips?pagination[page]=1&pagination[perpage]=10' \
-H 'Authorization: Basic SEU_ACCESS_TOKEN' \
-H 'Key: SUA_ASSINATURA_HMAC' \
-H 'cache-control: no-cache'
Resposta
{
"message": {
"pagination": {
"currentPage": 1,
"pageSize": 10,
"totalItems": 2,
"totalPages": 1
},
"data": [
{
"id": "7434",
"accountId": "24",
"driverId": "15",
"vehicleId": "123456",
"startDate": "2024-08-01T13:20:07.000Z",
"endDate": "2024-08-02T13:20:07.000Z",
"kmStart": "1055",
"kmEnd": "2600",
"notes": "Observações",
"description": "Descrição",
"metadata": [{ "key": "internalTripId", "value": "TRIP-2024-001" }],
"additionalVehicleIds": ["789012"],
"createdAt": "2024-08-02T09:29:08.000Z"
}
]
},
"error": false,
"code": "fbk_200"
}
idO id de cada item é a chave que os demais endpoints usam. Guarde-o no seu sistema. Para percorrer as demais páginas, veja Paginação.
Buscar viagem por ID
/key/trips/{id}Use quando você já tem o id e não quer listar todas as viagens.
Retorna o estado atual de uma única viagem.
curl -X GET \
https://apidev.v1.frota162.com.br/key/trips/7434 \
-H 'Authorization: Basic SEU_ACCESS_TOKEN' \
-H 'Key: SUA_ASSINATURA_HMAC' \
-H 'cache-control: no-cache'
Resposta
{
"message": {
"id": "7434",
"accountId": "24",
"driverId": "15",
"vehicleId": "123456",
"startDate": "2024-08-01T13:20:07.000Z",
"endDate": "2024-08-02T13:20:07.000Z",
"kmStart": "1055",
"kmEnd": "2600",
"notes": "Observações",
"description": "Descrição",
"metadata": [{ "key": "internalTripId", "value": "TRIP-2024-001" }],
"additionalVehicleIds": ["789012"],
"createdAt": "2024-08-02T09:29:08.000Z"
},
"error": false,
"code": "fbk_200"
}
Atualizar viagem
/key/trips/{id}Use para fechar uma viagem aberta (adicionar endDate), ajustar quilometragem ou atualizar o veículo.
Não é possível alterar o condutor via atualização. Para isso, exclua a viagem e crie uma nova no mesmo intervalo.
curl -X PUT \
https://apidev.v1.frota162.com.br/key/trips/7434 \
-H 'Authorization: Basic SEU_ACCESS_TOKEN' \
-H 'Key: SUA_ASSINATURA_HMAC' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{
"endDate": "2024-08-03T18:00:00.000Z",
"kmEnd": "2600"
}'
Para definir endDate como null (viagem sem fim):
{ "endDate": null }
Excluir viagem
/key/trips/{id}Ao excluir uma viagem, todas as multas e notificações dentro do intervalo são desvinculadas do condutor.
curl -X DELETE \
https://apidev.v1.frota162.com.br/key/trips/7434 \
-H 'Authorization: Basic SEU_ACCESS_TOKEN' \
-H 'Key: SUA_ASSINATURA_HMAC' \
-H 'cache-control: no-cache'
Resposta
{
"message": { "id": "7434" },
"error": false,
"code": "fbk_200"
}
Casos de uso comuns
Registrar uma entrega
{
"vehicleId": "123",
"driverId": "15",
"startDate": "2024-08-01T07:00:00.000Z",
"endDate": "2024-08-01T18:00:00.000Z",
"description": "Rota de entrega — zona leste",
"metadata": [
{ "key": "routeId", "value": "ROTA-042" },
{ "key": "orderId", "value": "PED-00123" }
]
}
Escala contínua (motorista fixo)
{
"vehicleId": "456",
"driverId": "20",
"startDate": "2024-01-01T00:00:00.000Z",
"description": "Motorista fixo — sem data de fim"
}
Para encerrar a escala futuramente, atualize adicionando endDate.