Documentation API Registeo

Bienvenue dans la documentation de l'API Registeo. Cette API vous permet d'intégrer le livre de police numérique Registeo directement dans vos outils métier : logiciel de caisse, ERP, application interne, etc.

Accès API

L'accès à l'API est disponible sur demande. Contactez-nous pour activer le mode API sur votre établissement.

Multi-établissement — Une clé API est rattachée à un seul établissement. Si vous gérez plusieurs établissements (multi-SIRET) sur le même compte Registeo, chaque établissement a sa propre clé. Vous basculez entre établissements via le sélecteur dans le header de l'app.

Mode contrôle extérieur

Lorsque l'API est activée pour votre établissement, son registre passe en mode contrôle extérieur :

  • Les données du registre (objets, statuts, mouvements) sont mises à jour uniquement via l'API
  • L'interface Registeo reste disponible en consultation et pour générer les exports PDF
  • La gestion des vendeurs est intégrée aux objets : les informations vendeur sont fournies directement dans chaque objet, pas via un répertoire séparé
  • La conformité légale est assurée de la même manière : audit log crypto-chaîné, horodatage, intégrité

Ce mode garantit que votre logiciel métier est la source unique des données du registre, sans risque de double saisie.

Base URL

https://api.registeo.fr/registeo/api

Authentification

Toutes les requêtes doivent inclure deux headers :

X-API-Key: rsk_votre_clé_api
X-Siret: 12345678901234

La clé est générée par l'équipe Registeo lors de l'activation de votre accès API. Une clé donne accès au registre d'un seul établissement : si vous en gérez plusieurs, vous disposez d'une clé par établissement, sans passerelle possible entre eux.

Pourquoi déclarer le SIRET

La clé suffirait techniquement à identifier l'établissement. Le X-Siret est un garde-fou contre l'erreur de configuration : il vous fait déclarer l'établissement que vous croyez viser, et l'API refuse si ce n'est pas celui de la clé.

Sans lui, deux clés interverties dans votre configuration enverraient des écritures dans le registre d'un autre professionnel, avec une réponse 201 et aucun signal d'alerte. Les entrées du livre de police étant scellées cryptographiquement et horodatées, elles ne peuvent pas être déplacées d'un registre à l'autre après coup : les deux registres deviendraient faux durablement. Le contrôle transforme cette erreur silencieuse en refus dès le premier appel.

SituationRéponse
Header absent400 MISSING_SIRET
SIRET différent de celui de la clé403 ETABLISSEMENT_MISMATCH

Les espaces, points et tirets sont ignorés dans la comparaison. En cas de changement de SIRET de votre établissement (déménagement notamment), pensez à mettre à jour la valeur dans votre intégration : elle est comparée au SIRET enregistré sur votre fiche Registeo.

Exemple de requête

# Lister les objets du registre
curl https://api.registeo.fr/registeo/api/objets \
  -H "X-API-Key: rsk_votre_clé_api" \
  -H "X-Siret: 12345678901234"

En écriture, un troisième header est requis — X-Agent, le nom de la personne physique effectuant l'opération. Voir Objets.

Sections de la documentation

  • Objets — Enregistrement et gestion des objets du livre de police
  • Ventilation — Démontage d'une entrée en entrées filles (module optionnel)
  • Export PDF — Génération et envoi du registre en PDF (via l'interface uniquement)
  • Audit — Journal d'audit et traçabilité
  • Modèles de données — Référence des types et schémas

Hébergement & conformité

  • Données hébergées en France
  • Conforme aux exigences applicables au livre de police
  • Registre traçable avec journal d'audit complet
  • Chaque action via l'API est auditée et traçable

Codes d'erreur

CodeDescription
400Requête invalide (champs manquants ou incorrects)
401Clé API manquante ou invalide
402Limite de l'offre gratuite atteinte
403Accès interdit
404Ressource non trouvée
500Erreur serveur

Les réponses d'erreur portent un champ code identifiant la cause précise. Traitez ce code plutôt que le message, qui peut être reformulé.

codeStatutSignification
MISSING_AGENT400Header X-Agent absent — nommez la personne physique ayant effectué l'opération
AGENT_INTROUVABLE400X-Agent ne correspond à aucun utilisateur de l'établissement (les noms acceptés sont listés dans la réponse)
MISSING_SIRET400Header X-Siret absent — déclarez l'établissement visé
SIRET_ETABLISSEMENT_ABSENT400Aucun SIRET n'est renseigné sur l'établissement — complétez-le depuis « Mon compte »
ETABLISSEMENT_MISMATCH403Le X-Siret transmis n'est pas celui de la clé API utilisée
CHAMPS_ACTIVITE_INVALIDES400Une clé de champsActivite n'appartient pas à l'activité ni aux régimes de l'établissement
REGIME_NON_ACTIF400Un régime demandé n'est pas actif sur l'établissement (les régimes actifs sont listés dans la réponse)
TYPE_OPERATION_INVALIDE400typeOperation inconnu (achat, dépôt, reprise, échange)
OPERATION_NON_AUTORISEE400typeOperation valide mais hors du périmètre de l'activité (les opérations admises sont listées dans la réponse)
PAIEMENT_ESPECES_INTERDIT400Règlement en espèces interdit par le régime de l'entrée (métaux ferreux et non ferreux, L112-6 CMF)
PAIEMENT_ESPECES_PLAFONNE400Règlement en espèces au-delà du plafond légal face à un particulier (L112-6 CMF)
DATE_ACHAT_FUTURE400La date d'achat est postérieure à aujourd'hui
DATE_MOUVEMENT_ANTERIEURE400La date du mouvement précède la date d'entrée de l'objet
DATE_MOUVEMENT_FUTURE400La date du mouvement est postérieure à aujourd'hui
DATE_MOUVEMENT_INVALIDE400Date de mouvement illisible
STATUT_INCOMPATIBLE_OPERATION400Statut réservé à d'autres types d'opération (ex. restitué sur un achat)
FICHIER_INTROUVABLE400Une clé de pièce jointe ne correspond à aucun fichier de l'établissement
STATUT_INVALIDE400Statut inconnu pour l'activité de l'établissement (les statuts valides sont listés dans la réponse)
STATUT_NON_MOUVEMENT400Statut valide mais qui ne correspond pas à un mouvement de stock (ex. en_stock)
QUANTITE_BELOW_ENGAGED400Quantité inférieure à celle déjà engagée dans des mouvements
SUBSCRIPTION_INACTIVE402Abonnement inactif
FREE_LIMIT_REACHED402Limite de l'offre gratuite atteinte
EXTERNAL_MODE403Écriture tentée depuis l'interface alors que l'établissement est en mode contrôle extérieur
PROFIL_REQUIRED412Aucun établissement actif sur le compte
STOCK_DISABLED412Module de gestion de stock non activé

Les modules optionnels portent des codes qui leur sont propres, documentés sur leur page : voir Ventilation.