Evyoo POS API v1

Questions fréquentes

Les données#

Pourquoi un champ est-il absent de la réponse ?#

Presque toujours parce que votre clé n'a pas la permission complémentaire qui l'ouvre. Les coûts (cost, average_cost, cost_total…) demandent costs:read ; la limite de crédit et le solde d'un client (credit_limit, balance) demandent customers:financial. Sans elle, le champ n'est pas dans la réponse, ni vide ni masqué. Vérifiez avec GET /resources : il liste, pour votre clé, les champs que vous pouvez lire. Voir aussi les notions.

Pourquoi un produit que je connais n'apparaît-il pas dans la liste ?#

Par défaut, /products ne liste que les produits actifs. Ajoutez status=all (ou status=inactive pour ne voir que les inactifs).

Pourquoi une facture n'apparaît-elle pas ?#

Trois raisons possibles :

  • C'est un brouillon (hold) : les brouillons sont cachés par défaut. Ajoutez status=hold ou status=all.
  • Elle appartient à une autre succursale que celles de votre clé : elle n'existe pas pour vous.
  • C'est un avoir : cherchez dans /credit-memos, pas dans /invoices.

Pourquoi les montants d'une facture sont-ils à zéro ?#

Parce qu'elle est annulée (status: "void"). Un document annulé garde son identité mais tous ses montants sont à zéro, pour que l'addition d'une liste ne compte pas deux fois une vente annulée. Voir Lire des factures et des documents.

Pourquoi quantity × unit_price ne donne-t-il pas le total de la facture ?#

Un article peut se vendre dans plusieurs unités (à l'unité, à la caisse de 50) et chaque ligne garde les deux jeux de quantités et de prix. Le total du document fait foi ; l'API ne calcule pas de total de ligne, parce qu'il pourrait être faux sans que personne le voie.

Comment trouver le nom d'une succursale, d'un département, d'une liste de prix ?#

Dans les ressources de référence : /stores, /departments, /sub-departments, /price-lists, /customer-types. Ce sont de petites listes ; lisez-les entièrement et gardez-les en mémoire.

Quel est le fuseau horaire des dates ?#

Les dates sont celles du serveur de l'entreprise, sans fuseau : 2026-03-15T14:30:00. Aucune conversion n'est faite par l'API.

Les éléments supprimés d'Evyoo POS disparaissent-ils de l'API ?#

Evyoo POS ne supprime ni produit, ni client, ni fournisseur, ni document validé : un produit ou un client retiré devient inactif, un document annulé devient void. Vous les recevez avec leur nouveau statut. Seuls les brouillons (hold) peuvent être supprimés. Voir Garder vos données à jour.

Les erreurs#

J'ai une erreur 404 sur un élément qui existe#

Quatre causes courantes :

  • Votre clé est limitée à certaines succursales et l'élément appartient à une autre. L'API répond 404, pas 403, pour ne pas confirmer qu'il existe.
  • Vous cherchez un avoir dans /invoices (ou l'inverse).
  • L'identifiant est faux : utilisez le champ id d'un élément de liste.
  • L'adresse comporte une faute (/invoice/4149 au lieu de /invoices/4149).

J'ai une erreur 403#

insufficient_scope : votre clé n'a pas la permission de la ressource. Demandez-la à l'administrateur. https_required : vous avez écrit http://.

J'ai une erreur 400 invalid_parameter#

Lisez error.details : chaque paramètre fautif y est, avec la raison. Les causes habituelles : une faute de frappe dans le nom d'un filtre, une valeur hors liste, une date impossible, une recherche d'un seul caractère.

/auth/token répond 401 invalid_client alors que mes clés sont bonnes#

La réponse est la même pour une clé inconnue, un mauvais code, une clé révoquée ou expirée : c'est voulu, pour qu'un tiers ne puisse pas deviner quelles clés existent. Vérifiez la clé d'accès et le code un par un (pas d'espace ni de retour à la ligne copié en trop). Si les deux sont corrects, demandez à l'administrateur si la clé est toujours active. Attention : après plusieurs échecs, vous êtes bloqué 15 minutes (429 too_many_attempts).

GET /status dit authorization_header_received: false#

L'en-tête Authorization n'arrive pas jusqu'à l'API : un intermédiaire (serveur, proxy, pare-feu) le supprime. Envoyez Authorization: Bearer x à /status pour tester. Écrivez-nous avec le request_id : c'est un réglage de serveur.

J'ai une erreur 500#

Une erreur inattendue chez nous. Réessayez une fois. Si elle persiste, écrivez au support en citant le request_id de la réponse.

L'authentification#

Mon jeton a expiré. Que faire ?#

Demandez-en un nouveau et rejouez la requête une fois. Voir S'authentifier.

Dois-je demander un jeton à chaque requête ?#

Non, et il ne faut pas : gardez-le 15 minutes. Les demandes de jeton sont limitées à 10 par minute et par adresse IP.

Puis-je avoir plusieurs jetons en même temps ?#

Oui. Chaque demande réussie en crée un nouveau, et les précédents restent valables jusqu'à leur expiration. Plusieurs processus qui partagent la même clé ne se gênent pas.

J'ai perdu mon code de sécurité#

On ne peut pas le retrouver : l'administrateur en crée un nouveau. Dès lors, l'ancien code et tous les jetons en cours cessent de marcher.

Mon code de sécurité a fuité#

Demandez tout de suite à l'administrateur de le régénérer ou de révoquer la clé. Le jeton en cours (15 minutes au plus) est invalidé en même temps.

En général#

Puis-je créer ou modifier des données ?#

Pas encore : l'API est en lecture seule. Les écritures viendront, ressource par ressource ; chaque nouveauté est annoncée dans les Nouveautés.

Y a-t-il un environnement de test ?#

L'API lit aujourd'hui les vraies données de votre entreprise, mais en lecture seule : vous ne pouvez rien modifier ni casser. Si vous avez besoin d'un environnement de démonstration avec des données fictives, demandez-le-nous.

Combien de requêtes puis-je faire ?#

60 par minute par défaut, réglable par clé. Votre limite réelle est dans l'en-tête X-RateLimit-Limit de chaque réponse. Voir Erreurs.

Où trouver les noms exacts des champs ?#

Dans la référence de chaque ressource, ou en direct avec GET /resources.

Y a-t-il une description au format OpenAPI ?#

Oui, avec une collection Postman : voir Télécharger.

À qui écrire ?#

À info@evyooht.com. Joignez le request_id si vous parlez d'une erreur.