{"id":1993,"date":"2023-12-18T17:13:30","date_gmt":"2023-12-18T17:13:30","guid":{"rendered":"https:\/\/developers.maplink.global\/ejemplo-1-endpoint-independiente\/"},"modified":"2025-12-16T21:23:44","modified_gmt":"2025-12-16T21:23:44","slug":"estructura-de-respuesta-endpoint-independiente","status":"publish","type":"post","link":"https:\/\/developers.maplink.global\/es\/estructura-de-respuesta-endpoint-independiente\/","title":{"rendered":"Estructura de respuesta &#8211; Endpoint independiente"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Nota: <\/strong>El endpoint independiente <strong>s\u00f3lo se recomienda si utiliza routers de terceros<\/strong>. Si utiliza la <strong>Trip API<\/strong>, puede obtener los peajes en la misma solicitud.<\/p>\n<\/blockquote>\n\n\n\n<p><\/p>\n\n\n\n<p>En este ejemplo tenemos una ruta simple que pasa por la caseta de peaje de Tres Mar\u00edas en M\u00e9xico. Utilizaremos el endpoint  independiente para obtener el c\u00e1lculo del peaje.<\/p>\n\n\n\n<p>La ruta fue generada por la <a href=\"https:\/\/developers.google.com\/maps\/documentation\/routes\" data-type=\"link\" data-id=\"https:\/\/developers.google.com\/maps\/documentation\/routes\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">API Routes<\/a> de Google y est\u00e1 en formato de <em>polyline<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Solicitud<\/h2>\n\n\n\n<p>Dado que la ruta fue generada por una API de Google, deber\u00e1 establecer el par\u00e1metro <code>source<\/code> en <code>GMAPS<\/code>. Si la ruta fue generada por la <a href=\"https:\/\/developers.maplink.global\/es\/creacion-de-solicitudes-para-la-api-trip\/\" data-type=\"post\" data-id=\"1902\">API Trip<\/a>, o por alg\u00fan otro servicio, no ser\u00e1 necesario informar el par\u00e1metro <code>source<\/code>.<\/p>\n\n\n\n<p>En <code>billing<\/code>&nbsp;lo definiremos como <code>FREE_FLOW<\/code>, para obtener el retorno tanto de peajes como de p\u00f3rticos. Si el valor es <code>DEFAULT<\/code>, solo se devolver\u00e1n los peajes convencionales (casetas).<\/p>\n\n\n\n<p>El par\u00e1metro <code>legs<\/code>&nbsp;es una matriz de objetos donde cada objeto representa una secci\u00f3n de la ruta. En cada tramo debemos definir el par\u00e1metro <code>points<\/code>, que contiene las coordenadas que componen el recorrido. En este caso s\u00f3lo tendremos un <em>leg<\/em> que corresponde a todo el recorrido. Las coordenadas de la ruta est\u00e1n en formato de <em>string<\/em>, codificadas como una <em>polyline<\/em>.<\/p>\n\n\n\n<p>Para cada objeto contenido en <code>legs<\/code>, deber\u00e1 informar el tipo de veh\u00edculo utilizado para esa secci\u00f3n. En el par\u00e1metro <code>vehicleType<\/code>&nbsp;definiremos que la ruta se realizar\u00e1 con un cami\u00f3n de cuatro ejes dobles, para ello utilizaremos el valor TRUCK_WITH_FOUR_DOUBLE_AXLES. En el par\u00e1metro <code>condition<\/code>, estableceremos <code>billingType<\/code> como <code>NORMAL<\/code> y <code>period<\/code> como <code>NORMAL<\/code>.<\/p>\n\n\n\n<p>La solicitud completa se puede encontrar a continuaci\u00f3n:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n    \"source\": \"GMAPS\",\n    \"billing\": \"FREE_FLOW\",\n    \"legs\": [\n        {\n            \"vehicleType\": \"TRUCK_WITH_FOUR_DOUBLE_AXLES\",\n            \"condition\": {\n                \"period\": \"NORMAL\",\n                \"billingType\": \"NORMAL\"\n            },\n            \"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@\"\n        }\n    ]\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Respuesta<\/h2>\n\n\n\n<p>En la respuesta tendremos los siguientes campos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>totalCost<\/code>&nbsp;\u2013 Valor total del peaje en todo el recorrido;<\/li>\n\n\n\n<li><code>legs<\/code>&nbsp;\u2013 Array de objetos donde cada objeto representa un tramo de la ruta. Cada <strong><em>leg<\/em>&nbsp;<\/strong>de la respuesta corresponde a un <strong><em>leg<\/em>&nbsp;<\/strong> de la solicitud. Se devolver\u00e1n los siguientes campos en cada objeto:\n<ul class=\"wp-block-list\">\n<li><code>tolls<\/code>&nbsp;\u2013 Objeto con los valores e informaci\u00f3n de cada peaje en el tramo correspondiente. Cada objeto devuelto en <code>tolls<\/code>&nbsp;representa un peaje y contendr\u00e1 la siguiente informaci\u00f3n::\n<ul class=\"wp-block-list\">\n<li><code>id<\/code>\u00a0\u2013 Identificador \u00fanico de peaje;<\/li>\n\n\n\n<li><code>type<\/code>\u00a0\u2013 Tipo de peaje. Los valores posibles son:\n<ul class=\"wp-block-list\">\n<li><code>TOLL_BOOTH<\/code>\u00a0\u2013 Casetas de peaje convencionales;<\/li>\n\n\n\n<li><code>MUNICIPAL_TOLL_BOOTH<\/code>\u00a0<strong>\u2013\u00a0<\/strong>Similar a\u00a0<code>TOLL_BOOTH<\/code>, sirve \u00fanicamente para identificar que la caseta de peaje es municipal;<\/li>\n\n\n\n<li><code>TOLL_GANTRY<\/code>\u00a0\u2013 Corresponde a los p\u00f3rticos convencionales;<\/li>\n\n\n\n<li><code>ENTRY_GANTRY<\/code>\u00a0\u2013 Corresponde a los p\u00f3rticos de entrada, utilizados en autopistas con cobro de peaje por tramos;<\/li>\n\n\n\n<li><code>EXIT_GANTRY<\/code>\u00a0\u2013 Corresponde a los p\u00f3rticos de salida, utilizados en autopistas con cobro de peaje por tramos.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>name<\/code> &#8211; Nombre del peaje;<\/li>\n\n\n\n<li><code>address<\/code>  &#8211; Direcci\u00f3n de peaje;<\/li>\n\n\n\n<li><code>city<\/code>  &#8211; Ciudad de peaje;<\/li>\n\n\n\n<li><code>state<\/code>  &#8211; Objeto que contiene el nombre del Estado (<code>name<\/code>) y su acr\u00f3nimo (<code>code<\/code>);<\/li>\n\n\n\n<li><code>country<\/code>  &#8211; Pa\u00eds de peaje;<\/li>\n\n\n\n<li><code>concession<\/code>  &#8211; Concesionario responsable del peaje;<\/li>\n\n\n\n<li><code>coordinates<\/code>  &#8211; Coordenadas (latitud y longitud) del peaje;<\/li>\n\n\n\n<li><code>price<\/code>  &#8211; Precio por peaje;<\/li>\n\n\n\n<li><code>serviceTypes<\/code> &#8211; Array con c\u00f3digos para la integraci\u00f3n con sistemas de pago autom\u00e1tico. Actualmente s\u00f3lo est\u00e1 disponible en Brasil\n<ul class=\"wp-block-list\">\n<li><code>serviceId<\/code> &#8211; C\u00f3digo para la integraci\u00f3n;<\/li>\n\n\n\n<li><code>name<\/code> &#8211; Descripci\u00f3n del c\u00f3digo de servicio.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>legTotalCost<\/code>&nbsp;\u2013 Costo total del peaje para la secci\u00f3n;<\/li>\n\n\n\n<li><code>vehicleType&nbsp;<\/code>\u2013 Tipo de veh\u00edculo considerado para el tramo;<\/li>\n\n\n\n<li><code>calculationDate<\/code>&nbsp;\u2013 Fecha y hora consideradas para el tramo, en formato de&nbsp;<em>timestamp;<\/em><\/li>\n\n\n\n<li><code>condition<\/code>&nbsp;\u2013 Si se utiliza el par\u00e1metro <code>condition<\/code> en la solicitud, se devolver\u00e1 este objeto que contiene el <code>billingType<\/code>&nbsp;y <code>period<\/code>&nbsp;se consideraron para el tramo.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>A continuaci\u00f3n encontrar\u00e1 la respuesta completa:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n    \"legs\": [\n        {\n            \"tolls\": [\n                {\n                    \"id\": \"1910\",\n                    \"type\": \"TOLL_GANTRY\",\n                    \"name\": \"P\u00f3rtico - Cuicuilco\",\n                    \"address\": \"Anillo Perif\u00e9rico Boulevard Adolfo L\u00f3pez Mateos\",\n                    \"city\": \"Ciudad de M\u00e9xico\",\n                    \"state\": {\n                        \"name\": \"Ciudad de M\u00e9xico\",\n                        \"code\": \"Ciudad de M\u00e9xico\"\n                    },\n                    \"country\": \"M\u00e9xico\",\n                    \"concession\": \" \",\n                    \"direction\": \"EAST\",\n                    \"coordinates\": {\n                        \"latitude\": 19.30299684,\n                        \"longitude\": -99.17621448\n                    },\n                    \"serviceTypes\": [],\n                    \"price\": 0.00\n                },\n                {\n                    \"id\": \"2602\",\n                    \"type\": \"TOLL_GANTRY\",\n                    \"name\": \"P\u00f3rtico - Viaducto Tlalpan (V.E.T.)\",\n                    \"address\": \"Ciudad de M\u00e9xico - Cuernavaca\",\n                    \"city\": \"Ciudad de M\u00e9xico\",\n                    \"state\": {\n                        \"name\": \"Ciudad de M\u00e9xico\",\n                        \"code\": \"Ciudad de M\u00e9xico\"\n                    },\n                    \"country\": \"M\u00e9xico\",\n                    \"concession\": \" \",\n                    \"direction\": \"SOUTH\",\n                    \"coordinates\": {\n                        \"latitude\": 19.23586718,\n                        \"longitude\": -99.14526105\n                    },\n                    \"serviceTypes\": [],\n                    \"price\": 0.00\n                }\n            ],\n            \"legTotalCost\": 0.00,\n            \"vehicleType\": \"TRUCK_WITH_FOUR_DOUBLE_AXLES\",\n            \"condition\": {\n                \"billingType\": \"NORMAL\",\n                \"period\": \"NORMAL\"\n            },\n            \"calculationDate\": 1765914894477\n        }\n    ],\n    \"totalCost\": 0.00\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Nota: El endpoint independiente s\u00f3lo se recomienda si utiliza routers de terceros. Si utiliza la Trip API, puede obtener los peajes en la misma solicitud. En este ejemplo tenemos una ruta simple que pasa por la caseta de peaje de Tres Mar\u00edas en M\u00e9xico. Utilizaremos el endpoint independiente para obtener el c\u00e1lculo del peaje. La [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[149],"tags":[],"class_list":["post-1993","post","type-post","status-publish","format-standard","hentry","category-toll-es"],"acf":[],"_links":{"self":[{"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/posts\/1993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/comments?post=1993"}],"version-history":[{"count":31,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/posts\/1993\/revisions"}],"predecessor-version":[{"id":3609,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/posts\/1993\/revisions\/3609"}],"wp:attachment":[{"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/media?parent=1993"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/categories?post=1993"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/developers.maplink.global\/es\/wp-json\/wp\/v2\/tags?post=1993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}