🐾 Réglementation · Arrêté 9 novembre 2023 · Art. 45

Registre des entrées
et sorties des
Carnivores Domestiques

Documentation complète du module de traçabilité des mouvements d'animaux dans Anim'Gest — conforme à l'arrêté du 9 novembre 2023 (article 45) et à l'arrêté du 19 juin 2025. Obligation légale pour tous les opérateurs détenant des chiens, chats et furets.

Arrêté 9 nov. 2023 · Art. 45
Transmission I-CAD dès 2027
Conservation 3 ans
Module S66 cible
🔄

Distinction avec le Registre Sanitaire

Anim'Gest implémente deux registres distincts qui répondent à deux obligations réglementaires différentes. Il est important de ne pas les confondre.

📋 Registre Sanitaire — Page 58
📜 Arrêté 3 avril 2014 (arrêté 19 juin 2025)
🎯 Suivi de santé pendant le séjour
🏡 Pension · Pet-Sitter · Équestre
⏱️ Hébergement temporaire
📅 Conservation : 5 ans
📌 Vaccins · Vétérinaire · Alimentation · Journal
🔒 Immutable après clôture
📦 Registre Entrées/Sorties — Cette page
📜 Arrêté 9 novembre 2023 — Art. 45
🎯 Traçabilité des mouvements d'animaux
🐕 Éleveurs · Pension · Refuges · Animaleries
⏱️ Tout mouvement (entrée · sortie · naissance · décès)
📅 Conservation : 3 ans
📌 Identification I-CAD · Provenance · Destinataire
🌐 Transmission I-CAD dès janvier 2027
ℹ️
Un même établissement (ex : éleveur avec pension) est soumis aux deux registres simultanément. Anim'Gest les propose dans des modules séparés, chacun accessible depuis le menu du métier concerné.
🐾

Opérateurs concernés

Tous les opérateurs exerçant des activités liées aux chiens, chats et furets sont concernés, y compris les éleveurs qui ne vendent pas plus d'une portée par an. La déclaration au registre vaut déclaration au préfet.

