> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/user/es/guide/devices-and-settings/connectivity/data-forwarding/navixy-ws.md).

# Navixy Web Service

Permita que un sistema de terceros consulte datos históricos de GPS de Navixy mediante SOAP, solicitando hasta 100 dispositivos y un día de datos por llamada.

Navixy Web Service le proporciona a un sistema de terceros un punto de conexión SOAP que consulta para obtener datos de seguimiento. Es la opción que debe elegir cuando el sistema receptor prefiere obtener los datos según su propia programación, o cuando no puede aceptar una conexión entrante.

{% hint style="warning" %}
Navixy Web Service funciona de manera diferente a cualquier otro protocolo en el **Reenvío de datos** bloque. Los demás envían cada mensaje a un destino a medida que llega. Navixy Web Service no envía nada: Navixy aloja un punto de conexión y el sistema receptor solicita los datos que quiere.

Esto tiene dos consecuencias. Navixy nunca se conecta al sistema receptor, por lo que los **Dirección** y **Puerto** campos no se usan. Y, como el sistema receptor lee datos almacenados en lugar de una transmisión en vivo, una consulta puede abarcar un período pasado, lo que ningún otro protocolo admite.
{% endhint %}

Como los datos se transmiten en XML sobre SOAP y no interviene ningún formato específico de Navixy, este protocolo es adecuado para cualquier socio que pueda consumir un WSDL.

En Navixy, seleccione **Navixy Web Service** en la **Protocolo** el menú desplegable.

## Qué devuelve el punto de conexión

El punto de conexión devuelve un registro por cada posición almacenada, con estos campos:

| Campo                  | Contenido                                                                                                                                                                             |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `deviceId`             | El ID del dispositivo tal como se indica en la solicitud                                                                                                                              |
| `dateGps`              | Momento en que el dispositivo registró la posición, en UTC                                                                                                                            |
| `latitud` y `longitud` | Posición en grados                                                                                                                                                                    |
| `altitud`              | Altitud en metros                                                                                                                                                                     |
| `speedGps`             | Velocidad en kilómetros por hora                                                                                                                                                      |
| `rumbo`                | Rumbo como dirección de la brújula, por ejemplo `N`, `SE`, o `O`                                                                                                                      |
| `ignición`             | Si la ignición estaba activada                                                                                                                                                        |
| `numSat`               | Número de satélites que estaba usando el dispositivo                                                                                                                                  |
| `odómetro`             | La lectura del odómetro informada por el dispositivo, en kilómetros                                                                                                                   |
| `unitPlate`            | El número de matrícula del vehículo vinculado al dispositivo                                                                                                                          |
| `eventId`              | El código del evento, siguiendo [los identificadores de eventos de Navixy Generic Protocol](/docs/iot-logic-api/technologies/navixy-generic-protocol/predefined-event-identifiers.md) |

Dos campos dependen de datos ajenos al dispositivo. `unitPlate` está vacío cuando el dispositivo no está vinculado a un vehículo, y Navixy acorta el número de matrícula eliminando espacios y guiones y conservando los primeros seis caracteres. Un dispositivo que no tiene permiso para conectarse no devuelve ningún registro, en lugar de un error.

## Límites de solicitud

Cada solicitud debe mantenerse dentro de estos límites, o el punto de conexión devolverá un error:

* Como máximo **100 IDs de dispositivo** por solicitud.
* Como máximo **un día** entre la fecha de inicio y la fecha de fin. Se tolera un rango ligeramente más amplio, pero una solicitud que abarque varios días falla con `Intervalo demasiado largo`.

Para recopilar un período más largo, envíe una solicitud por día.

## Antes de comenzar

A diferencia de los otros protocolos, no necesita nada de un tercero. Usted elige el nombre de usuario y la contraseña, y el sistema receptor los utiliza para autenticarse.

Elija un nombre de usuario que ningún otro retransmisor de su cuenta ya use, porque Navixy identifica al retransmisor por el par nombre de usuario y contraseña.

## Configurar el punto de conexión

{% stepper %}
{% step %}

### Abra el bloque Reenvío de datos

Vaya a **Dispositivos**, seleccione un dispositivo y luego busque el **Reenvío de datos** .
{% endstep %}

{% step %}

### Abra la lista de protocolos

Haga clic en **Protocolos**, luego haga clic en **+** para agregar una configuración.
{% endstep %}

{% step %}

### Introduzca la configuración de Navixy Web Service

Complete los campos de la siguiente manera:

