> 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/fr/guide/devices-and-settings/connectivity/data-forwarding/navixy-ws.md).

# Navixy Web Service

Permettez à un système tiers d'interroger les données GPS historiques de Navixy via SOAP, en demandant jusqu'à 100 appareils et une journée de données par appel.

Navixy Web Service fournit à un système tiers un point de terminaison SOAP qu'il interroge pour obtenir des données de suivi. C'est l'option à choisir lorsque le système récepteur préfère récupérer les données selon son propre calendrier, ou lorsqu'il ne peut pas accepter de connexion entrante.

{% hint style="warning" %}
Navixy Web Service fonctionne différemment de tous les autres protocoles du **Transfert des données** bloc. Les autres poussent chaque message vers une destination dès qu'il arrive. Navixy Web Service ne pousse rien : Navixy héberge un point de terminaison, et le système récepteur demande les données qu'il souhaite.

Cela a deux conséquences. Navixy ne se connecte jamais au système récepteur, donc les **Adresse** et **Port** champs ne sont pas utilisés. Et comme le système récepteur lit des données stockées plutôt qu'un flux en direct, une requête peut couvrir une période passée, ce qu'aucun autre protocole ne prend en charge.
{% endhint %}

Comme les données sont en XML via SOAP et qu'aucun format spécifique à Navixy n'intervient, ce protocole convient à tout partenaire capable d'exploiter un WSDL.

Dans Navixy, sélectionnez **Navixy Web Service** dans le **Protocole** la liste déroulante.

## Ce que renvoie le point de terminaison

Le point de terminaison renvoie un enregistrement par position stockée, avec les champs suivants :

| Champ                     | Contenu                                                                                                                                                                        |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `deviceId`                | L'identifiant de l'appareil tel qu'indiqué dans la requête                                                                                                                     |
| `dateGps`                 | Moment auquel l'appareil a enregistré la position, en UTC                                                                                                                      |
| `latitude` et `longitude` | Position en degrés                                                                                                                                                             |
| `altitude`                | Altitude en mètres                                                                                                                                                             |
| `speedGps`                | Vitesse en kilomètres par heure                                                                                                                                                |
| `cap`                     | Cap sous forme de direction de boussole, comme `N`, `SE`, ou `O`                                                                                                               |
| `contact`                 | Si le contact était mis                                                                                                                                                        |
| `numSat`                  | Nombre de satellites utilisés par l'appareil                                                                                                                                   |
| `Compteur kilométrique`   | Le relevé du compteur kilométrique signalé par l'appareil, en kilomètres                                                                                                       |
| `unitPlate`               | Le numéro d'immatriculation du véhicule lié à l'appareil                                                                                                                       |
| `eventId`                 | Le code d'événement, selon [les identifiants d'événement du Navixy Generic Protocol](/docs/iot-logic-api/technologies/navixy-generic-protocol/predefined-event-identifiers.md) |

Deux champs dépendent de données extérieures à l'appareil. `unitPlate` est vide lorsque l'appareil n'est pas lié à un véhicule, et Navixy raccourcit le numéro d'immatriculation en supprimant les espaces et les tirets et en conservant les six premiers caractères. Un appareil qui n'est pas autorisé à se connecter ne renvoie aucun enregistrement, plutôt qu'une erreur.

## Limites de requête

Chaque requête doit respecter ces limites ; sinon, le point de terminaison renvoie une erreur :

* Au maximum **100 identifiants d'appareil** par requête.
* Au maximum **un jour** entre la date de début et la date de fin. Une plage légèrement plus longue est tolérée, mais une requête couvrant plusieurs jours échoue avec `Intervalle trop long`.

Pour obtenir une période plus longue, envoyez une requête par jour.

## Avant de commencer

Contrairement aux autres protocoles, vous n'avez besoin de rien de la part d'un tiers. Vous choisissez l'identifiant de connexion et le mot de passe, et le système récepteur les utilise pour s'authentifier.

Choisissez un identifiant qu'aucun autre retransmetteur de votre compte n'utilise déjà, car Navixy identifie le retransmetteur par la paire identifiant/mot de passe.

## Configurer le point de terminaison

{% stepper %}
{% step %}

### Ouvrez le bloc Transfert des données

