Estructura de respuesta
En el siguiente ejemplo tenemos una ruta entre las ciudades de Casa Branca-SP y Guaxupé-MG, evitando áreas urbanas, con los valores de peaje para un camión de dos ejes, las estaciones de servicio a lo largo de la ruta y los estados recorridos.
Solicitud
En la solicitud a la Trip API, además de los puntos (points) y del modo de cálculo (calculationMode), usaremos los siguientes parámetros:
avoidanceTypes– Tipos de vía o área que deben evitarse en la ruta. InformaremosCITYpara evitar áreas urbanas;avoidanceBehavior– Comportamiento aplicado a las restricciones deavoidanceTypes. Los valores posibles sonFAIL,RELAXEDySTRONG. UsaremosSTRONG;toll– Parámetros referentes a la Toll API. Para conocer todos los parámetros soportados, consulte la lista de parámetros:vehicleType– Tipo de vehículo. Usaremos"TRUCK_WITH_TWO_DOUBLE_AXLES";transponderOperators– Operadoras de pago automático deseadas. InformaremosCONECTCARpara obtener los códigos de integración de esa operadora.
crossedBorders– Parámetros para identificar las fronteras cruzadas por la ruta:level– Nivel de las fronteras devueltas. UsaremosSTATEpara obtener los estados recorridos;reverseGeocode– Define para qué puntos se devolverá la dirección. UsaremosSTART_END_LEGSpara obtener las direcciones del inicio y del fin de los tramos.
place– Parámetros para buscar lugares a lo largo de la ruta. Para conocer todos los parámetros soportados, consulte la lista de parámetros de la POIs API:categories– Categorías de los lugares buscados. UsaremosPOSTOS_DE_COMBUSTIVEL;subCategories– Subcategorías de los lugares buscados, por ejemploPOSTO_FISCALyBALANCAS, de la categoríaFISCALIZACAO. Parámetro opcional, no utilizado en este ejemplo;bufferRouteInMeters– Distancia máxima, en metros, entre el lugar y la ruta. Usaremos500;bufferStoppingPointsInMeters– Distancia máxima, en metros, entre el lugar y los puntos de parada. Usaremos500;onlyMyPlaces– Cuando estrue, devuelve solo los lugares registrados por el propio cliente.
{
"points": [
{
"siteId": "Point 1-Casa Branca",
"latitude": -21.780449,
"longitude": -47.079822
},
{
"siteId": "Point 2-Guaxupe",
"latitude": -21.312320,
"longitude": -46.717873
}
],
"calculationMode": "THE_FASTEST",
"avoidanceTypes": [
"CITY"
],
"avoidanceBehavior": "STRONG",
"toll": {
"vehicleType": "TRUCK_WITH_TWO_DOUBLE_AXLES",
"transponderOperators": [
"CONECTCAR"
]
},
"crossedBorders": {
"level": "STATE",
"reverseGeocode": "START_END_LEGS"
},
"place": {
"categories": [
"POSTOS_DE_COMBUSTIVEL"
],
"bufferRouteInMeters": 500,
"bufferStoppingPointsInMeters": 500,
"onlyMyPlaces": true
}
}
A continuación, la ruta visualizada en el mapa:

