Toll

Exemplo 3 – Pedágios com desconto por meio de pagamento automático

Algumas praças de pedágio oferecem uma porcentagem de desconto para usuários que utilizam meios de pagamento automático, conhecidos como TAG ou TelePeaje

No Brasil essa porcentagem é de 5% de desconto e está disponível para apenas algumas concessionárias que oferecem o serviço. Essa porcentagem pode variar em outros países. Na Argentina, por exemplo, a concessionária Caminos del Río Uruguay oferece 15% de desconto para usuários que utilizam a tag, ou TelePeaje

No exemplo a seguir, temos uma rota usando um caminhão de dois eixos simples que passa pelo pedágio de Parapuã, no Brasil, que oferece um desconto de 5%.

{
    "calculationMode": "THE_FASTEST",
    "points": [
        {
            "siteId": "p1-before829",
            "latitude": -21.839539778137308,
            "longitude": -50.72464998254153
        },
        {
            "siteId": "p2-afterid829",
            "latitude": -21.845671861785434,
            "longitude": -50.717879778340304
        }
    ],
    "toll": {
        "vehicleType": "TRUCK_WITH_TWO_DOUBLE_AXLES"
    }    
}

Assim como nos exemplos anteriores, em tollCosts temos o valor total dos pedágios em toda a rota. Em cada leg será retornado um objeto tollCalculation contendo um objeto tolls com os valores e informações de cada pedágio no trecho correspondente, e a legTotalCost que mostra o valor total de pedágios naquele trecho. Também será retornado o campo vehicleType que indica o veículo utilizado nesse trecho.

Dentro de cada objeto em tolls teremos as informações de cada pedágio. Com as seguintes diferenças:

  • price – Valor normal do pedágio, sem o desconto por TAG;
  • conditions – Array com todos os valores condicionais do pedágio. No caso desse exemplo, temos as seguintes informações:
    • billingsType – Tipo de cobrança de pedágio. Valores possíveis: [NORMAL, TAG];
    • value – Valor do condicionante do pedágio na moeda local.

No caso desse exemplo, o valor que deve ser considerado para obter o desconto por TAG será o valor de value nas conditions, e não o retornado em price.

Segue a resposta completa do exemplo:

{
    "id": "6580831a4d0aa15a056e8f30",
    "clientId": "maplink",
    "totalDistance": 989,
    "totalNominalDuration": 44,
    "averageSpeed": 80.00,
    "tollCosts": 20.00,
    "legs": [
        {
            "distance": 988,
            "nominalDuration": 44,
            "averageSpeed": 80.0,
            "points": "vohdCvcrtHbA{AnEwGhCmDfBgCrCsEz@cApAsA~BkBrBiArD}B",
            "tollCalculation": {
                "tolls": [
                    {
                        "id": "829",
                        "name": "Pedágio - Parapuã",
                        "address": "SP294, KM551+500",
                        "city": "Parapuã",
                        "state": {
                            "name": "São Paulo",
                            "code": "SP"
                        },
                        "country": "Brasil",
                        "concession": "Eixo-SP",
                        "direction": "EAST",
                        "coordinates": {
                            "latitude": -21.841946,
                            "longitude": -50.721171
                        },
                        "serviceTypes": [
                            {
                                "serviceId": "792",
                                "name": "Via Facil"
                            },
                            {
                                "serviceId": "35352945515000103",
                                "name": "ANTTCODE"
                            }
                        ],
                        "price": 20.00,
                        "conditions": [
                            {
                                "billingsType": [
                                    "TAG"
                                ],
                                "value": 19.00
                            }
                        ]
                    }
                ],
                "legTotalCost": 20.00,
                "vehicleType": "TRUCK_WITH_TWO_DOUBLE_AXLES"
            }
        }
    ],
    "source": "MAPLINK"
}