Fluxo de Integração de Pedágio


Guia completo para cálculo estimado de pedágios e registro de viagem via API da Extratta com exemplos práticos, validações e tratamento de erros.


1. Roteirização da Viagem

Endpoint: POST /Viagem/ConsultarCustoPedagioRota

Finalidade

Calcular previamente os pedágios da rota e gerar o IdentificadorHistorico, necessário para a compra do pedágio.

Regras Importantes

  • Sempre consulte a rota antes de integrar a viagem
  • O IdentificadorHistorico é obrigatório para a compra
  • Valide se CustoTotal > 0 antes de prosseguir

Tipos de Roteirização

Polyline (Linha Codificada)

Quando usar: Quando você já possui a rota codificada (ex: Google Maps)

{
  "CNPJAplicacao": "12345678000195",
  "CNPJEmpresa": "98765432000198",
  "Token": "token-autenticacao",
  "Polyline": "u{~vFvyys@fS]",
  "TipoVeiculo": 3,
  "QtdEixos": 2,
  "TipoRodagem" : 1,
  "ExibirDetalhes": true
}

Roteirização Dinâmica

Quando usar: Para calcular rota entre cidades automaticamente

{
  "CNPJAplicacao": "12345678000195",
  "CNPJEmpresa": "98765432000198",
  "Token": "token-autenticacao",
  "Localizacoes": [
    {"IbgeCidade": "4205407"}, // Florianópolis-SC
    {"IbgeCidade": "3550308"}  // São Paulo-SP
  ],
  "TipoVeiculo": 3,
  "QtdEixos": 5,
  "TipoRodagem" : 1,
  "ExibirDetalhes": true
}

Roteirização Fixa

Quando usar: Para usar rotas pré-cadastradas no sistema

{
  "CNPJAplicacao": "12345678000195",
  "CNPJEmpresa": "98765432000198",
  "Token": "token-autenticacao",
  "Localizacoes": [
    {"IdRotaModelo": 123}
  ],
  "TipoVeiculo": 3,
  "QtdEixos": 3,
  "TipoRodagem" : 1,
  "ExibirDetalhes": true
}

Parâmetros Importantes

Campo Descrição Valores Obrigatório
TipoVeiculo Tipo do veículo 1=Moto, 2=Passeio, 3=Comercial Sim
QtdEixos Quantidade de eixos 2, 3, 4, 5, 6, 7, 8, 9 Sim
ExibirDetalhes Mostrar detalhes das praças true/false Recomendado
Polyline Linha codificada da rota String codificada Conforme tipo
IbgeCidade Código IBGE da cidade Código de 7 dígitos Conforme tipo
IdRotaModelo ID da rota pré-cadastrada Número inteiro Conforme tipo
TipoRodagem 1- Simples 2- Duplo Enum Conforme tipo

Resposta da API

Sucesso

{
  "Status": 0,
  "Mensagem": null,
  "CustoTotal": 45.80,
  "CustoTotalTag": 41.22,
  "IdentificadorHistorico": "abc123-def456-ghi789",
  "KmTotal": 702,
  "TempoPrevisto": "08:30:00",
  "Localizacoes": [
    {
      "cidade": "Florianópolis",
      "estado": "SC",
      "pais": "Brasil"
    },
    {
      "cidade": "São Paulo",
      "estado": "SP",
      "pais": "Brasil"
    }
  ],
  "Pracas": [
    {
      "nome": "Praça de Pedágio Palhoça",
      "localizacao": {
        "latitude": "-27.6394",
        "longitude": "-48.6277"
      },
      "telefone": "(48) 3242-0000",
      "enderecoDescricao": "BR-101, Km 210",
      "concessao": "Autopista Litoral Sul",
      "codigoAntt": "001234",
      "viaFacilId": "VF001",
      "fragmentoIndex": 0,
      "precos": [
        {
          "precoEixoAdicional": 5.40,
          "valor": 8.90,
          "valorTag": 8.01
        }
      ]
    }
  ]
}

Erro

{
  "Status": 1,
  "Mensagem": "Rota não encontrada entre as localizações informadas",
  "CustoTotal": 0.0,
  "CustoTotalTag": 0.0,
  "IdentificadorHistorico": null,
  "KmTotal": 0,
  "TempoPrevisto": "00:00:00",
  "Localizacoes": [],
  "Pracas": []
}

Validações Importantes

Antes de prosseguir, verifique: - Status == 0 (sucesso) - CustoTotal > 0 (há pedágios na rota) - IdentificadorHistorico não está vazio - Pracas.length > 0 (há praças na rota)

Como Utilizar o Identificador

Veja abaixo como configurar corretamente sua requisição de viagem dependendo da roteirização escolhida:

Polyline

{
  "Pedagio": {
    "CodPolyline": 123,
    "IdentificadorHistorico": "abc123-hash"
  }
}

Não envie: IdRotaModelo, NomeRota

Rota Fixa

{
  "Pedagio": {
    "IdRotaModelo": 0,
    "NomeRota": "Rota Modelo X",
    "IdentificadorHistorico": "abc123-hash"
  }
}

Não envie: CodPolyline

Rota Dinâmica

{
  "Pedagio": {
    "IdentificadorHistorico": "abc123-hash"
  }
}

Não envie: CodPolyline, IdRotaModelo, NomeRota


2. Compra de Pedágio (Viagem)

Obs: Essa requisição é apenas um exemplo, para mais detalhes consultar o método viagemV2

Método: POST ViagemV2/Integrar

Requisição Completa

{
  "CNPJAplicacao": "",
  "Token": "",
  "CNPJEmpresa": "",
  "DocumentoUsuarioAudit": "",
  "NomeUsuarioAudit": "",
  "DadosViagem": {
    "CadastrosPreViagem": {
      "ClienteDestino": {},
      "ClienteOrigem": {},
      "Motorista": {},
      "Proprietario": {},
      "Veiculo": {}
    },
    "DadosIniciais": {
      "RealizarIntegracoesPreViagem": true,
      "NumeroControle": ""
    },
    "Documentos": {},
    "Pedagio": {
      "Fornecedor": 0,
      "QtdEixos": 2,
      "TipoVeiculo": 3,
      "CodPolyline": 123,
      "IdRotaModelo": 0,
      "NomeRota": "Rota Sul",
      "IdentificadorHistorico": "abc123-hash"
    },
    "Valores": {
      "Inss": 0
    },
    "Veiculo": {
      "Placa": ""
    },
    "ViagemEventos": []
  }
}