ePrivacy and GPDR Cookie Consent by Cookie Consent

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.

Démarrer en 5 étapes

Télécharger la spécification OpenAPI

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.

Logiciel pour bijouterie

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.

Logiciel pour friperie

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.

Logiciel pour galerie d'art

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.

Gestion de stock

É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.

Parler de votre projet

Fonctionnement : brouillon, lot, validation

L'API suit la même logique que la saisie d'un achat dans l'application.

  1. 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.
  2. Tant qu'il n'est pas validé, le lot est un brouillon. Son identifiant est saisie. Ses articles ont un identifiant de brouillon, au format brouillon-<entier>, et restent modifiables.
  3. 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.
  4. Après validation, plus de modification libre : seules les routes de correction s'appliquent, et chaque correction est tracée.
Le fournisseur est obligatoire pour valider un lot. Il se fixe au premier article ; les articles suivants du même lot le reprennent.

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.

Un token absent, invalide, expiré ou révoqué renvoie 401. Un rôle manquant ou une société inactive renvoie 403. Pour des raisons de sécurité, ces deux réponses ne donnent pas le détail du refus.

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éthodeRouteRôle
POST/articlesCréer un article (et son lot, son fournisseur si besoin)
GET/articlesLister les articles
GET/articles/{id}Lire un article validé
PUT/articles/{id}Modifier un article encore en brouillon
GET/lotsLister les lots validés
GET/lots/{id}Lire un lot et ses articles
POST/lots/{id}/validerValider un lot : inscription au livre de police
GET/fournisseursLister les fournisseurs
PUT/correction/lots/{id}Corriger un lot validé
PUT/correction/articles/{id}Corriger un article validé
GET/reglementsMoyens de règlement acceptés
GET/taux-tvaTaux 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.

ChampTypeDescription
libelle *texteDésignation de l'objet
famille *texteFamille d'article. Créée si elle n'existe pas.
prix_achat *nombre ≥ 0Prix payé au vendeur
tva_applicable *entierCode du taux de TVA, voir /taux-tva
poidsnombrePoids, utile pour les métaux précieux
numero_serietexteNuméro de série (montre, appareil…)
prix_etiquettenombrePrix affiché sur l'étiquette
prix_reservenombrePrix de réserve
commenttexteCommentaire interne
free_infotexteInformation libre
article_description_webtexteDescription pour la vente en ligne
fournisseur_identierFournisseur existant de votre société
fournisseurobjetNouveau fournisseur : nom *, prenoms, siret (professionnel), ou id_nature_piece, id_numero_piece, id_autorite_delivrance, id_date_delivrance (particulier)
lot_idtextesaisie pour rejoindre le lot en cours
lotobjetNouveau 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.

On ne peut jamais ajouter un article à un lot validé. Pour ajouter un article au lot en cours, envoyez 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.

Un article déjà vendu ne se corrige pas par l'API (409, code 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'APIGestion de stockLivre de policeCaisse et comptabilité
libelle, familleFiche article, recherche, filtresDescription de l'objetLibellé du ticket
poids, numero_serieFiche articleDescription de l'objet
prix_achatValeur du stockPrix payé au vendeurBase de la TVA sur marge
tva_applicableTaux appliqué à la vente
prix_etiquetteÉtiquette code-barresPrix proposé à la vente
article_description_webVente en ligne
fournisseur : nom, prénoms, pièce d'identité ou SIRETFiche fournisseurIdentité du vendeur
lot.date_achat, lot.type_reglementHistorique des achatsDate 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 :

CodeHTTPCas
1002422Nom de fournisseur déjà utilisé, sans pièce d'identité ni SIRET correspondant
1006 / 1007404 / 409Brouillon introuvable / lot déjà validé (lot_id invalide sur POST /articles)
1008 / 1009 / 1010422Champ inconnu / champ obligatoire manquant / prix d'achat invalide
1013404Article de brouillon introuvable, ou lot déjà validé (PUT /articles/{id})
1025 / 1031404Lot / article introuvable (correction)
1032409Article déjà vendu : correction dans l'application
1036 / 1038422Moyen de règlement inconnu (création / correction de lot)
1037 / 1039422Taux de TVA inconnu (création / correction d'article)
2001201 (info)Fournisseur envoyé ignoré : le lot en a déjà un
2002200 (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.

Créer un compte gratuit

Demander un accès à l'API

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.