Consultar roteirizador
Permitir que o cliente consulte rotas alternativas e informações detalhadas sobre o percurso a partir de uma lista de locais, com base em configurações de rota e veículo. Essa consulta retorna dados como distância, duração, coordenadas, pedágios (com tarifas, localização, e indicadores de fluxo livre) e as unidades federativas (UF) percorridas.
Método e rota
- Criação (POST):
/consulta/consultaRoteirizador/{enterpriseId}
Estrutura da requisição
Cabeçalhos
-
Authorization: o token JWT deve ser enviado no header.
Authorization: Bearer {token}
Corpo
O cliente envia um JSON contendo dois grupos:
- locations: Uma lista de locais para os quais se deseja calcular a rota.
- config: Configuração adicional para a rota e para o veículo.
Confira o exemplo abaixo e veja aqui a definição completa do schema.
{
"locations": [
"Ponta Grossa, PR",
"Diadema, SP",
"Belo Horizonte, MG"
],
"config": {
"route": {
"optimized_route": false,
"optimized_route_destination": "last",
"calculate_return": false,
"alternative_routes": "2",
"type_route": "efficient"
},
"vehicle": {
"type": "truck",
"axis": "7"
}
"freight_table": {
"category": "A",
"freight_load": "granel_solido"
}
}
}
Layout
| Nome do campo | Tipo | Observação |
|---|---|---|
locations | array | Array de strings com os nomes dos locais para o cálculo da rota. Podem ser enviados nos formatos: cidade/UF ("São Paulo, SP"), CEP ("12345678"), endereço completo ("Rua da parada, 999, centro, são paulo, sp, 12345678"), ou latitude e longitude ("-27.81971,-50.32099"). |
config | objeto | Agrupa as configurações utilizadas no cálculo da rota, veículo e consulta de frete mínimo. |
config.route | objeto | Configurações relacionadas à rota. |
config.route.optimized_route | boolean | Indica se a rota deve ser otimizada. true: encontra o melhor sequenciamento de entrega. false: respeita a sequência recebida na lista de locations. |
config.route.optimized_route_destination | string | Define como será determinado o destino final da rota: "last" considera a última location recebida; "best" encontra o melhor destino final da rota. |
config.route.calculate_return | boolean | Indica se deve ser calculada a rota de retorno. |
config.route.alternative_routes | string | Número de rotas alternativas a serem retornadas. |
config.route.type_route | string | Tipo de rota: "efficient" (prioriza rodovias maiores e evita estradas de terra, balsas e centros urbanos), "shortest" (menor distância), "avoid_tolls" (menos pedágios). |
config.vehicle | objeto | Configurações do veículo. |
config.vehicle.type | string | Tipo de veículo. Valores possíveis: "truck" ou "car". |
config.vehicle.axis | string | Número de eixos da composição/veículo. |
config.freight_table | objeto | Dados para consulta da tabela de frete mínimo da ANTT para a rota processada. |
config.freight_table.category | string | Categoria da carga: A (Transporte rodoviário de carga lotação), B (Contratação apenas do veículo automotor de cargas), C (Carga lotação de alto desempenho), D (Contratação apenas do veículo automotor de cargas de alto desempenho). |
config.freight_table.freight_load | string | Tipo de carga transportada. Valores possíveis: granel_solido, granel_liquido, frigorificada, conteineirizada, geral, neogranel, perigosa_granel_solido, perigosa_granel_liquido, perigosa_frigorificada, perigosa_conteineirizada, perigosa_geral, granel_pressurizada. |
Validações e regras de negócio
-
Envio da Consulta (POST /valePedagio/consultaRoteirizador):
- O cliente envia um payload com os locais e a configuração de rota e veículo.
- A API processa a consulta e calcula a rota com base nas configurações fornecidas.
-
Resposta:
- A resposta inclui um array de rotas calculadas, cada com detalhes de distância, duração, pedágios e demais informações, e um array de locais conforme enviado.
Resposta do POST
Após o processamento da consulta, a API retornará um JSON com os seguintes dados:
Exemplo de resposta bem-sucedida:
{
"rotas": [
{
"distancia": {
"texto": "1125 km",
"valor": 1125
},
"distancia_nao_pavimentada": {
"texto": "0 km",
"valor": 0,
"percentual_texto": "0%",
"percentual_valor": 0
},
"duracao": {
"texto": "12:23:49",
"valor": 44629
},
"endereco_inicio": "ponta grossa",
"endereco_fim": "belo horizonte, mg",
"coordenada_inicio": "-25.09492,-50.16311",
"coordenada_fim": "-19.91952,-43.93833",
"pedagios": [
{
"codigo_antt": "41411513040000103",
"nome": "P5 - Carambeí",
"tarifa": { "7": 79.8 },
"latitude": -24.912136893155846,
"longitude": -50.086694732308395,
"is_free_flow": 0
}
],
"polilinha": "string criptografada",
"ufs": [
"PR",
"SP",
"MG"
],
"tabela_frete": 7915.02
}
],
"locais": [
"Ponta Grossa",
"Diadema, SP",
"Belo Horizonte, MG"
]
}
| Nome do campo | Tipo | Observação |
|---|---|---|
rotas | array | Array de objetos, cada um representando uma rota calculada. |
└─ distancia | object | Informações de distância total da rota. |
└─ texto | string | Distância formatada (ex.: "1125 km"). |
└─ valor | number | Valor numérico da distância (ex.: 1125). |
└─ distancia_nao_pavimentada | object | Informações sobre distância percorrida em trechos não pavimentados. |
└─ texto | string | Distância não pavimentada formatada. |
└─ valor | number | Valor numérico desta distância. |
└─ percentual_texto | string | Percentual não pavimentado em formato textual (ex.: "0%"). |
└─ percentual_valor | number | Valor percentual. |
└─ duracao | object | Duração estimada da rota. |
└─ texto | string | Duração formatada (ex.: "12:23:49"). |
└─ valor | number | Duração em segundos (ex.: 44629). |
└─ endereco_inicio | string | Endereço ou nome do local de início da rota. |
└─ endereco_fim | string | Endereço ou nome do local de término da rota. |
└─ coordenada_inicio | string | Coordenadas (latitude,longitude) do início da rota. |
└─ coordenada_fim | string | Coordenadas (latitude,longitude) do fim da rota. |
└─ pedagios | array | Array de objetos representando as praças de pedágio encontradas na rota. |
└─ codigo_antt | string | Código identificador da praça na ANTT. |
└─ nome | string | Nome da praça de pedágio. |
└─ tarifa | object | Objeto com valores de pedágio por categoria de eixo (ex.: "7": 79.8). |
└─ latitude | number | Latitude da praça de pedágio. |
└─ longitude | number | Longitude da praça de pedágio. |
└─ is_free_flow | number | Indicador de fluxo livre (0 ou 1). |
└─ polilinha | string | Polyline criptografada que representa o trajeto gerado. |
└─ ufs | array | Lista das unidades federativas (UFs) percorridas na rota. |
└─ tabela_frete | number | Valor da tabela de frete mínimo ANTT para a rota. |
locais | array | Array que reexibe os locais enviados na requisição. |
Códigos de Status HTTP
- 200 ou 201: Consulta realizada com sucesso.
- 400: Erro de validação (por exemplo, problemas nos parâmetros enviados).
- 401: Não autorizado (token JWT ausente ou inválido).
- 500: Erro interno do servidor ou exceções não tratadas.