# Obtener Visitas a Clientes

En base al recorrido realizado por el dispositivo, se puede obtener cuales fueron los clientes visitados.&#x20;

{% hint style="info" %} <mark style="color:blue;">**IMPORTANTE:**</mark>

Debido a que la generación del recorrido para el cálculo de las visitas, requiere de una gran demanda de computo. Las visitas son calculadas automáticamente por la madrugada. Siendo el resultado obtenido, las visitas del día anterior.

Por lo que si quiero obtener las visitas de "hoy", el resultado va a ser nulo. La consulta debe hacerse a día vencido.
{% endhint %}

Se pueden hacer dos tipos de consulta:

1. Consulta de visitas en una fecha particular
2. Consulta de visitas en un mes entero

### Consulta de visitas en una fecha particular

<mark style="color:blue;">`GET`</mark> `https://api.persat.com.ar/v1/devices-visits/YYYY-MM-dd/device_id`

#### Path Parameters

| Name                                         | Type   | Description                                  |
| -------------------------------------------- | ------ | -------------------------------------------- |
| YYYY-MM-dd<mark style="color:red;">\*</mark> | Date   | Fecha en la que quiero consultar las visitas |
| device\_id<mark style="color:red;">\*</mark> | Number | Identificador del dispositivo                |

#### Headers

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

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

```json
{
    "success": true,
    "data": [
        {
            "device_id": 104,
            "date": "2022-12-02T20:23:29.000Z",
            "duration": 321000,
            "client": {
                "uid_client": "32488095",
                "company_name": "Empresa 1 s.r.l"
            }
        },
        {
            "device_id": 104,
            "date": "2022-12-02T15:01:32.000Z",
            "duration": 675000,
            "client": {
                "uid_client": "16682996",
                "company_name": "Empresa 2 s.r.l"
            }
        }, {...} 
    ]
}
```

{% endtab %}

{% tab title="404: Not Found No se encontro el dispositivo" %}

```json
{
    "success": false,
    "error": {
        "status": 404,
        "type": "NOT_FOUND",
        "userMessage": "No existe un device con este id"
    }
}
```

{% endtab %}

{% tab title="400: Bad Request device\_id no es un número" %}

```javascript
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'device_id' debe ser un número entero"
    }
}
```

{% endtab %}

{% tab title="400: Bad Request Error en la fecha" %}

```javascript
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'localdate' debe estar definido en formato YYYY-MM | YYYY-MM-DD"
    }
}
```

{% endtab %}
{% endtabs %}

### Consulta de visitas en un mes entero

<mark style="color:blue;">`GET`</mark> `https://api.persat.com.ar/v1/devices-visits/YYYY-MM/device_id`

#### Path Parameters

| Name                                         | Type   | Description                                |
| -------------------------------------------- | ------ | ------------------------------------------ |
| YYYY-MM<mark style="color:red;">\*</mark>    | Date   | Mes en el que quiero consultar las visitas |
| device\_id<mark style="color:red;">\*</mark> | Number | Identificador del dispositivo              |

#### Headers

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

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

```json
{
    "success": true,
    "data": [
        {
            "device_id": 104,
            "date": "2022-12-02T20:23:29.000Z",
            "duration": 321000,
            "client": {
                "uid_client": "32488095",
                "company_name": "Empresa 1 s.r.l"
            }
        },
        {
            "device_id": 104,
            "date": "2022-12-02T15:01:32.000Z",
            "duration": 675000,
            "client": {
                "uid_client": "16682996",
                "company_name": "Empresa 2 s.r.l"
            }
        }, {...} 
    ]
}
```

{% endtab %}

{% tab title="404: Not Found No se encontro el dispositivo" %}

```json
{
    "success": false,
    "error": {
        "status": 404,
        "type": "NOT_FOUND",
        "userMessage": "No existe un device con este id"
    }
}
```

{% endtab %}

{% tab title="400: Bad Request device\_id no es un número" %}

```javascript
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'device_id' debe ser un número entero"
    }
}
```

{% endtab %}

{% tab title="400: Bad Request Error en la fecha" %}

```javascript
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'localdate' debe estar definido en formato YYYY-MM | YYYY-MM-DD"
    }
}
```

{% endtab %}
{% endtabs %}

### Analizando la Respuesta para ambos casos

```json
{
    "success": true,
    "data": [
        {
            "device_id": 104,
            "date": "2022-12-02T20:23:29.000Z",
            "duration": 321000,
            "client": {
                "uid_client": "32488095",
                "company_name": "Empresa 1 s.r.l"
            }
        },
        {
            "device_id": 104,
            "date": "2022-12-02T15:01:32.000Z",
            "duration": 675000,
            "client": {
                "uid_client": "16682996",
                "company_name": "Empresa 2 s.r.l"
            }
        }, {...} 
    ]
}
```

**data:** Array con objetos JSON. Cada elemento del array contiene los datos de la visita al cliente. Están ordenados por fecha de visita de mayor a menor. Es decir, el primer item es la última visita realizada del día o mes (dependiendo la consulta)

**device\_id:** Identificador del Dispositivo.&#x20;

**date:** Fecha y hora en que se realizó la visita

{% hint style="warning" %}
Si bien la fecha esta representada en UTC, hay que considerarla en <mark style="color:orange;">**horario local**</mark>. 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 5 de Diciembre de 2022 a las 15:01 hora de mi país

```
"date": "2022-12-02T15:01:32.000Z",
```

{% endhint %}

**duration:** Duración de la visita en milisegundos

**client:** Cliente visitado. Objeto Json con los siguientes fields:

**client.uid\_client:** Nro. de cliente

**client.company\_name:** Nombre/Razón social del cliente


---

# 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/rastreo-satelital/obtener-visitas-a-clientes.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.
