> For the complete documentation index, see [llms.txt](https://docs.api.persat.com.ar/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.api.persat.com.ar/modulos/gestion-de-entregas/rutas-de-entrega/obtener-ruta.md).

# Obtener Ruta

Las Rutas en Persat tienen un identificador \_id unico, mediante el cual podemos consultar su contenido o estado.

Para obtener una Ruta se debe realizar un GET como el que se muestra a continuación

<mark style="color:blue;">`GET`</mark> `https://api.persat.com.ar/v1/deliveryRoute/id`

#### Path Parameters

| Name                                 | Type   | Description              |
| ------------------------------------ | ------ | ------------------------ |
| id<mark style="color:red;">\*</mark> | Number | Identificador de la ruta |

#### Headers

| Name                                            | Type   | Description     |
| ----------------------------------------------- | ------ | --------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer API\_KEY |

### Respuesta

{% tabs %}
{% tab title="200: OK La consulta se ejecutó con éxito" %}

```json
{
    "success": true,
    "data": {
      "_id":1707684808389,
      "assignation_info":{
         "assigned_date":"2024-02-11T00:00:00.000Z",
         "device_id":14,
         "device_name":"AA123ZZ Leonardo Diaz"
      },
      "departure":{
         "name":"Deposito Principal",
         "planned_departure_time":480
      },
      "deliveries":[
         {
            "_id":"JGBG41276",
            "state":"FINISHED",
            "planned_arrival_time":489,
            "arrival_time": 501            /* Solo cuando el Chofer entregó */
         },
         {
            "_id":"EJDS48377",
            "state":"ASSIGNED",
            "planned_arrival_time":508
         },
         {
            "_id":"RGLU11921",
            "state":"ASSIGNED",
            "planned_arrival_time":525
         },
         {
            "_id":"AQAW56259",
            "state":"ASSIGNED",
            "planned_arrival_time":536
         }
      ],
      "arrival":{
         "name":"Deposito Minoristas",
         "planned_arrival_time":558
      },
      "route_distance":15650,
      "route_time":78 
    }
}
```

{% endtab %}

{% tab title="404: Not Found No se encontro la entrega requerida" %}

```json
{
    "success": false,
    "error": {
        "status": 404,
        "type": "NOT_FOUND",
        "userMessage": "El recurso no existe"
    }
}
```

{% endtab %}
{% endtabs %}

### Análisis de la respuesta

**id:** Number identificando inequivocamente a la Ruta.

**assignation\_info:** Objeto Json con datos referidos a la asignación de la ruta

**assignation\_info.assigned\_date:** Fecha de la ruta. No posee horas, minutos, segundos ni milisegundos.&#x20;

{% hint style="info" %}
Fecha en horario local. Entonces para el caso del ejemplo, y sin importar si soy un cliente de Argentina, Ecuardor o Mexico, la fecha mostrada representa el día 11  de Febrero de 2024

```
"assignation_info.assigned_date:": "2024-02-11T00:00:00.000Z"
```

{% endhint %}

**assignation\_info.device\_id:** Number, identificando inequivocamente al dispositivo que tiene asignada la ruta. Los dispositivos se pueden visualizar en [Dispositivos](/entidades-basicas/dispositivos.md)

**assignation\_info.device\_name:** String. Es el nombre del dispositivo.&#x20;

**departure:** Objeto Json que representa los datos del punto inicial de la ruta.

**departure.name:** Nombre del depósito inicial.

**departure.planned\_departure\_time:** Tiempo de inicio de la ruta expresado en minutos desde el inicio del día.

{% hint style="info" %}
Para el caso del ejemplo, 480, representa las 08:00 AM. Ya que 480/60 = 8.

Si recibieramos el valor 790, para transformarlo a un horario legible, debemos hacer&#x20;

* **Calcular Horas:** Math.floor(<mark style="color:purple;">**790**</mark> / 60) = <mark style="background-color:orange;">13</mark>
* **Calcular Minutos:** <mark style="color:purple;">**790**</mark> - (<mark style="background-color:orange;">13</mark> \* 60) = 10

Entonces 790 = 13:10&#x20;
{% endhint %}

**deliveries:** Array con las entregas de la ruta. Las mismas ya vienen ordenadas en el array, con lo cual deliveries\[0] es la primer entrega, mientras que la últlima del array es la última entrega del recorrido.

**deliveries\[i].\_id:** String. Identificador inequivoco de la entrega

**deliveries\[i].state:** Estado de la entrega.

**deliveries\[i].planned\_arrival\_time:** Tiempo de llegada planificado a la entrega, expresado en minutos desde el inicio del día. Se calcula de la misma forma que **departure.planned\_departure\_time**

**deliveries\[i].arrival\_time:** <mark style="background-color:blue;">\[OPCIONAL]</mark>: Este field solo es proporcionado si el chofer completó el formulario de entrega, indicándose de esta forma que la misma ha finalizado. Es un tiempo en minutos desde el inicio del día. Se calcula de la misma forma que **departure.planned\_departure\_time**

**arrival:** Objeto Json que representa los datos del punto final de la ruta. En general suele ser el mismo depósito inicial.

**arrival.name:** Nombre del depósito final.

**arrival.planned\_arrival\_time:** Tiempo de finalización de la ruta expresado en minutos desde el inicio del día. Se calcula de la misma forma que **departure.planned\_departure\_time**

**route\_distance:** Number, indicando la distancia total en km de la ruta.

**route\_time:** Number, indicando la duración en minutos desde la salida del vehículo hasta la llegada al depósito final.
