Estrutura da resposta – Endpoint independente
Nota: O endpoint independente só é recomendável caso você utilize roteirizadores de terceiros. Caso utilize a Trip API, é possível obter os pedágios na mesma requisição.
Nesse exemplo, temos uma rota simples que passa pelo pedágio de Tres Marías, no México. Iremos utilizar o endpoint independente para obter o cálculo dos pedágios.
A rota foi gerada pela API Routes do Google, e está no formato de polyline.
Requisição
Como a rota foi gerada por uma API do Google, será preciso definir o parâmetro source como GMAPS. Caso a rota tenha sido gerada pela Trip API, ou por algum outro serviço, não será necessário informar o parâmetro source.
Em billing defineremos como FREE_FLOW, para obter o retorno tanto de pedágios quanto de pórticos. Se o valor for DEFAULT, apenas pedágios convencionais serão retornados.
O parâmetro legs é um array de objetos onde cada objeto representa um trecho da rota. Em cada leg, devemos definir o parâmetro points, que contém as coordenadas que compõem a rota. No caso, teremos apenas uma leg que corresponde a rota inteira. As coordenadas da rota estão em formato de string, codificadas como polyline.
Em cada objeto contido em legs, será preciso informar o tipo de veículo utilizado para aquele trecho. No parâmetro vehicleType vamos definir que a rota será realizada com um caminhão de quatro eixos duplos, para isso usaremos o valor TRUCK_WITH_FOUR_DOUBLE_AXLES. Em condition, informaremos billingType como NORMAL e period como NORMAL.
Abaixo a requisição completa:
{
"source": "GMAPS",
"billing": "FREE_FLOW",
"legs": [
{
"vehicleType": "TRUCK_WITH_FOUR_DOUBLE_AXLES",
"condition": {
"period": "NORMAL",
"billingType": "NORMAL"
},
"points": "gzwtBnkk|Q_EoAGqDyAKiIh@cID_HcGiA}H_@iLCcHd@wMhAqSTuGbAcO|Dak@vBcJ|FiJtZyTfJ{GrHkExD{BrBEbAZfAxAdLlRbO~WhFtGrJ|FfYzOvGdCfDWpFcCdPgGrFG~H~AtWjG~G~AnD?fB_@~CyBrJiMnTmYvJ}LlEuB~CSpJ\\hEeAvGoGnFsHhBiFbBqExCyChGuF~GaDrG{@rGgBtUuJdNiFtOwCzDp@zBdCzAzBjBnAjD`@vKQfCqA`CqE`AcFeA}DwBgEAcDbBmClCkC`@_Dm@iCqCkBaFJkFYwFmE}B{FcBaHTgDjBwCpMsH~EaB~LVrE~@zCvEnAbAfB^dF[nDh@hFpEjPhKbEhArIZ|Hs@tC~@vIrHdIhDlIj@nI@~DfAfB`BvAvD@pGo@`Qf@|F`Sjh@`InTzCnLhAtCrBdClExB~HTdOwExRuG|KsCvRuA~HeC`a@gVxJaFtCObI`@~FhA~CvCbBtFdCzFzDbCxBd@zDAzOOnCj@hFfDfMrJhLtF|g@xQfg@nQbTvHpFrBrD`CtCfDvIpOpOrMlb@b\\|NdLjInFxc@fLzKzF|KvGzIdGlCpD|JxZ`ElMnFtKtWnf@dTt`@jKrRxDhEli@na@dE|FdBpFnDxe@rAzPtBnF~EdE|KbDvj@tOvCzAvGrF|GhFpE|@|DUfHsAxE\\bG`CtFXlHi@bDf@hGbElJlGbJtB~JWzNcCpGiDrFaJ|EqHlKwJvUmThKmMhC}BhEsAlJ_DlFuE`J_JpB}EpFuTGwFiB_LFeElBuKWyFcDiLi@iK]qTbEcN|EkM|CoDxNsHrH{DtCoEl@{EqA_Zk@sG}A}HiOs_@m@uFnDqPjDaOGiND}MhBkEhEeDzCyCdAgCfDoKlGyIpAgF@{Fm@yLbAqFfF{KxAwJr@cK}CuSv@cKSiG_EyKwAuFWsLDaPt@eA|Ak@rCh@fApB?bBkDbI@rGdUxi@~HtMtA|E`Bhg@vDl`@lAfKdBlFbJxQxChLdGjZtL`[|BzSjZhm@hEhEdMnIhBpC`BlGtE~PxJbJdNzKfDtDdApC`ElMrSjYxQxV|AnFj@tHpBrc@gA~QRjE~AtHhAlFtAxCxAvAnCnAfPh@jFtA~CbCdBrCjAxEFxEC|Nd@xCnBbDnCzAbC`@vEB|DyBdD{Dx@A`Ar@b@xD\\xAvKx[lCrJ\\Vh@Slw@iGvc@mCNIDIhTmEfScG|CoAi@UeCGYs@rAcC`@o@UOwBd@yC|AoJvBv@vDHb@RhAcAX}@VkBf@"
}
]
}
Resposta
Na resposta, teremos os seguintes campos:
totalCost– Valor total dos pedágios em toda rota;legs– Array de objetos onde cada objeto representa um trecho da rota. Cada leg da resposta corresponde a um leg da requisição. Em cada objeto será retornado os seguintes campos:tolls– Objeto com os valores e informações de cada pedágio no trecho correspondente. Cada objeto retornado em tolls representa um pedágio e irá conter as seguintes informações:name– Nome do pedágio;address– Endereço do pedágio;city– Cidade do pedágio;state– Objeto contendo o nome do estado (name) e sua sigla (code);country– País do pedágio;concession– Concessionária responsável pelo pedágio;coordinates– Coordenadas (latitude e longitude) do pedágio;price– Valor por pedágio;serviceTypes– Array com códigos para integração com sistemas de pagamento automático. Atualmente disponível apenas no Brasil;
legTotalCost– Valor total de pedágios para o trecho;vehicleType– Tipo de veículo considerado para o trecho;calculationDate– Data e hora considerados para o trecho, em formato timestamp;condition– Se o parâmetroconditionfor usado na requisição, esse objeto será retornado contendo qualbillingTypeeperiodforam considerados para o trecho.
A resposta completa pode ser conferida abaixo:
{
"legs": [
{
"tolls": [
{
"id": "1910",
"name": "Pórtico - Cuicuilco",
"address": "Anillo Periférico Boulevard Adolfo López Mateos",
"city": "Ciudad de México",
"state": {
"name": "Ciudad de México",
"code": "Ciudad de México"
},
"country": "México",
"concession": " ",
"direction": "EAST",
"coordinates": {
"latitude": 19.302997,
"longitude": -99.176205
},
"serviceTypes": [],
"price": 0.00
},
{
"id": "1909",
"name": "Pórtico - Caminero (insurgentes)",
"address": "Anillo Periférico",
"city": "Ciudad de México",
"state": {
"name": "Ciudad de México",
"code": "Ciudad de México"
},
"country": "México",
"concession": " ",
"direction": "EAST",
"coordinates": {
"latitude": 19.301797,
"longitude": -99.166269
},
"serviceTypes": [],
"price": 0.00
},
{
"id": "2602",
"name": "Pórtico - Viaducto Tlalpan (V.E.T.)",
"address": "Ciudad de México - Cuernavaca",
"city": "Ciudad de México",
"state": {
"name": "Ciudad de México",
"code": "Ciudad de México"
},
"country": "México",
"concession": " ",
"direction": "SOUTH",
"coordinates": {
"latitude": 19.23586718,
"longitude": -99.14526105
},
"serviceTypes": [],
"price": 0.00
},
{
"id": "1878",
"name": "Caseta - Tres Marías",
"address": "Autopista México - Cuernavaca",
"city": "Tres Marías",
"state": {
"name": "Morelos",
"code": "Morelos"
},
"country": "México",
"concession": "CAPUFE",
"direction": "WEST",
"coordinates": {
"latitude": 19.05632,
"longitude": -99.241111
},
"serviceTypes": [],
"price": 111.00
}
],
"legTotalCost": 111.00,
"vehicleType": "TRUCK_WITH_FOUR_DOUBLE_AXLES",
"condition": {
"billingType": "NORMAL",
"period": "NORMAL"
},
"calculationDate": 1743709167209
}
],
"totalCost": 111.00
}