Accédez à **Paramétrage des traceurs**, sélectionnez un appareil, puis recherchez le **Transfert des données** bloc.
{% endstep %}

{% step %}

### Ouvrez la liste des protocoles

Cliquez sur **Protocoles**, puis cliquez sur **+** pour ajouter une configuration.
{% endstep %}

{% step %}

### Saisissez les paramètres de Navixy Web Service

Remplissez les champs comme suit :

* **Nom** : un libellé qui identifie ce retransmetteur
* **Protocole**: **Navixy Web Service**
* **Adresse**: n'importe quelle adresse valide. Ce protocole ne l'utilise pas, mais le champ est obligatoire.
* **Port**: n'importe quel numéro de port. Ce protocole ne l'utilise pas non plus.
* **Identifiant**: un identifiant de votre choix, qui n'est pas déjà utilisé par un autre retransmetteur
* **Mot de passe**: un mot de passe de votre choix

Communiquez l'identifiant et le mot de passe au tiers qui interrogera le point de terminaison.
{% endstep %}

{% step %}

### Activez et enregistrez

Activez **Activé**, puis cliquez sur **Enregistrer**.
{% endstep %}

{% step %}

### Associez le retransmetteur à vos appareils

Dans chaque appareil **Transfert des données** bloc, activez le bouton bascule du retransmetteur que vous avez créé, puis cliquez sur **Enregistrer**. Seuls les appareils associés renvoient des données. L'identifiant externe n'est pas utilisé par ce protocole.
{% endstep %}
{% endstepper %}

## Interroger le point de terminaison

L'adresse WSDL dépend de la plateforme qui héberge votre compte :

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

Envoyez une requête sous cette forme, avec le login et le mot de passe dans l'en-tête SOAP et les identifiants des appareils ainsi que la plage de dates dans le corps. Les identifiants des appareils correspondent aux valeurs IMEI des appareils :

{% code overflow="wrap" %}

```xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org">
   <soapenv:Header>
      <tem:authentication>
         <login>username</login>
         <password>password</password>
      </tem:authentication>
   </soapenv:Header>
   <soapenv:Body>
      <tem:dataRequest>
         <!--1 to 100 repetitions:-->
         <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 réponse contient un `résultat` élément par position enregistrée :

{% 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>
                <Contact>false</Contact>
                <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>
                <Compteur kilométrique>59845</Compteur kilométrique>
                <eventId>401</eventId>
            </result>
        </ns:getLocationDataResponse>
    </S:Body>
</S:Envelope>
```

{% endcode %}

## Gérer le point de terminaison

Pour modifier ou révoquer l'accès :

* Désactivez l'interrupteur dans le **Transfert des données** bloc permettant d’exclure cet appareil des résultats de la requête et de conserver les autres disponibles.
* Cliquez sur **Protocoles**, sélectionnez la ligne et modifiez-la pour changer l’identifiant de connexion ou le mot de passe. Les requêtes utilisant les anciens identifiants cessent immédiatement de fonctionner, alors prévenez la partie qui effectue les requêtes avant de les modifier.
* Supprimez la configuration de la **Protocoles** liste pour révoquer entièrement l’accès. Confirmez dans la boîte de dialogue.

## Dépannage

Lorsqu’une requête ne renvoie aucune donnée, vérifiez les points suivants dans l’ordre :

1. Le retransmetteur est activé, et son interrupteur est activé pour les appareils que vous interrogez.
2. L’identifiant de connexion et le mot de passe dans l’en-tête SOAP correspondent à la configuration du retransmetteur.
3. Les ID d’appareil dans la requête sont les valeurs IMEI des appareils de votre compte.
4. La plage de dates couvre une période pendant laquelle ces appareils envoyaient des données.
5. La plage de dates ne dépasse pas une journée, et la requête ne comporte pas plus de 100 ID d’appareil.

Pour tester une requête avant d’écrire le code d’intégration, utilisez [SoapUI](https://www.soapui.org/downloads/soapui/):

1. Installez SoapUI.
2. Depuis le **Fichier** menu, sélectionnez **New SOAP Project**.
3. Collez l’adresse WSDL de votre plateforme dans le **WSDL** champ.
4. Sélectionnez **Create sample requests for all operations**, puis saisissez les identifiants et les ID d’appareil.


---

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