Modèles de données

Référence des types et schémas retournés par l'API Registeo. Toutes les valeurs énumérées (régimes, statuts, modes de paiement, champs spécifiques) sont issues du référentiel central servi par GET /referentiel — cette page est générée à partir de cette même source.


ObjetMobilier

Représente un objet enregistré dans le livre de police. Structure retournée par GET /api/objets et POST /api/objets.

type Regime =
  | 'OBJETS_OCCASION'               // art. 321-7 Code pénal
  | 'METAUX_PRECIEUX'               // art. L834-6 Code de commerce (douanes)
  | 'METAUX_FERREUX_ET_NON_FERREUX' // art. L112-6 CMF + 1649 bis CGI

interface ObjetMobilier {
  id: string
  numero: number | string          // Numéro d'ordre (ex: 1, 42, "2026-1" en mode annuel)
  typeOperation: string             // "achat", "dépôt", "reprise", "échange"
  designation: string
  marques: string
  provenanceDeclaree: string
  quantite: number
  prixAchat: number | null          // null si les régimes de l'entrée n'imposent pas de prix
  modePaiement: string | null       // "virement", "chèque", "espèces", "carte", "autre"
  dateAchat: string                 // ISO 8601
  regimes: Regime[]                 // Régimes juridiques applicables à cette entrée
  // Vendeur — particulier
  vendeurType: string               // "particulier" ou "professionnel"
  vendeurNom: string
  vendeurDateNaissance: string | null
  vendeurLieuNaissance: string
  vendeurNationalite: string
  vendeurAdresse: string
  vendeurIdentiteType: string
  vendeurIdentiteNumero: string
  vendeurIdentiteDelivrance: string
  // Vendeur — professionnel
  vendeurRaisonSociale: string
  vendeurSiret: string
  vendeurId: string | null          // ID interne du vendeur (répertoire Registeo)
  // Documents et photos
  vendeurDocuments: Document[]      // Documents du vendeur professionnel (Kbis, etc.)
  photos: Document[]                // Photos de l'objet
  signatureKey: string | null       // Clé de la signature vendeur
  signatureUrl: string | null       // URL de téléchargement de la signature
  // Champs spécifiques à l'activité ou au régime
  champsActivite: Record<string, any>  // Voir les sections plus bas
  // Stock et mouvements
  statut: string                    // Voir la section Statuts
  dateVente: string | null          // ISO 8601
  prixVente: number | null
  sorties: any[]                    // Sorties directes (legacy)
  mouvements: Mouvement[]           // Mouvements de stock
  // Métadonnées
  auditCount: number                // Nombre d'entrées dans le journal d'audit
  createdAt: string                 // ISO 8601
  deletedAt: string | null          // ISO 8601 (null si actif, date si soft-deleted)
}

Régimes juridiques

Chaque objet porte un ou plusieurs régimes qui déterminent les règles applicables. Les régimes disponibles dépendent de l'activité configurée sur l'établissement.

RégimeCourtPrix obligatoireEspècesLCB-FTStock obligatoireChamps spécifiques
Objets d'occasion (321-7 CP)
OBJETS_OCCASION
OccasionPlafonné 1 000 €0
Métaux précieux (L834-6 C. com)
METAUX_PRECIEUX
PrécieuxPlafonné 1 000 €10 000 €3
Métaux ferreux/non ferreux (L112-6 CMF + 1649 bis CGI)
METAUX_FERREUX_ET_NON_FERREUX
Ferreux/NFInterdit0

Règles de validation appliquées par l'API :

  • Si le champ regimes est absent à la création, l'objet reprend les regimesActifs du profil.
  • Les valeurs qui ne figurent pas dans regimesActifs du profil sont filtrées silencieusement (elles ne sont pas enregistrées).
  • prixAchat est obligatoire pour tout régime dont la colonne Prix obligatoire est cochée ci-dessus (le serveur renvoie 400 sinon).

Champs spécifiques par régime

Certains régimes attendent des champs supplémentaires sous champsActivite. Ils sont alimentés en plus des champs métier de l'activité.

