Endpoints v1
Base URL: https://api.monisystem.com/v1 · Auth: Authorization: Bearer <jwt>
Auth
POST
/v1/auth/loginBody:
{ email, password }. Retorna jwt_token, company_id.POST
/v1/auth/refreshRenovar JWT. Body:
{ refresh_token }.Veículos & Motoristas
GET
/v1/vehiclestype == "V" para placas, type == "R" para reboques.GET
/v1/user?_driver=true&_limit=10000Motoristas. Filtro
_driver=true sobre o endpoint de usuários (não existe /v1/drivers). Campos: id, name, cpf.Viagens
GET
/v1/tripLista 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 vezes — false 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_permissionsGating 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=trueApó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/scheduleAgendamento com validação PHP-parity.
Rotas & Rotogramas
GET
/v1/routesRotas cadastradas.
GET
/v1/rotograms/{routeId}?_detail=truedata[0].rotogram_route.coordinates + instruções. Busca um rotograma pelo id da rota.GET
/v1/rotograms/trip/{tripId}?_detail=trueEndpoint 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/disregardsBody:
{ trip_ids, reason, event_type, location }.Erros Comuns
| Código | Causa | Solução |
|---|---|---|
| 400 | _start_from como ISO 8601 | Int64(date.timeIntervalSince1970) |
| 401 | JWT expirado | ensureValidTokenForAPICall() |
| 429 | Muitas chamadas paralelas | RequestThrottle — máx 3 concorrentes |