🌿 Éleveur (chiens/chats/furets)
🏡 Pension / Chenil
🏠 Pet-Sitter (hébergement)
🏥 Fourrière / Refuge
🛍️ Animalerie
🤝 Association (familles d'accueil)
✂️ Toiletteur (si hébergement)
🐕 Éducateur (si pension)
🦮 Comportementaliste — sans hébergement
💆 Ostéopathe — sans hébergement
🔔
Éleveurs d'une portée/an : Même les éleveurs non professionnels vendant moins d'une portée par an sont soumis à l'obligation de déclaration sur le registre des opérateurs depuis l'arrêté du 19 juin 2025. Le registre d'entrées/sorties s'applique dès le premier animal reçu ou cédé.
⏱️

Délais réglementaires

J0
Entrée d'un animal
Toute entrée d'animal doit être enregistrée le jour même. Aucun délai de grâce.
72h
Sortie / Décès
La date, le motif de sortie et les coordonnées du destinataire doivent être saisis au plus tard dans les 72 heures.
3 ans
Conservation
Tout volume portant mention d'un animal vivant doit être conservé 3 ans après sa sortie de l'établissement.
⚠️
Délai de 72h : Ce délai s'applique également aux décès — date et cause du décès si elle est connue. En cas de contrôle, un registre présentant des entrées sans sorties correspondantes, ou des sorties saisies avec retard, constitue une non-conformité pouvant entraîner des sanctions administratives.

Anim'Gest gère ces contraintes via des alertes automatiques : toute entrée créée sans sortie enregistrée après 72h génère une notification dans le tableau de bord du métier concerné.

📊

Données obligatoires

Identification de l'animal — obligatoire à chaque entrée

DonnéeChamp BDDRéq.Précisions réglementaires
EspèceRES_ESPECECHIEN / CHAT / FURET
RaceRES_RACERace ou croisé — jointure table race
SexeRES_SEXEM / F / INCONNU
Statut reproducteurRES_REPROENTIER / STERILISE / INCONNU (si connu)
Date de naissanceRES_DATE_NAISSANCEOu âge estimé au moment de l'inscription si date inconnue
Numéro d'identificationRES_NUM_ICADNuméro I-CAD (puce ou tatouage) — 15 chiffres pour puce
Signes particuliersRES_SIGNESRobe, marques distinctives, particularités morphologiques

Données d'entrée — obligatoires le jour J

DonnéeChamp BDDDélaiPrécisions
Date d'entréeRES_DATE_ENTREEJ0Horodatage complet (datetime)
ProvenanceRES_PROVENANCE_TYPEJ0ELEVEUR / PARTICULIER / REFUGE / AUTRE_PRO / IMPORTATION
Nom/Raison sociale cédantRES_CÉDANT_NOMJ0Identité du cédant ou de la structure de provenance
Adresse cédantRES_CÉDANT_ADRESSEJ0Adresse complète
Réf. documents accompagnementRES_REF_DOCSObligatoire en cas d'échange ou d'importation

Données de sortie — dans les 72h

DonnéeChamp BDDDélaiPrécisions
Date de sortieRES_DATE_SORTIE72hDate effective du départ de l'établissement
Motif de sortieRES_MOTIF_SORTIE72hCESSION_VENTE / CESSION_DON / TRANSFERT / RETOUR_PROPRIO / DECES / FUITE / AUTRE
Identité destinataireRES_DEST_NOM72hNom et prénom ou raison sociale
Adresse destinataireRES_DEST_ADRESSE72hAdresse complète du destinataire
Cause du décèsRES_CAUSE_DECES72hSi connue — motif DECES uniquement
🌐

Lien I-CAD / Fichier national

🐾
I-CAD — Identification des Carnivores Domestiques
I-CAD est le gestionnaire officiel du fichier national d'identification des chiens, chats et furets en France. Depuis l'arrêté du 9 novembre 2023, le registre des entrées/sorties est mis à disposition des opérateurs via ce fichier sous forme dématérialisée. À partir du 1er janvier 2027, la transmission des données sera obligatoire.
Aujourd'hui — S65 → S66
Registre tenu dans Anim'Gest. Données stockées en BDD locale. Export PDF pour contrôles DDPP.
Table registre_entrees_sorties — BDD micro_logiciel
2025-2026 — Préparation
Vérification concordance numéro I-CAD avec la base nationale. Anim'Gest propose une validation du numéro de puce (format ISO 11784/11785, 15 chiffres).
Validation regex côté frontend : /^\d{15}$/
1er Janvier 2027 — Transmission obligatoire
Les données du registre devront être transmises automatiquement au fichier national I-CAD. Anim'Gest prévoit une intégration API I-CAD en S70+ pour cette conformité.
Planifié : route POST /api/icad/sync — S70+
🗃️

Structure BDD

Migration SQL — S66 (cible) SQL
-- Registre des entrées et sorties des carnivores domestiques
-- Arrêté 9 novembre 2023 — Article 45
CREATE TABLE registre_entrees_sorties (
  RES_ID                INT(11) AUTO_INCREMENT PRIMARY KEY,
  ANI_ID                INT(11),             -- lien animal si existant en BDD
  TIE_ID                INT(11),             -- lien propriétaire si connu

  -- Identification réglementaire (toujours requis)
  RES_ESPECE            ENUM('CHIEN','CHAT','FURET') NOT NULL,
  RES_RACE              VARCHAR(100) NOT NULL,
  RES_NOM               VARCHAR(100),
  RES_SEXE              ENUM('M','F','INCONNU') NOT NULL,
  RES_REPRO             ENUM('ENTIER','STERILISE','INCONNU'),
  RES_DATE_NAISSANCE    DATE,
  RES_AGE_INSCRIPTION   VARCHAR(50),     -- si date naissance inconnue
  RES_NUM_ICAD          VARCHAR(20) NOT NULL,   -- numéro puce 15 chiffres
  RES_SIGNES            VARCHAR(500),

  -- Entrée (J0 obligatoire)
  RES_DATE_ENTREE       DATETIME NOT NULL,
  RES_PROVENANCE_TYPE   ENUM('ELEVEUR','PARTICULIER','REFUGE',
                             'AUTRE_PRO','IMPORTATION','NAISSANCE') NOT NULL,
  RES_CEDANT_NOM        VARCHAR(200) NOT NULL,
  RES_CEDANT_ADRESSE    TEXT NOT NULL,
  RES_REF_DOCS          VARCHAR(500),    -- réf. docs accompagnement / certif. import

  -- Sortie (72h max)
  RES_DATE_SORTIE       DATETIME,
  RES_MOTIF_SORTIE      ENUM('CESSION_VENTE','CESSION_DON','TRANSFERT',
                             'RETOUR_PROPRIO','DECES','FUITE','AUTRE'),
  RES_DEST_NOM          VARCHAR(200),
  RES_DEST_ADRESSE      TEXT,
  RES_CAUSE_DECES       VARCHAR(500),    -- si DECES, cause si connue

  -- Statut et métadonnées
  RES_STATUT            ENUM('PRESENT','SORTI','DECEDE') DEFAULT 'PRESENT',
  RES_METIER            VARCHAR(30) NOT NULL,    -- ELEVEUR / PENSION / PET_SITTER
  RES_NOTES             TEXT,
  RES_CREATED_AT        DATETIME DEFAULT CURRENT_TIMESTAMP,
  RES_UPDATED_AT        DATETIME ON UPDATE CURRENT_TIMESTAMP,
  RES_SORTIE_SAISIE_LE  DATETIME,            -- pour vérification délai 72h

  FOREIGN KEY (ANI_ID) REFERENCES animal(ANI_ID) ON DELETE SET NULL,
  FOREIGN KEY (TIE_ID) REFERENCES tiers(TIE_ID) ON DELETE SET NULL,
  INDEX idx_res_icad (RES_NUM_ICAD),
  INDEX idx_res_statut (RES_STATUT),
  INDEX idx_res_metier (RES_METIER),
  INDEX idx_res_entree (RES_DATE_ENTREE)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  COMMENT='Registre entrées/sorties carnivores - Arrêté 9 nov. 2023 art.45';
🔌

Routes API

MéthodeRouteDescription
GET /api/registre-mouvements Liste paginée avec filtres (statut, espèce, métier, période, search)
GET /api/registre-mouvements/:id Détail complet d'un mouvement
POST /api/registre-mouvements Enregistrer une entrée (J0 — champs requis validés)
PUT /api/registre-mouvements/:id/sortie Enregistrer la sortie / le décès (alerte si > 72h)
GET /api/registre-mouvements/alertes Animaux présents sans sortie depuis > 72h (dashboard)
GET /api/registre-mouvements/export-pdf Export PDF Puppeteer — version non modifiable pour DDPP
GET /api/registre-mouvements/stats Statistiques (entrées/sorties par période, par espèce, par motif)

Paramètres de filtrage — GET /registre-mouvements

ParamètreTypeValeurs
?statut=stringPRESENT | SORTI | DECEDE
?espece=stringCHIEN | CHAT | FURET
?metier=stringELEVEUR | PENSION | PET_SITTER
?alerte_72h=booleantrue → retourne les entrées sans sortie > 72h
?date_from=dateFiltre date d'entrée ≥
?search=stringNom animal, numéro I-CAD, nom cédant/destinataire
🔄

Cycle d'un mouvement

📥 ENTRÉE — J0 obligatoire
L'animal arrive dans l'établissement. Saisie immédiate : identification I-CAD, espèce, race, sexe, date naissance, provenance complète. Statut → PRÉSENT.
RES_DATE_ENTREE = NOW() · RES_STATUT = 'PRESENT'
🐾 PRÉSENT — Séjour en cours
L'animal est dans l'établissement. Les données peuvent être complétées (signes particuliers, notes). Si hébergement ≥ 1 nuit → croisement avec le Registre Sanitaire recommandé.
Alerte automatique si sortie non saisie après 72h
📤 SORTIE — Dans les 72h
L'animal quitte l'établissement. Saisie : date effective, motif (vente / don / transfert / retour propriétaire…), identité et adresse du destinataire. Statut → SORTI.
RES_DATE_SORTIE · RES_MOTIF_SORTIE · RES_DEST_NOM · RES_DEST_ADRESSE
💀 DÉCÈS — Dans les 72h
En cas de décès, date et cause (si connue) doivent être saisies dans les 72h. Statut → DÉCÉDÉ. L'entrée devient immutable.
RES_MOTIF_SORTIE = 'DECES' · RES_CAUSE_DECES
🖥️

Interface utilisateur

Le module est accessible depuis le menu de chaque métier concerné. Un composant RegistreEntreesSortiesPage.tsx partagé accepte un paramètre metier.

🌿
/app/elevage/registre-mouvements
Vue éleveur — gestion des portées, cessions, imports. Filtres par espèce et motif de sortie.
🏡
/app/pension/registre-mouvements
Vue Pension/Chenil — entrées/sorties de pension, croisement automatique avec le Registre Sanitaire.
🏠
/app/pet-sitter/registre-mouvements
Vue Pet-Sitter — gardes avec hébergement. Alerte 72h proéminente sur le dashboard métier.
  • 🔍
    Recherche I-CAD — Champ numéro puce avec validation format ISO 11784/11785 (15 chiffres). Vérification côté serveur de la cohérence avec la fiche animal si ANI_ID est connu.
  • ⚠️
    Alertes 72h — Badge rouge sur l'icône du menu si des animaux présents n'ont pas eu leur sortie saisie dans les délais. Widget dédié sur le tableau de bord métier.
  • 🖨️
    Export PDF officiel — Génération Puppeteer d'un registre numéroté, daté, non modifiable — conforme à l'exigence de version semestrielle. Format A4 paysage avec en-tête établissement.
  • 🔗
    Lien avec la fiche animal — Si l'animal est référencé en BDD (ANI_ID), l'entrée est liée automatiquement. Le numéro I-CAD est pré-rempli depuis la fiche animal.
  • 📊
    Tableau de bord statistiques — Nombre d'entrées/sorties par période, répartition par espèce et par motif de sortie. Aide au bilan annuel DDPP.

Règles métier

  • 🔢
    Pas de blanc ni de rature : Conformément à la réglementation, aucune suppression d'entrée n'est possible. Toute correction est enregistrée comme un événement séparé avec motif. La suppression est désactivée en UI.
  • ⏱️
    Alerte délai 72h : Anim'Gest surveille les entrées sans sortie depuis plus de 72h et génère une alerte automatique. La route GET /api/registre-mouvements/alertes retourne ces cas en temps réel.
  • 🔒
    Entrée immutable après sortie : Une fois la sortie ou le décès enregistré, les données de l'animal (espèce, race, numéro I-CAD) ne peuvent plus être modifiées pour préserver l'intégrité du registre.
  • 📅
    Conservation 3 ans : Aucune suppression automatique avant 3 ans révolus après la date de sortie. L'interface n'affiche pas de bouton de suppression pour les entrées de moins de 3 ans.
  • 🐾
    I-CAD obligatoire : Le numéro d'identification est obligatoire pour les chiens, chats et furets (identifiés par micropuce depuis 2012 pour les chiens, 2012 pour les chats nés après 2012). Validation format 15 chiffres au saisie.
  • 📤
    Naissance = entrée immédiate : Pour les naissances en élevage, chaque chiot/chaton/fureton doit être enregistré en entrée dès sa naissance. Provenance = NAISSANCE, cédant = l'établissement lui-même.
  • 📄
    Version semestrielle : La route d'export PDF génère une version numérotée et datée. Anim'Gest propose un rappel automatique tous les 6 mois pour déclencher cette sauvegarde réglementaire.
  • 🔗
    Indépendance d'Eliot : Le registre des entrées/sorties est une obligation réglementaire — il fonctionne intégralement sans Eliot. Les outils IA viennent en complément uniquement.
⚖️

Quand utiliser quel registre ?

💡
Un animal en pension déclenche les deux registres simultanément : son entrée physique dans l'établissement alimente le Registre Entrées/Sorties (traçabilité du mouvement), et son séjour quotidien alimente le Registre Sanitaire (suivi de santé). Anim'Gest propose une création croisée automatique lors de l'enregistrement d'une entrée de pension.
SituationRegistre SanitaireRegistre E/S
Animal en pension (hébergement)✅ Obligatoire✅ Obligatoire
Vente d'un chiot en élevage— Non requis✅ Obligatoire
Naissance en élevage— Non requis✅ Obligatoire (J0)
Garde de jour (sans nuit)— Non requis⚠️ Recommandé
Séance comportementaliste— Non requis— Non requis
Toilettage sans hébergement— Non requis— Non requis
Décès en pension✅ Journal URGENCE✅ Motif DECES (72h)
🤖

Intégration Eliot (futur)

🔮
L'intégration Eliot pour le registre des entrées/sorties est planifiée en S68+. Les outils ci-dessous sont spécifiés mais pas encore implémentés.
Tool EliotDescriptionStatut
get_alertes_mouvementsLister les animaux présents sans sortie enregistrée depuis > 72hPlanifié S68
create_entree_animalEnregistrer vocalement une entrée depuis Eliot (scan puce → fiche auto)Planifié S68
enregistrer_sortieEnregistrer la sortie d'un animal via Eliot avec confirmation vocale du destinatairePlanifié S69
Rappel : Eliot est une option commerciale. Le registre des entrées/sorties est une obligation réglementaire accessible et pleinement opérationnel sans Eliot. L'IA vient en complément, jamais en prérequis.