Respuesta
Algunos campos de la respuesta se devuelven siempre, mientras que otros solo aparecen cuando el parámetro correspondiente se informa en la solicitud. Por ejemplo, los campos de peaje solo se devuelven si se informa el objeto toll.
Campos devueltos siempre
id– Identificador único de la ruta calculada;clientId– Identificador del cliente que realizó la solicitud;totalDistance– Distancia total de la ruta, en metros;totalNominalDuration– Duración nominal total de la ruta, en segundos;averageSpeed– Velocidad media de la ruta, en km/h;legs– Array de objetos donde cada objeto representa un tramo de la ruta. Cada objeto contiene los siguientes campos, siempre devueltos:distance– Distancia del tramo, en metros;nominalDuration– Duración nominal del tramo, en segundos;averageSpeed– Velocidad media del tramo, en km/h;points– Geometría del tramo. El formato depende del parámetropointsModede la solicitud. Para saber más, consulte cómo cambiar el tipo de retorno de las coordenadas de la ruta.
source– Origen del mapa utilizado en el cálculo de la ruta. Siempre se devolverá comoMAPLINK.createdAt– Fecha y hora de creación de la ruta, en formato timestamp;expiryIn– Fecha y hora de expiración de la ruta, en formato timestamp.
Campos devueltos solo si se informa el objeto toll
tollCosts– Valor total de los peajes en toda la ruta;legs[].tollCalculation– Objeto, devuelto en cada tramo, con los valores e información de peaje del tramo correspondiente:tolls– Array con los valores e información de cada peaje en el tramo. Cada objeto devuelto entollsrepresenta un peaje y contendrá la siguiente información:id– Identificador único del peaje;type– Tipo de peaje. Los valores posibles son:TOLL_BOOTH– Casetas de peaje convencionales;MUNICIPAL_TOLL_BOOTH– Similar aTOLL_BOOTH, sirve únicamente para identificar que la caseta de peaje es municipal;TOLL_GANTRY– Corresponde a los pórticos convencionales;ENTRY_GANTRY– Corresponde a los pórticos de entrada, utilizados en carreteras con cobro por tramos;EXIT_GANTRY– Corresponde a los pórticos de salida, utilizados en carreteras con cobro por tramos.
name– Nombre del peaje;address– Dirección del peaje;city– Ciudad del peaje;state– Objeto que contiene el nombre del estado (name) y su sigla (code);country– País del peaje;concession– Concesionaria responsable del peaje;direction– Sentido de la vía en que se cobra el peaje (por ejemplo,NORTH,EASToSOUTHEAST);coordinates– Coordenadas (latitud y longitud) del peaje;price– Valor por peaje;conditions– Array con valores diferenciados del peaje según el tipo de cobro. Se devuelve solo en los peajes que tienen este tipo de valor:billingsType– Array con los tipos de cobro a los que se aplica el valor, por ejemploTAG;value– Valor del peaje para los tipos de cobro informados.
currency– Tipo de moneda utilizada por el peaje. Los valores posibles son:BRL– Real brasileño;ARS– Peso argentino;CLP– Peso chileno;COP– Peso colombiano;MXN– Peso mexicano.
serviceTypes– Array con códigos para integración con sistemas de pago automático. Actualmente disponible solo en Brasil. Además deANTTCODE, se devuelven los códigos de las operadoras informadas entoll.transponderOperators(en este ejemplo,CONECTCAR);serviceId– Código para la integración;name– Descripción del código del servicio.
active– Indica si el peaje está activo (true) o no (false).
legTotalCost– Valor total de peajes para el tramo;vehicleType– Tipo de vehículo considerado para el tramo. Puede variar entre los tramos cuando se informatoll.variableAxles;calculationDate– Fecha y hora considerados para el tramo, en formato timestamp. La fecha base es el valor detoll.calculationDate(o el momento de la solicitud, si no se informa), sumada a la duración nominal de los tramos anteriores. Por eso, en rutas con más de un tramo, el valor aumenta en cada tramo;condition– Se devuelve solo si se usa el parámetrotoll.conditionen la solicitud. Contiene québillingTypeyperiodse consideraron para el tramo.
Campos devueltos solo si se informa crossedBorders.level
crossedBorders– Array de objetos donde cada objeto representa una frontera cruzada por la ruta, de acuerdo con el nivel informado encrossedBorders.level(en este ejemplo,STATE), en el orden en que fueron recorridas:state– Sigla del estado;city– Nombre de la ciudad. Se devuelve cuandolevelesCITY;country– País de la frontera.
Campos devueltos solo si se informa crossedBorders.reverseGeocode
Estos campos son independientes de crossedBorders.level. Con START_END, se devuelven startAddress y endAddress. Con START_END_LEGS, también se devuelve legs[].firstPointAddress.
startAddress– Dirección del punto de origen de la ruta. El objeto contiene la siguiente información:road– Calle;district– Barrio;zipCode– Código postal;city– Ciudad;state– Objeto que contiene el nombre del estado (name) y su sigla (code);mainLocation– Coordenadas (latylon) de la dirección encontrada;- Cuando están disponibles para la dirección, también pueden devolverse
geometry(array de coordenadaslatylonde la vía),leftZipCodeyrightZipCode(código postal de cada lado de la vía),leftFirstNumber,leftLastNumber,rightFirstNumberyrightLastNumber(numeración inicial y final de cada lado de la vía).
endAddress– Dirección del punto de destino de la ruta, con la misma estructura del objetostartAddress;legs[].firstPointAddress– Dirección del primer punto de cada tramo, con la misma estructura del objetostartAddress. Se devuelve solo conSTART_END_LEGS.
Campos devueltos solo si se informa el objeto place
legs[].placeCalculation– Objeto, devuelto en cada tramo, con los lugares encontrados a lo largo del tramo de acuerdo con los parámetros deplace:total– Cantidad de lugares encontrados en el tramo;places– Array con los lugares encontrados. En este ejemplo el array se devuelve vacío, pues ningún lugar registrado cumplió los criterios de la búsqueda. Cuando hay resultados, cada objeto contiene:id– Identificador único del lugar;name– Nombre del lugar;documentNumber– Número de documento del establecimiento;category– Categoría del lugar, por ejemploPOSTOS_DE_COMBUSTIVEL;subCategory– Subcategoría del lugar;address– Dirección del lugar:street– Calle;number– Número;city– Ciudad;state– Sigla del estado;zipcode– Código postal;point– Coordenadas (latitudeylongitude) del lugar.
phones– Array con los teléfonos del lugar;clientId– Identificador del cliente que registró el lugar;active– Indica si el lugar está activo (true) o no (false).
Campos devueltos solo si se informa el objeto turnByTurn
Al utilizar el parámetro turnByTurn, la hoja de ruta también se devuelve en la respuesta. Este parámetro no se utilizó en este ejemplo. Para más información sobre los campos devueltos, consulte el ejemplo de hoja de ruta detallada de la ruta.
Campos devueltos solo si se informa el objeto freight
routeFreightCost– Costo de flete de la ruta. Corresponde afreight.minimumFreightWithCostssumado atollCosts. Si no se informa el objetotoll, el valor de peaje considerado es cero;freight– Objeto con el resultado del cálculo de flete:source– Norma utilizada como base del cálculo;results– Objeto con los valores calculados, organizado en niveles: tipo de operación (operationType), cantidad de ejes (axis) y tipo de carga (goodsType). Para cada combinación se devuelvenvalue(valor del flete) yotherCosts(objeto con el valor de cada costo informado enfreight.otherCosts, indexado por el respectivoname);minimumFreight– Valor mínimo del flete;minimumFreightWithCosts– Valor mínimo del flete sumado a los otros costos informados.
El campo freight no forma parte de la solicitud de este ejemplo. A continuación, un ejemplo de cómo se devuelve este campo cuando se informa el objeto correspondiente en la solicitud. El valor de routeFreightCost es solo ilustrativo. Para saber más, consulte la documentación de la Freight API.
"routeFreightCost": 36970.73,
"freight": {
"source": "PORTARIA Nº 169, DE 18 DE MARÇO DE 2022",
"results": {
"D": {
"4": {
"GRANEL_SOLIDO": {
"value": 36970.73,
"otherCosts": {
"ICMS": 1848.54,
"Lucro": 7394.15,
"TaxaFixa": 500
}
}
}
}
},
"minimumFreight": 36970.73,
"minimumFreightWithCosts": 46713.42
}
Respuesta completa
La respuesta completa se encuentra a continuación, generada a partir de la solicitud de este ejemplo (con toll, crossedBorders y place):
{
"id": "6aeb78781e5d6641c3a5d586",
"clientId": "maplink",
"totalDistance": 86857,
"totalNominalDuration": 4363,
"averageSpeed": 56.75,
"tollCosts": 16.20,
"legs": [
{
"distance": 86856,
"nominalDuration": 4363,
"averageSpeed": 56.75,
"points": "j_}cCdgj~GmEgEv@eAgEgBSAYQuAuASy@IgA?[PuAh@oA`@s@h@k@rFmFN_@FY}AaAmAi@{@_@cHeEuUqLkIaE_DcBgFgCKOGOWKAICIEGD[COCU?O@MDOFOP[fDaF~BcDDK?O[uACk@?KCKIIKCK?GBEBGL?L@HDH@BUVSLMLsA|BIRGRCVAt@ETIVu@bBeAxAeAnA_A`AmAdAwB~AyA|@gAj@yB|@iA`@mCt@gBZ{BTaF`@aOdAeF\\inAzI{m@nEkQlA}D`@_Db@eBXkCj@_Dv@eDbAqSpHchB`q@wFvBcBh@eBb@eB\\kBViBNkBHkBBkBAkBKiBOiBYcB_@{A_@aA[mAc@_Aa@yAw@{A}@sAcAwCeCoGiFaDqCoK_JoAiAs}@mv@eGkFyE{DoV}SacAa{@uAmAiFmEqAaAgAq@y@g@gB_AwB_AoBq@qAa@}@UcCc@y@MmGs@oOyAkFi@gJy@mJ}@iFc@eQeBuGm@mCYuFg@mJu@aK_AcFk@aD[YEwD]_F]e_BeOqEa@gKeAoHo@wMuAiDYmBSsLcAy|BgTkHq@aWcCyGm@iZuCqIw@eHs@uFg@q_@sD}NsAoMoAuJ{@}AO_bAeJuC[o_@mD}s@{GcJy@mk@mFqYsCoBMkDc@eBKq@Gy@KwFaAmDq@}EsAaCw@ePwGeGiCiQmH_KcEuEoBsDaBaC_AsP_HeEiByF{B_Bm@wCoA_JqDgCkAqEoBoMcFuB_AyAo@qAe@mEkB}@c@uCkAsDuAqA[gAOw@Eq@Cs@?q@Du@Hc@HqA\\k@Ry@^_K~FsD|B}DzBmG`EwFfDcDrBiEdCwEtCmJvFaC|AsC~AwDbC{PhKoJtFcCzAm@\\[Ls@Rc@Ho@Ja@De@Dw@As@E]E}G_AyDa@uDg@qSkCgPwBeH{@kBSwG}@uEm@_C]eEi@w@Og@Ko@Sq@UgBq@qBaAc@WoCiBs@i@o@k@cPkOaEqDyAmAsDcDyb@k`@yDqDcBwAgIsHuEaE}IcIeDuCkAqAcHsGeFsEcCsBmIyHcCuBqAmAiAcAiByA{@u@qHwFaBmAoM}JiLsImO}Kgp@{f@mHqFcEaDeFqDeF_EuFeEuAqA{CkDeAuAgAaBmAyBkAmCq@qBiCiJgBqHi@mB_@cAe@qA_CqEq@cAgA}A}BuCm@o@e@c@yBeBm@a@iAaAW]MYSg@O[g@e@YOyBaBuCmBoCoBsAu@]W[OiAQi@KYKoAo@eJmGsA{@_CiBqBcBq@q@yAgB_B}BqFyGmDqEsCuD{ByCgH_J}ImLwBaCcA{@oBqAsBgAgDaAwAUqC]{BM}@Ey\\eBqDOoKk@qOu@yAKqAOaDo@yBg@cBk@u@YeEgBeD_BeF_Ce@WaJgEsSoJoI}DiBu@kBm@oBg@qBa@uBWoBUsBKoy@}@yo@g@}BGaf@g@qCIiE[aC_@eCg@}CaAkBs@sEmBaOwGeAg@cFyBcD{AoH_Di@OyQ_IiAm@w@k@a@c@g@i@QYm@oA]eAQu@K{@Gw@?]BcBNgB`BcNzAmNxAqM`AiIZcCn@sG~AmNfBgOXoCnB}PfBmPTwA`@oBXkA`@oAb@kA\\}@`AyBj@iAhBuC`D}EfEqFvDoF~HoKfA}A`BiCdBiD`J{TxD_Kv@oBd@{AVcARiALeAFkA@aAAgACiAKmAS{AqA{HeAqFSoAKoAEeACgABmAJeANgAr@sCl@gBxEaLf@uATw@Rs@Nu@Hu@Du@B{@?w@G{@Iu@a@gB_@cAoAoCgGiMWg@eIwP_@eAYw@WeAK{@IiACy@WuMa@_IGw@Io@Ou@Uo@Wi@_@k@e@i@k@e@g@[s@WwBi@qOeDw@Qg@Qi@Ui@[_@]UWo@}@Ue@g@mAyCwHm@wA[o@e@{@o@aA_@m@{B{C]_@wAmAgAeAcB}Ay@y@u@qAo@aB{AoEwDoKk@oBg@aC]sBiFka@}AoMo@wDQq@Uo@[q@g@u@k@y@}EeGa@o@Ym@M]Om@MiACe@?kAJmAFc@Ns@\\oA|AwG\\gBB_@Bk@?{@Ci@Ie@Kg@So@Yw@uAuC_@s@Wo@i@yAMi@Mm@O_AW_CKuAsAuUsAqXU{DMkBQeDMgBS{BOuAOgAUeAU_A[mAm@kBiAwCiEsJe@kAOi@_@_BOs@Ms@Io@OiBEu@Aq@AaA@w@FcBNeBNsAXaBxAuFnBcHX_Ap@iCp@aCh@yBhFsRhFwRXq@Ti@Te@t@qBPk@h@uBPg@ZiBVgBJi@BUbCgJpDiNrFkSvAwFJq@Jy@PaCBy@@uBCgAGaAIcAMgAe@}Ba@}A[}@yB_FwNcZg@uA_@sAWsA]gCMgBCmB?iABcAvBgQXeCRoBd@uF|F_v@LgC@wAAyAEqAMmBSkBWkBWuAe@qB[gA_@cAGSu@eBo@oAyHeNkAuCq@_Be@aAw@sACg@BUHMJGPCzD]vHm@dIq@dCUfHi@`@C^EVEz@Yl@GfDOh@?x@@fBFd@Dd@HbCz@XDV@xC@fEGfACd@Cf@Ij@Op@WrAu@pIeFf@Op@QDE@G@ICGtDmF~DqF`B_CzBuCNOHENCPEtC[SmB_@sEH}DCuACe@IkAM}@Eg@IYm@}ADEDEBE?G?GAGCEEEEAGAE?G@EBI?u@]s@w@o@w@qBmCgDcFc@u@q@cFOyAe@qDIs@oAu@gBy@?EEGA?EEe@m@w@w@dBoDOI",
"firstPointAddress": {
"road": "RUA SÃO PAULO",
"district": "Centro",
"zipCode": "13700049",
"city": "CASA BRANCA",
"state": {
"code": "SP",
"name": "SÃO PAULO"
},
"mainLocation": {
"lat": -21.780329800344585,
"lon": -47.07950794999991
}
},
"placeCalculation": {
"total": 0,
"places": []
},
"tollCalculation": {
"tolls": [
{
"id": "177",
"type": "TOLL_BOOTH",
"name": "Pedágio - Mococa",
"address": "SP-340 - Rodovia Professor Boanerges Nogueira de Lima - Km 254+7",
"city": "Casa Branca",
"state": {
"name": "São Paulo",
"code": "SP"
},
"country": "Brasil",
"currency": "BRL",
"concession": "Rota Mogiana",
"direction": "NORTH",
"coordinates": {
"latitude": -21.6408129,
"longitude": -47.0477845
},
"serviceTypes": [
{
"serviceId": "35353402546900103",
"name": "ANTTCODE"
},
{
"serviceId": "101140011",
"name": "Conectcar"
}
],
"price": 16.20,
"active": true
}
],
"legTotalCost": 16.20,
"vehicleType": "TRUCK_WITH_TWO_DOUBLE_AXLES",
"calculationDate": 1793816696871
},
"arrivalSiteId": "Point 2-Guaxupe",
"departureSiteId": "Point 1-Casa Branca"
}
],
"crossedBorders": [
{
"state": "SP",
"country": "BRASIL"
},
{
"state": "MG",
"country": "BRASIL"
}
],
"startAddress": {
"road": "RUA SÃO PAULO",
"district": "Centro",
"zipCode": "13700049",
"city": "CASA BRANCA",
"state": {
"code": "SP",
"name": "SÃO PAULO"
},
"mainLocation": {
"lat": -21.780329800344585,
"lon": -47.07950794999991
}
},
"endAddress": {
"road": "RUA JOSÉ OLEGÁRIO DA SILVEIRA",
"district": "PARQUE DO LAGO",
"zipCode": "37831024",
"city": "GUAXUPÉ",
"state": {
"code": "MG",
"name": "MINAS GERAIS"
},
"mainLocation": {
"lat": -21.312143750217658,
"lon": -46.7183685
}
},
"source": "MAPLINK",
"createdAt": 1793816696967,
"expiryIn": 1794421496626
}