RégimeCléLibelléExemple
PrécieuxchampsActivite.poinconPoinçonex : Tête d'aigle 750, hibou (import)
PrécieuxchampsActivite.poidsMetauxPoids métaux précieuxex : Or 18k : 4,2 g / Argent : 12 g
PrécieuxchampsActivite.titreMetauxTitre du métalex : 750‰ (18 carats), 585‰ (14 carats), 950‰ platine

Activités

Valeurs acceptées par le champ activite à la création d'un objet ou d'un profil. Chaque activité expose ses propres régimes par défaut, statuts et champs spécifiques.

ValeurLibelléRégimes disponiblesStatutsChamps métier
brocanteurBrocanteurOBJETS_OCCASION3
antiquaireAntiquaireOBJETS_OCCASION33
bijoutierBijoutier / HorlogerOBJETS_OCCASION, METAUX_PRECIEUX61
fripierFripier / FriperieOBJETS_OCCASION32
depot-venteDépôt-venteOBJETS_OCCASION4
galeristeGaleristeOBJETS_OCCASION4
telephoneTéléphonie / ÉlectroniqueOBJETS_OCCASION42
automobileAutomobile / Pièces détachéesOBJETS_OCCASION34
recyclerieRecyclerie / RessourcerieOBJETS_OCCASION3
recuperation-metauxRécupération de métauxOBJETS_OCCASION, METAUX_FERREUX_ET_NON_FERREUX, METAUX_PRECIEUX2
recuperation-vhuCentre VHU / Démolisseur automobileOBJETS_OCCASION, METAUX_FERREUX_ET_NON_FERREUX24
vente-aux-encheresVente aux enchèresOBJETS_OCCASION, METAUX_PRECIEUX61
autreAutreOBJETS_OCCASION2

Activité hors référentiel : utilisez le préfixe autre: suivi du libellé personnalisé — par exemple autre:Tapissier, autre:Maroquinier. Cela retombe sur la configuration autre du référentiel (régimes par défaut, pas de champs métier spécifiques).

Champs spécifiques par activité

En plus du tronc commun et des champs de régime, chaque activité peut imposer ses propres champs sous champsActivite. La liste exhaustive ci-dessous est computed à partir du référentiel.

