# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.api.persat.com.ar/modulos/gestion-de-entregas/rutas-de-entrega/obtener-ruta.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
