Pular para o conteúdo principal

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 campoTipoObservação
locationsarrayArray 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").
configobjetoAgrupa as configurações utilizadas no cálculo da rota, veículo e consulta de frete mínimo.
config.routeobjetoConfigurações relacionadas à rota.
config.route.optimized_routebooleanIndica 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_destinationstringDefine 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_returnbooleanIndica se deve ser calculada a rota de retorno.
config.route.alternative_routesstringNúmero de rotas alternativas a serem retornadas.
config.route.type_routestringTipo 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.vehicleobjetoConfigurações do veículo.
config.vehicle.typestringTipo de veículo. Valores possíveis: "truck" ou "car".
config.vehicle.axisstringNúmero de eixos da composição/veículo.
config.freight_tableobjetoDados para consulta da tabela de frete mínimo da ANTT para a rota processada.
config.freight_table.categorystringCategoria 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_loadstringTipo 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

  1. 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.
  2. 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 campoTipoObservação
rotasarrayArray de objetos, cada um representando uma rota calculada.
└─ distanciaobjectInformações de distância total da rota.
  └─ textostringDistância formatada (ex.: "1125 km").
  └─ valornumberValor numérico da distância (ex.: 1125).
└─ distancia_nao_pavimentadaobjectInformações sobre distância percorrida em trechos não pavimentados.
  └─ textostringDistância não pavimentada formatada.
  └─ valornumberValor numérico desta distância.
  └─ percentual_textostringPercentual não pavimentado em formato textual (ex.: "0%").
  └─ percentual_valornumberValor percentual.
└─ duracaoobjectDuração estimada da rota.
  └─ textostringDuração formatada (ex.: "12:23:49").
  └─ valornumberDuração em segundos (ex.: 44629).
└─ endereco_iniciostringEndereço ou nome do local de início da rota.
└─ endereco_fimstringEndereço ou nome do local de término da rota.
└─ coordenada_iniciostringCoordenadas (latitude,longitude) do início da rota.
└─ coordenada_fimstringCoordenadas (latitude,longitude) do fim da rota.
└─ pedagiosarrayArray de objetos representando as praças de pedágio encontradas na rota.
  └─ codigo_anttstringCódigo identificador da praça na ANTT.
  └─ nomestringNome da praça de pedágio.
  └─ tarifaobjectObjeto com valores de pedágio por categoria de eixo (ex.: "7": 79.8).
  └─ latitudenumberLatitude da praça de pedágio.
  └─ longitudenumberLongitude da praça de pedágio.
  └─ is_free_flownumberIndicador de fluxo livre (0 ou 1).
└─ polilinhastringPolyline criptografada que representa o trajeto gerado.
└─ ufsarrayLista das unidades federativas (UFs) percorridas na rota.
└─ tabela_fretenumberValor da tabela de frete mínimo ANTT para a rota.
locaisarrayArray 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.