ActivitéCléLibelléExemple
AntiquairechampsActivite.epoqueÉpoque / Styleex : XVIIIe siècle, Art Déco, Empire
AntiquairechampsActivite.dimensionsDimensionsex : 120 x 55 x 85 cm
AntiquairechampsActivite.certificatCertificat / expertiseex : Expertise Me Dupont 15/03/2026, certificat GIA n°12345
Bijoutier / HorlogerchampsActivite.poinconPoinçonex : Tête d'aigle 750, hibou (import)
Fripier / FriperiechampsActivite.tailleTailleex : M, 40, 38
Fripier / FriperiechampsActivite.marqueMarqueex : Zara, H&M, Levi's
Téléphonie / ÉlectroniquechampsActivite.imeiIMEIex : 359871092345678 (15 chiffres, *#06#)
Téléphonie / ÉlectroniquechampsActivite.numeroSerieNuméro de sérieex : pour tablettes, montres connectées
Automobile / Pièces détachéeschampsActivite.vinNuméro VINex : VF3LCYHZPKS123456
Automobile / Pièces détachéeschampsActivite.immatriculationImmatriculationex : AB-123-CD
Automobile / Pièces détachéeschampsActivite.carteGriseCarte griseex : N° 2019AB12345, 1ère mise en circulation 15/03/2019
Automobile / Pièces détachéeschampsActivite.controleTechniqueContrôle techniqueex : Favorable, 10/01/2026
Centre VHU / Démolisseur automobilechampsActivite.vinNuméro VINex : VF3LCYHZPKS123456
Centre VHU / Démolisseur automobilechampsActivite.immatriculationImmatriculationex : AB-123-CD
Centre VHU / Démolisseur automobilechampsActivite.agrementVhuN° d'agrément VHUex : PR 75 000 XXXX
Centre VHU / Démolisseur automobilechampsActivite.certifDestructionN° certificat de destructionex : Cerfa 14365 n°…
Vente aux enchèreschampsActivite.mandatVenteRéférence du mandatex : Mandat n°2026-042, Me Dupont

Document

Représente un fichier (photo d'objet, document vendeur) associé à un objet. Retourné dans les champs photos et vendeurDocuments.

interface Document {
  key: string                       // Identifiant unique du fichier
  url: string                       // URL de téléchargement (signée, expiration 1h)
  addedAt: string                   // ISO 8601
}

Mouvement

Représente un mouvement de stock (vente, casse, don, restitution, etc.) sur un objet. Retourné dans le champ mouvements d'un objet et dans les réponses de POST /api/objets/{id}/mouvements et PUT /api/objets/{id}/mouvements/{id}/resolve.

interface Mouvement {
  id: string
  quantite: number
  statut: string                    // Voir la section Statuts
  date: string                      // ISO 8601
  prixVente: number | null          // Uniquement pour les ventes
  acheteurType: 'particulier' | 'professionnel' | null
  acheteurNom: string | null        // Nom (particulier) ou nom du représentant (pro)
  acheteurAdresse: string | null    // Adresse de l'acheteur
  acheteurRaisonSociale: string | null // Raison sociale si professionnel
  acheteurSiret: string | null      // SIRET si professionnel
  resolvedAt: string | null         // ISO 8601 — si non null, le mouvement est annulé
}

Statuts

Les statuts disponibles dépendent de l'activité configurée pour l'établissement. Le statut par défaut est en_stock (état implicite : aucun mouvement actif). Tout changement de statut passe par un mouvement de stock.

Les catégories déterminent le comportement :

CatégorieComportement
disponibleL'objet est en stock, immédiatement vendable. Aucun mouvement actif.
en_coursL'objet est temporairement indisponible. Un mouvement est créé. Annulable (resolve) → l'objet revient en stock.
sortiL'objet quitte définitivement le stock. Un mouvement est créé. Peut requérir une date et/ou un prix.

Liste complète des statuts par activité :

ActivitéValeurLibelléCatégorieDate requisePrix requis
Brocanteuren_stockEn stockdisponible
BrocanteurvenduVendusorti
BrocanteurreserveRéservéen cours
Antiquaireen_stockEn stockdisponible
AntiquairevenduVendusorti
Antiquaireen_restaurationEn restaurationen cours
Bijoutier / Horlogeren_stockEn stockdisponible
Bijoutier / HorlogervenduVendusorti
Bijoutier / Horlogeren_reparationEn réparationen cours
Bijoutier / Horlogeren_expertiseEn expertiseen cours
Bijoutier / HorlogerrestitueRestituésorti
Bijoutier / HorlogerretracteRétractésorti
Fripier / Friperieen_stockEn stockdisponible
Fripier / FriperievenduVendusorti
Fripier / Friperieen_triEn trien cours
Dépôt-venteen_stockEn stockdisponible
Dépôt-ventevenduVendusorti
Dépôt-venteen_depotEn dépôten cours
Dépôt-venterestitueRestituésorti
Galeristeen_stockEn stockdisponible
GaleristevenduVendusorti
Galeristeen_expositionEn expositionen cours
GaleristepretePrêtéen cours
Téléphonie / Électroniqueen_stockEn stockdisponible
Téléphonie / ÉlectroniquevenduVendusorti
Téléphonie / Électroniqueen_reconditionnementEn reconditionnementen cours
Téléphonie / Électroniqueen_reparationEn réparationen cours
Automobile / Pièces détachéesen_stockEn stockdisponible
Automobile / Pièces détachéesvenduVendusorti
Automobile / Pièces détachéesen_remise_en_etatEn remise en étaten cours
Recyclerie / Ressourcerieen_stockEn stockdisponible
Recyclerie / RessourcerievenduVendusorti
Recyclerie / Ressourcerieen_triEn trien cours
Récupération de métauxen_stockEn stockdisponible
Récupération de métauxvenduVendusorti
Centre VHU / Démolisseur automobileen_stockEn stockdisponible
Centre VHU / Démolisseur automobilevenduVendusorti
Vente aux enchèresen_stockEn stockdisponible
Vente aux enchèresvenduVendusorti
Vente aux enchèresen_catalogueEn catalogueen cours
Vente aux enchèresadjugeAdjugésorti
Vente aux enchèresinvenduInvenduen cours
Vente aux enchèresrestitueRestituésorti
Autreen_stockEn stockdisponible
AutrevenduVendusorti