Garder vos données à jour
Vous tenez une copie des produits, des clients ou des factures dans votre propre système. Relire tout à chaque fois serait lent et coûteux. L'API vous permet de ne lire que ce qui a changé.
Le filtre updated_since#
Les listes de produits, clients, fournisseurs et de tous les documents acceptent updated_since : ne renvoyer que les éléments modifiés depuis cette date (ou cette date et cette heure).
curl "https://votre-entreprise.evyooht.com/api/v1/products?updated_since=2026-03-15T08:00:00&status=all&sort=updated_at" \
-H "Authorization: Bearer evy_at_votre_jeton"$headers = @{ Authorization = "Bearer evy_at_votre_jeton" }
Invoke-RestMethod -Uri "https://votre-entreprise.evyooht.com/api/v1/products?updated_since=2026-03-15T08:00:00&status=all&sort=updated_at" -Headers $headersconst response = await fetch("https://votre-entreprise.evyooht.com/api/v1/products?updated_since=2026-03-15T08:00:00&status=all&sort=updated_at", {
headers: { Authorization: "Bearer evy_at_votre_jeton" },
});
const data = await response.json();
console.log(data);$ch = curl_init("https://votre-entreprise.evyooht.com/api/v1/products?updated_since=2026-03-15T08:00:00&status=all&sort=updated_at");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer evy_at_votre_jeton"],
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($data);import requests
response = requests.get(
"https://votre-entreprise.evyooht.com/api/v1/products",
params={"updated_since": "2026-03-15T08:00:00", "status": "all", "sort": "updated_at"},
headers={"Authorization": "Bearer evy_at_votre_jeton"},
)
print(response.json())- Le format est
AAAA-MM-JJouAAAA-MM-JJTHH:MM:SS. Les heures sont celles du serveur de l'entreprise, sans fuseau. - Triez par
updated_at: vous lisez dans l'ordre des changements. - Pour les produits, ajoutez
status=all, sinon un produit désactivé depuis votre dernière lecture n'apparaîtrait pas (il n'est plus « actif »).
La méthode#
- Première fois : lisez tout, page par page (voir Parcourir de longs résultats), et mémorisez l'heure de début de votre lecture.
- Ensuite, à intervalle régulier : lisez avec
updated_since= l'heure mémorisée, et mettez à jour votre copie (ajoutez ou remplacez chaque élément par sonid). - Mémorisez l'heure de début de CETTE lecture pour la fois suivante, pas l'heure de fin.
Les pièges à éviter#
- Recouvrez un peu. Relisez avec une marge (par exemple 5 minutes avant l'heure mémorisée). Un élément déjà lu sera remplacé par la même valeur : ce n'est pas grave, c'est un « remplacer par
id». Un élément manqué, lui, le serait pour toujours. - Les heures sont locales. Le serveur d'Evyoo POS donne ses dates sans fuseau (heure de l'entreprise). Si votre système tourne dans un autre fuseau, convertissez — ou, plus simple, ne comparez que des heures lues dans les réponses (
updated_at), jamais l'horloge de votre propre machine. - Gardez votre jeton pendant la lecture, et respectez la limite de requêtes.
Les suppressions#
Evyoo POS ne supprime ni produit, ni client, ni fournisseur, ni document validé. Un produit, un client ou un fournisseur qu'on retire passe en inactif ; un document qu'on annule passe en void. Dans les deux cas, l'élément change (status) et sa date de modification avance : vous le recevez comme n'importe quel autre changement, et vous voyez son nouveau statut. Il n'y a donc pas de « liste des suppressions » à lire à part.
La seule exception : un brouillon (hold) peut être supprimé dans Evyoo POS, et il disparaît alors sans laisser de trace. Les brouillons n'apparaissent pas dans les listes par défaut : si vous les lisez (status=hold), relisez-les en entier plutôt que par updated_since.
Quels éléments ont updated_since#
Tous ceux dont la fiche garde une date de modification : produits, clients, fournisseurs, devis, commandes de vente, factures, avoirs, paiements reçus, bons de commande, réceptions, transferts et ajustements. Les référentiels de quelques lignes (succursales, départements, sous-départements, types de client) n'en ont pas : relisez-les en entier, c'est court.
Et si vous avez raté une synchronisation ?#
Rien de grave : relancez avec une date plus ancienne. Vous reliriez des éléments déjà connus, que vous remplacez par leur id. La synchronisation par updated_since est idempotente : la rejouer donne le même résultat.