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/{id} 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
Occasion✓Plafonné 1 000 €——0
Métaux précieux (L834-6 C. com)
METAUX_PRECIEUX
Précieux—Plafonné 1 000 €10 000 €✓3
Métaux ferreux/non ferreux (L112-6 CMF + 1649 bis CGI)
METAUX_FERREUX_ET_NON_FERREUX
Ferreux/NF✓Interdit——0

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.
  • Une valeur qui ne figure pas dans regimesActifs du profil est refusée : 400 REGIME_NON_ACTIF. En modification, les régimes déjà portés par l'entrée restent acceptés.
  • 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_OCCASION4—
antiquaireAntiquaireOBJETS_OCCASION43
bijoutierBijoutier / HorlogerOBJETS_OCCASION, METAUX_PRECIEUX71
fripierFripier / FriperieOBJETS_OCCASION42
depot-venteDépôt-venteOBJETS_OCCASION5—
galeristeGaleristeOBJETS_OCCASION5—
cartes-collectionCartes à collectionner / TCGOBJETS_OCCASION54
telephoneTéléphonie / ÉlectroniqueOBJETS_OCCASION52
automobileAutomobile / Pièces détachéesOBJETS_OCCASION44
materiel-tpMatériels / engins TPOBJETS_OCCASION35
recyclerieRecyclerie / RessourcerieOBJETS_OCCASION4—
recuperation-metauxRécupération de métauxOBJETS_OCCASION, METAUX_FERREUX_ET_NON_FERREUX, METAUX_PRECIEUX3—
recuperation-vhuCentre VHU / Démolisseur automobileOBJETS_OCCASION, METAUX_FERREUX_ET_NON_FERREUX34
vente-aux-encheresVente aux enchèresOBJETS_OCCASION, METAUX_PRECIEUX71
autreAutreOBJETS_OCCASION3—

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
Cartes à collectionner / TCGchampsActivite.jeuJeuex : Pokémon, Magic: The Gathering, Yu-Gi-Oh!
Cartes à collectionner / TCGchampsActivite.extensionExtensionex : Set de Base (1999), Évolutions Prismatiques
Cartes à collectionner / TCGchampsActivite.etatCarteÉtatex : NM, EX, PSA 9, PCA 8
Cartes à collectionner / TCGchampsActivite.certificationGradation / certificationex : PSA 12345678, PCA 987654
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
Matériels / engins TPchampsActivite.numeroSerieNuméro de sérieex : n° de série / PIN constructeur
Matériels / engins TPchampsActivite.anneeAnnéeex : 2019
Matériels / engins TPchampsActivite.heuresMoteurHeures moteurex : 3 450 h au compteur
Matériels / engins TPchampsActivite.immatriculationImmatriculationex : AB-123-CD
Matériels / engins TPchampsActivite.kilometrageKilométrageex : 412 000 km
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——
Cartes à collectionner / TCGen_stockEn stockdisponible——
Cartes à collectionner / TCGvenduVendusorti✓✓
Cartes à collectionner / TCGreserveRéservéen cours——
Cartes à collectionner / TCGen_gradationEn gradationen 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——
Matériels / engins TPen_stockEn stockdisponible——
Matériels / engins TPvenduVendusorti✓✓
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✓✓