API e-inventaire : documentation de l'API REST de gestion de stock et de livre de police
e-inventaire réunit trois outils pour les professionnels de la seconde main : la gestion de stock, le livre de police numérique et le logiciel de caisse avec aide à la comptabilité. L'API relie votre logiciel à ces trois outils : un achat envoyé une fois les alimente tous.
Cette page est la documentation publique de l'API, version 1.0.0. Elle décrit l'authentification, les 12 routes, les champs attendus, des exemples curl prêts à copier et les codes d'erreur.
Une API, trois outils reliés
Dans e-inventaire, tout part de l'achat. Quand votre logiciel envoie un achat par l'API, e-inventaire fait le reste, comme pour une saisie faite à la main :
1. Gestion de stock
À la validation du lot, l'article entre dans votre stock avec une référence unique, sa famille, son prix d'étiquette et sa description pour la vente en ligne. Vous pouvez ensuite lire le stock par l'API, par exemple pour savoir quels articles sont encore disponibles.
Gestion de stock · cycle de vie des articles · import CSV
2. Livre de police
À la validation du lot, l'achat est inscrit au registre avec l'identité du vendeur et sa pièce d'identité. Le registre est archivé et chaque correction est tracée.
Livre de police numérique · valeur probante · export et impression
3. Caisse et comptabilité
Le prix d'achat et le code TVA envoyés servent à la vente : la caisse calcule la TVA sur marge des articles d'occasion et les synthèses pour vos déclarations. La vente elle-même se fait en caisse.
Logiciel de caisse · TVA sur marge · point de vente
Résultat : une seule saisie, plus de recopie entre outils, et un stock, un registre et une comptabilité qui disent la même chose.
Cas d'usage par métier
Comptoir d'achat d'or
Votre outil de rachat de métaux précieux envoie chaque achat avec le poids et la pièce d'identité du vendeur. Le registre et le stock sont à jour sans recopie.
Logiciel pour comptoir d'or · bordereau d'achat et rétractation · déclaration Cerfa 2093
Bijouterie et joaillerie
Rachats de bijoux et de montres d'occasion, avec numéro de série. À la revente, la caisse applique la TVA sur marge.
Antiquaire et brocanteur
Saisie de l'achat sur une tablette chez le vendeur ou sur un salon, envoi direct au stock et au livre de police.
Logiciel pour antiquaire et brocanteur
Friperie et seconde main
Rachat de lots de vêtements à des particuliers : un lot, plusieurs articles, un seul vendeur. Chaque pièce a sa référence et son étiquette.
Dépôt-vente
Pour les objets achetés ferme, l'API alimente le stock et le registre. Les dépôts (articles confiés) se gèrent dans l'application.
Logiciel pour dépôt-vente · articles confiés
Galerie d'art
Achats d'œuvres auprès de particuliers ou de professionnels, inscrits au registre et au stock dès l'achat.
Vente en ligne
Votre site lit le stock par l'API pour savoir quels articles sont encore disponibles (référence, libellé, statut) et retire ceux qui sont vendus.
Éditeurs et intégrateurs
Vous développez un site de rachat, un ERP ou une application métier ? Branchez-le sur e-inventaire pour offrir à vos clients un stock, un livre de police et une caisse reliés.
Fonctionnement : brouillon, lot, validation
L'API suit la même logique que la saisie d'un achat dans l'application.
- Un lot regroupe les articles achetés à un même vendeur, le même jour. Il porte le fournisseur, la date d'achat et le moyen de règlement.
- Tant qu'il n'est pas validé, le lot est un brouillon. Son identifiant est
saisie. Ses articles ont un identifiant de brouillon, au formatbrouillon-<entier>, et restent modifiables. - La validation inscrit les articles au livre de police. Le lot reçoit un identifiant numérique définitif et une référence (
ref_lot). Chaque article reçoit un identifiant définitif. La réponse donne la table de passage entre anciens et nouveaux identifiants. - Après validation, plus de modification libre : seules les routes de correction s'appliquent, et chaque correction est tracée.
Vous connaissez déjà l'import CSV ? L'API fait le même travail, mais en continu, achat par achat.
Authentification
Toutes les routes exigent un token Bearer (JWT signé RS256), délivré par le SSO e-inventaire. Le compte utilisé doit avoir l'un de ces rôles : EIV_CUSTOMER_ADMIN, EIV_CUSTOMER_COLLABORATOR ou EIV_CUSTOMER_SHOP. La société rattachée au compte doit être active.
Obtenir un token
curl -X POST https://sso.e-inventaire.fr/oauth/token \
-d grant_type=password \
-d client_id=VOTRE_CLIENT_ID \
-d client_secret=VOTRE_CLIENT_SECRET \
-d username=VOTRE_IDENTIFIANT \
-d password=VOTRE_MOT_DE_PASSE \
-d scope=user:read
Le champ access_token de la réponse est à placer dans l'en-tête de chaque appel :
Authorization: Bearer <access_token>
Pour recevoir votre client_id et votre client_secret, contactez le support e-inventaire.
URL de base
https://www.e-inventaire.fr/v1
Les données échangées sont en JSON (Content-Type: application/json). Les dates envoyées sont au format jj/mm/aaaa. Chaque appel ne voit que les données de la société du compte connecté.
Démarrer en 5 étapes
Cet exemple suit le parcours complet : deux bijoux achetés à un particulier, validation du lot, puis correction. Les données sont fictives.
1. Créer un article et son lot
Sans lot_id ni fournisseur_id, l'article rejoint la saisie en cours et le fournisseur est créé à la volée.
Requête
curl -X POST https://www.e-inventaire.fr/v1/articles \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"libelle": "Bague or 18 carats",
"famille": "Bijoux",
"prix_achat": 120.50,
"tva_applicable": 1,
"fournisseur": {
"nom": "Dupont",
"prenoms": "Michel",
"id_nature_piece": "CNI",
"id_numero_piece": "123456789",
"id_autorite_delivrance": "Préfecture de Paris",
"id_date_delivrance": "15/03/2020"
}
}'
Réponse 201
{
"article": { "id": "brouillon-805851", "libelle": "Bague or 18 carats", "statut": "brouillon" },
"lot": { "id": "saisie" },
"fournisseur": { "id": 38692, "nom": "Dupont" }
}
À garder : lot.id ("saisie"), qui sert de lot_id à l'étape suivante.
Pour un vendeur professionnel, remplacez la pièce d'identité par le SIRET :
"fournisseur": { "nom": "SARL Bijoux Martin", "siret": "73282932000074" }
2. Ajouter un article au même lot
Inutile de repréciser le fournisseur : il reste celui du lot. Si vous l'envoyez quand même, il est ignoré et la réponse le signale (code 2001).
Requête
curl -X POST https://www.e-inventaire.fr/v1/articles \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"libelle": "Bracelet argent",
"famille": "Bijoux",
"prix_achat": 45.00,
"tva_applicable": 1,
"lot_id": "saisie"
}'
Réponse 201
{
"article": { "id": "brouillon-805852", "libelle": "Bracelet argent", "statut": "brouillon" },
"lot": { "id": "saisie" },
"fournisseur": { "id": 38692, "nom": "Dupont" }
}
3. Valider le lot
La validation inscrit les articles au livre de police et leur attribue des identifiants définitifs.
Requête
curl -X POST https://www.e-inventaire.fr/v1/lots/saisie/valider \
-H "Authorization: Bearer <token>"
Réponse 200
{
"lot": { "id": 113140, "ref_lot": "202608001", "statut": "valide" },
"articles_id_map": {
"brouillon-805851": 942511,
"brouillon-805852": 942512
}
}
À garder : lot.id (113140) et les valeurs de articles_id_map. Les anciens identifiants de brouillon n'existent plus.
4. Corriger le lot
Requête
curl -X PUT https://www.e-inventaire.fr/v1/correction/lots/113140 \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "date_achat": "20/03/2026", "type_reglement": "Chèque" }'
Réponse 200
{ "lot": { "id": 113140, "ref_lot": "202608001" } }
5. Corriger un article
Utilisez l'identifiant définitif reçu à l'étape 3, jamais l'identifiant de brouillon.
Requête
curl -X PUT https://www.e-inventaire.fr/v1/correction/articles/942511 \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "description": "Bague or 18 carats (nettoyée)", "prix_achat": 130.00 }'
Réponse 200
{ "article": { "id": 942511, "ref_article": "202608001001", "libelle": "Bague or 18 carats (nettoyée)" } }
Référence des routes
| Méthode | Route | Rôle |
|---|---|---|
| POST | /articles | Créer un article (et son lot, son fournisseur si besoin) |
| GET | /articles | Lister les articles |
| GET | /articles/{id} | Lire un article validé |
| PUT | /articles/{id} | Modifier un article encore en brouillon |
| GET | /lots | Lister les lots validés |
| GET | /lots/{id} | Lire un lot et ses articles |
| POST | /lots/{id}/valider | Valider un lot : inscription au livre de police |
| GET | /fournisseurs | Lister les fournisseurs |
| PUT | /correction/lots/{id} | Corriger un lot validé |
| PUT | /correction/articles/{id} | Corriger un article validé |
| GET | /reglements | Moyens de règlement acceptés |
| GET | /taux-tva | Taux de TVA acceptés |
Les listes sont paginées : paramètres page (défaut 1) et per_page (défaut 20, maximum 100). La réponse contient data (les éléments) et meta (page, per_page, total).
Articles
POST /articles
Crée un article en brouillon. Si besoin, crée aussi le lot et le fournisseur.
| Champ | Type | Description |
|---|---|---|
libelle * | texte | Désignation de l'objet |
famille * | texte | Famille d'article. Créée si elle n'existe pas. |
prix_achat * | nombre ≥ 0 | Prix payé au vendeur |
tva_applicable * | entier | Code du taux de TVA, voir /taux-tva |
poids | nombre | Poids, utile pour les métaux précieux |
numero_serie | texte | Numéro de série (montre, appareil…) |
prix_etiquette | nombre | Prix affiché sur l'étiquette |
prix_reserve | nombre | Prix de réserve |
comment | texte | Commentaire interne |
free_info | texte | Information libre |
article_description_web | texte | Description pour la vente en ligne |
fournisseur_id | entier | Fournisseur existant de votre société |
fournisseur | objet | Nouveau fournisseur : nom *, prenoms, siret (professionnel), ou id_nature_piece, id_numero_piece, id_autorite_delivrance, id_date_delivrance (particulier) |
lot_id | texte | saisie pour rejoindre le lot en cours |
lot | objet | Nouveau lot : date_achat (défaut : aujourd'hui), taxe_achat, type_reglement, reglement_mixte, comment |
* obligatoire. Un fournisseur envoyé avec le même nom et le même SIRET, ou la même pièce d'identité, qu'un fournisseur existant est reconnu : son identifiant est renvoyé, sans doublon.
Réponses : 201 article créé · 404 brouillon introuvable · 409 lot_id désigne un lot déjà validé · 422 champ manquant, inconnu ou invalide.
lot_id = saisie. Un identifiant numérique ou une ref_lot est refusé en 409, même si le lot existe.GET /articles
Liste paginée des articles validés. Filtres : lot_id (identifiant numérique d'un lot validé), statut (ex. Stock).
C'est la route à utiliser pour suivre votre stock depuis un site de vente en ligne : filtrez sur statut=Stock pour ne garder que les articles disponibles.
Chaque article renvoie id, ref_article, libelle, lot_id, statut, prix_achat, tva_applicable, numero_serie. Le prix d'étiquette et la description web ne sont pas renvoyés.
curl "https://www.e-inventaire.fr/v1/articles?statut=Stock&per_page=100" \
-H "Authorization: Bearer <token>"
GET /articles/{id}
Détail d'un article validé. id est l'identifiant définitif (entier). Renvoie id, ref_article, libelle, lot_id, statut, prix_achat, tva_applicable, numero_serie.
PUT /articles/{id}
Modifie un article dont le lot n'est pas encore validé. id doit être au format brouillon-<entier>. Au moins un champ requis parmi ceux de la création (hors fournisseur et lot). Un identifiant définitif renvoie 404 : après validation, passez par la correction.
Lots
GET /lots
Liste paginée des lots validés : id, ref_lot, date_achat, fournisseur_id, nb_articles.
GET /lots/{id}
Détail d'un lot et de ses articles. id vaut saisie pour le brouillon en cours, ou l'identifiant numérique d'un lot validé. La référence ref_lot sert à l'affichage et n'est pas acceptée comme identifiant.
POST /lots/{id}/valider
Inscrit les articles du brouillon au livre de police. Réponse : le lot avec son identifiant définitif et articles_id_map, la table de passage des identifiants de brouillon vers les identifiants définitifs. Mettez à jour vos références locales avec cette table.
Réponses : 200 lot validé · 404 brouillon introuvable · 409 lot déjà validé · 422 lot vide, fournisseur manquant ou total des prix incohérent.
Fournisseurs
GET /fournisseurs
Liste paginée des fournisseurs de votre société : id, nom, prenoms. Utile pour réutiliser un vendeur connu avec fournisseur_id.
Corrections
Les corrections reprennent le mécanisme de l'application : l'ancienne valeur est gardée dans l'historique du lot ou de l'article, consultable par les autorités, et, si une valeur change, une nouvelle archive du registre est générée. Si les valeurs envoyées sont identiques aux valeurs actuelles, la réponse est 200 avec un message 2002, sans nouvelle trace ni archive.
PUT /correction/lots/{id}
Corrige un lot validé. Au moins un champ : fournisseur_id, date_achat, type_reglement, reglement_mixte. Le régime neuf/occasion et les prix se corrigent dans l'application.
PUT /correction/articles/{id}
Corrige un article validé et encore en stock. Au moins un champ : description, famille, tva_applicable, poids, numero_serie, prix_achat.
1032). Sa correction se fait dans l'application : selon la configuration de votre logiciel de caisse, elle peut entraîner l'annulation et la réédition du ticket émis.Valeurs acceptées
GET /reglements
Moyens de règlement acceptés dans type_reglement. La liste est lue à chaque appel : ne la figez pas dans votre code.
{ "data": ["Chèque", "Espèces", "Carte Bancaire", "Virement", "Paypal", "Financement", "Mixte", "Bon Achat", "Echange"] }
GET /taux-tva
Codes acceptés dans tva_applicable. Seuls les taux activés dans la configuration de votre société sont renvoyés.
{
"data": [
{ "code": 0, "description": "Taux nul (exonérée)" },
{ "code": 1, "description": "Taux normal" },
{ "code": 2, "description": "Taux intermédiaire" },
{ "code": 3, "description": "Taux réduit" }
]
}
Le choix du taux dépend du régime de l'objet (neuf ou occasion). Voir TVA sur marge : neuf et occasion.
À quoi sert chaque champ
Chaque champ envoyé sert à un ou plusieurs des trois outils.
| Champ de l'API | Gestion de stock | Livre de police | Caisse et comptabilité |
|---|---|---|---|
libelle, famille | Fiche article, recherche, filtres | Description de l'objet | Libellé du ticket |
poids, numero_serie | Fiche article | Description de l'objet | |
prix_achat | Valeur du stock | Prix payé au vendeur | Base de la TVA sur marge |
tva_applicable | Taux appliqué à la vente | ||
prix_etiquette | Étiquette code-barres | Prix proposé à la vente | |
article_description_web | Vente en ligne | ||
fournisseur : nom, prénoms, pièce d'identité ou SIRET | Fiche fournisseur | Identité du vendeur | |
lot.date_achat, lot.type_reglement | Historique des achats | Date et mode de règlement |
Pour les règles de tenue du registre et de la caisse, voir conformité légale d'e-inventaire.
Codes d'erreur
Les erreurs renvoient un JSON avec message, code et, si besoin, errors (détail par champ). Le code est stable : donnez-le au support pour un diagnostic rapide. Le texte du message peut changer. Les réponses 401 et 403 ne portent pas de code.
{
"message": "…",
"code": 1036
}
Une valeur de règlement ou de TVA inconnue est refusée en 422, et le message donne la liste des valeurs acceptées.
Les codes les plus fréquents :
| Code | HTTP | Cas |
|---|---|---|
| 1002 | 422 | Nom de fournisseur déjà utilisé, sans pièce d'identité ni SIRET correspondant |
| 1006 / 1007 | 404 / 409 | Brouillon introuvable / lot déjà validé (lot_id invalide sur POST /articles) |
| 1008 / 1009 / 1010 | 422 | Champ inconnu / champ obligatoire manquant / prix d'achat invalide |
| 1013 | 404 | Article de brouillon introuvable, ou lot déjà validé (PUT /articles/{id}) |
| 1025 / 1031 | 404 | Lot / article introuvable (correction) |
| 1032 | 409 | Article déjà vendu : correction dans l'application |
| 1036 / 1038 | 422 | Moyen de règlement inconnu (création / correction de lot) |
| 1037 / 1039 | 422 | Taux de TVA inconnu (création / correction d'article) |
| 2001 | 201 (info) | Fournisseur envoyé ignoré : le lot en a déjà un |
| 2002 | 200 (info) | Correction sans changement réel |
Les codes 2xxx sont des messages d'information, dans le champ info d'une réponse réussie.
Ce que l'API ne fait pas
- Pas de ventes ni de facturation. Les ventes, factures et tickets passent par le point de vente e-inventaire. Factures et retours clients : voir la gestion administrative.
- Pas d'ajout à un lot validé. Créez un nouveau lot.
- Pas de correction d'un article vendu. Elle se fait dans l'application.
- Pas de dépôts (articles confiés). Ils se gèrent dans l'application.
Questions fréquentes
Q : À quoi sert l'API e-inventaire ?
R : Elle permet à un logiciel tiers (site de rachat, borne en boutique, ERP, site de vente en ligne) d'envoyer des achats d'occasion à e-inventaire et de lire le stock. Chaque achat crée l'article en stock, l'inscrit au livre de police et prépare le calcul de la TVA sur marge pour la vente.
Q : Peut-on afficher son stock e-inventaire sur un site de vente en ligne ?
R : En partie. La route GET /articles liste vos articles, filtrables par statut (par exemple Stock) : votre site sait ainsi lesquels sont encore disponibles. Elle renvoie la référence, le libellé et le statut, mais pas le prix d'étiquette ni la description web.
Q : Un achat envoyé par l'API a-t-il la même valeur qu'une saisie manuelle au livre de police ?
R : Oui. À la validation du lot, les articles sont inscrits au livre de police exactement comme une saisie faite dans l'application. Chaque correction qui change une valeur laisse une trace consultable et génère une nouvelle archive.
Q : L'API permet-elle d'enregistrer des ventes ou des tickets de caisse ?
R : Non. Les ventes, factures et tickets se font dans le logiciel de caisse e-inventaire. L'API prépare ces ventes : le prix d'achat et le code TVA envoyés servent au calcul de la TVA sur marge.
Q : Quelle différence entre l'API et l'import CSV ?
R : L'import CSV sert à charger un fichier ponctuellement, par exemple pour reprendre un stock tenu sous Excel. L'API fait le même travail en continu : votre logiciel envoie chaque achat au moment où il a lieu.
Q : Comment obtenir un accès à l'API ?
R : Il faut un compte e-inventaire et des identifiants d'application pour obtenir un token auprès du SSO e-inventaire. Contactez le support pour les recevoir.
Commencer
Pas encore de compte ? Créez un compte gratuit et découvrez le stock, le livre de police et la caisse avant de brancher votre outil. Comparez les offres BASE et PRO+, ou consultez l'aide en ligne.
Documentation de l'API e-inventaire, version 1.0.0. Mise à jour le 12 octobre 2026. Spécification complète au format OpenAPI 3.0.