API v1

Endpoints v1

Base URL: https://api.monisystem.com/v1  ·  Auth: Authorization: Bearer <jwt>

Auth

POST/v1/auth/login
Body: { email, password }. Retorna jwt_token, company_id.
POST/v1/auth/refresh
Renovar JWT. Body: { refresh_token }.

Veículos & Motoristas

GET/v1/vehicles
type == "V" para placas, type == "R" para reboques.
GET/v1/user?_driver=true&_limit=10000
Motoristas. Filtro _driver=true sobre o endpoint de usuários (não existe /v1/drivers). Campos: id, name, cpf.

Viagens

GET/v1/trip
Lista de viagens (singular). Query: _client_id, _status, _id_veiculo, _id_motorista, _id_perfil, _exclude_sma.
GET/v1/trip/{id}
Detalhe completo incluindo entregas e situações.
POST/v1/trip/
Criar/analisar viagem (singular, com barra final). Campos em inglês snake_case conforme structs Go. O corpo carrega o booleano accept_nonconformity: envia-se duas vezesfalse para análise (o backend devolve conflitos/avisos; se estiver limpo já cria e retorna 201) e depois true para confirmar. Não existe endpoint /analyze separado. Não há PUT de edição confirmado no código — a criação/edição passa pelo mesmo POST /v1/trip/.
GET/v1/trip/registration_permissions
Gating de tipo/perfil do cadastro. Retorna allowed + checks — substituiu as leituras antigas por Elasticsearch para habilitar/bloquear tipos de viagem.

Pontos de Entrega

GET/v1/point?_detail=true&nome=...&cnpj=...
Pontos de parada/entrega (não existe /v1/delivery-points). Com _detail=true, name_city_id retorna "CIDADE - UF" — não requer enrich separado.

Apólices & Perfis

GET/v1/policy?_client_id=...&_active=true
Apólices (singular). Campos: id, name, expiration_days (string). Legado usava _id/nome.
GET/v1/profile?_client_id=...
Perfis de viagem (singular).

Checklist

GET/v1/checklist?_start_from={unix}
Singular (confirmado no código Android e iOS). _start_from em Unix epoch Int64. name_applicant e name_doer já vêm na lista.
GET/v1/checklist/{id}
Detalhe do checklist.
POST/v1/checklist/schedule
Agendamento com validação PHP-parity.

Rotas & Rotogramas

GET/v1/routes
Rotas cadastradas.
GET/v1/rotograms/{routeId}?_detail=true
data[0].rotogram_route.coordinates + instruções. Busca um rotograma pelo id da rota.
GET/v1/rotograms/trip/{tripId}?_detail=true
Endpoint consolidado por viagem. Retorna o rotograma principal + alternativas (inclusive inativas) da viagem numa só chamada — a rota vem em data[0].rotogram_route. Usado em Driver, Manager e no detalhe do Grid (Android e iOS), substituindo as múltiplas chamadas legadas listar_rotograma / routesById. Base de produção: https://api.monisystem.com/v1.

Desconsideração

POST/v1/disregards
Body: { trip_ids, reason, event_type, location }.

Erros Comuns

CódigoCausaSolução
400_start_from como ISO 8601Int64(date.timeIntervalSince1970)
401JWT expiradoensureValidTokenForAPICall()
429Muitas chamadas paralelasRequestThrottle — máx 3 concorrentes