* **Nombre**: una etiqueta que identifica este retransmisor
* **Protocolo**: **Navixy Web Service**
* **Dirección**: cualquier dirección válida. Este protocolo no la usa, pero el campo es obligatorio.
* **Puerto**: cualquier número de puerto. Este protocolo tampoco lo usa.
* **Usuario**: un nombre de usuario de su elección, que no esté siendo usado por otro retransmisor
* **Contraseña**: una contraseña de su elección

Entregue el nombre de usuario y la contraseña a la parte que consultará el punto de conexión.
{% endstep %}

{% step %}

### Habilitar y guardar

Actívelo **Habilitado**, luego haga clic en **Guardar**.
{% endstep %}

{% step %}

### Vincular el retransmisor a sus dispositivos

En cada dispositivo **Reenvío de datos** active el interruptor del retransmisor que creó y luego haga clic en **Guardar**. Solo los dispositivos vinculados devuelven datos. El ID externo no se usa en este protocolo.
{% endstep %}
{% endstepper %}

## Consultar el endpoint

La dirección WSDL depende de la plataforma que hospede su cuenta:

| Plataforma | WSDL                                                  |
| ---------- | ----------------------------------------------------- |
| EU         | <https://soap.navixy.com/LocationDataService?wsdl>    |
| US         | <https://soap.us.navixy.com/LocationDataService?wsdl> |

Envíe una solicitud en este Formulario, con el inicio de sesión y la contraseña en el encabezado SOAP y los IDs de los dispositivos y el rango de fechas en el cuerpo. Los IDs de los dispositivos son los valores IMEI de los dispositivos:

{% code overflow="wrap" %}

```xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org">
   <soapenv:Header>
      <tem:authentication>
         <login>nombre de usuario</login>
         <password>contraseña</password>
      </tem:authentication>
   </soapenv:Header>
   <soapenv:Body>
      <tem:dataRequest>
         <!--1 a 100 repeticiones:-->
         <deviceIds>866258048802349</deviceIds>
         <startDate>2022-08-30T00:00:00Z</startDate>
         <endDate>2022-08-31T00:00:00Z</endDate>
      </tem:dataRequest>
   </soapenv:Body>
</soapenv:Envelope>
```

{% endcode %}

La respuesta contiene un `resultado` elemento por cada posición almacenada:

{% code overflow="wrap" %}

```xml
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <ns:getLocationDataResponse xmlns:ns="http://tempuri.org">
            <result>
                <dateGps>2019-10-15T08:48:50.000Z</dateGps>
                <Ignición>false</Ignición>
                <latitude>75.9270866</latitude>
                <longitude>-85.5207616</longitude>
                <speedGps>0.0</speedGps>
                <unitPlate>JRT1550</unitPlate>
                <altitude>284.0</altitude>
                <course>N</course>
                <deviceId>866258048802349</deviceId>
                <numSat>15</numSat>
                <Odómetro>59845</Odómetro>
                <eventId>401</eventId>
            </result>
        </ns:getLocationDataResponse>
    </S:Body>
</S:Envelope>
```

{% endcode %}

## Gestionar el punto de conexión

Para cambiar o revocar el acceso:

* Desactive el interruptor de un dispositivo **Reenvío de datos** bloquear para excluir ese dispositivo de los resultados de la consulta y mantener los demás disponibles.
* Haga clic en **Protocolos**, seleccione la fila y edítela para cambiar el inicio de sesión o la contraseña. Las consultas que usan las credenciales antiguas dejan de funcionar de inmediato, así que avise a la parte que realiza la consulta antes de cambiarlas.
* Elimine la configuración de la **Protocolos** lista para revocar por completo el acceso. Confirme en el cuadro de diálogo.

## Solución de problemas

Cuando una consulta no devuelve datos, verifique lo siguiente en este orden:

1. El retransmisor está habilitado y su interruptor está activado para los dispositivos que está consultando.
2. El inicio de sesión y la contraseña en el encabezado SOAP coinciden con la configuración del retransmisor.
3. Los IDs de dispositivo en la solicitud son los valores IMEI de los dispositivos de su cuenta.
4. El rango de fechas abarca un período en el que esos dispositivos estaban reportando.
5. El rango de fechas no abarca más de un día y la solicitud incluye no más de 100 IDs de dispositivo.

Para probar una solicitud antes de escribir código de integración, use [SoapUI](https://www.soapui.org/downloads/soapui/):

1. Instale SoapUI.
2. Desde el **Archivo** menú, seleccione **Nuevo proyecto SOAP**.
3. Pegue la dirección WSDL de su plataforma en el **WSDL** campo.
4. Seleccione **Crear solicitudes de ejemplo para todas las operaciones**, luego complete las credenciales y los IDs de dispositivo.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://navixy.com/docs/user/es/guide/devices-and-settings/connectivity/data-forwarding/navixy-ws.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
