Référence Technique

API Reference

Toutes les routes de custom-routes.ts — NestJS backend — Anim'Gest S63

~115
Routes totales
3846
Lignes source
117
getDb() calls
S63
Dernière MàJ
01Core
GET
/bilanHealthcheck API + stats générales
GET
/tiersListe clients/fournisseurs (?type=CLIENT|FOURNISSEUR)
GET
/tiers/:idDétail tiers
GET
/animauxListe animaux (?tie_id=)
GET
/animaux/racesToutes les races (?type=&categorie=)
GET
/animaux/:idFiche animal complète
GET
/contactsContacts pour autocomplétion
GET
/categoriesCatégories articles
GET
/tvaTaux TVA
02Séances
GET
/seancesListe séances (?tie_id= &ani_id= &statut=)
GET
/seances/:idDétail séance avec jointures STY/SST/tiers/animal/contact
PATCH
/seances/:idModifier séance (drag & drop planning — SEA_DATE_DEBUT/FIN/OBJET/MONTANT)
GET
/seances/bcSéances avec Bilan Comportemental
GET
/agendaSéances pour agenda (?debut= &fin=)
GET
/planning-seancesPlanning séances (?semaine=)
03Commercial — Devis, Factures, Règlements
GET
/devisListe devis (?tie_id= &statut=)
GET
/devis/:idDétail devis + lignes
PUT
/devis/:id/statutChanger statut (BROUILLON→ENVOYE→ACCEPTE→REFUSE→ANNULE)
POST
/devis/:id/facturerCréer facture depuis devis accepté
POST
/devis/:id/emailEnvoyer devis par email au client
GET
/facturesListe factures avec statut paiement
GET
/factures/:idDétail facture + lignes
GET
/reglementsListe règlements
GET
/reglements/export-csvExport CSV règlements — colonnes : ID · Date · Montant · Mode · FAC_NUM · Client — BOM UTF-8 — S68
GET
/avoirsListe avoirs
GET
/avoirs/:idDétail avoir
GET
/inventairesListe inventaires
GET
/achatsListe achats fournisseurs
04Élevage
GET
/elevage/geniteursListe géniteurs
GET
/elevage/porteesListe portées
GET
/elevage/sailliesListe saillies
GET
/elevage/gestationsGestations en cours
GET
/elevage/reservationsRéservations chiot
GET
/elevage/alertesAlertes élevage (vaccins, déparasitages)
GET
/elevage/genealogieArbre généalogique
05GED & CAC
GET
/ged-bcFiche BC par séance (?sea_id=)
GET
/ged-cac/:idScore CAC par séance
GET
/ged-cac/animal/:id/evolutionHistorique CAC animal (vue v_animal_evolution_cac)
GET
/ged-cac/animal/:id/scoreScore CAC courant
GET
/ged-factures-impayeesFactures impayées pour GED
06Statistiques
GET
/dashboard/statsKPIs dashboard principal
GET
/stats/kpisKPIs étendus (CA, panier moyen)
GET
/stats/ca-par-moisCA mensuel 12 mois glissants
GET
/stats/especesRépartition animaux par espèce
GET
/stats/villesConcentration clients par ville
GET
/stats/top-clientsTop clients par CA
GET
/stats/especes-caCA par espèce
GET
/stats/seances-par-typeRépartition séances par type
07CRM & Réseaux sociaux
GET
/crm/leadsListe leads CRM avec filtres
GET
/crm/statsStatistiques CRM
GET
/reseaux-sociaux/comptesComptes RS (rs_compte)
GET
/reseaux-sociaux/publicationsPublications RS (rs_post)
08Forfaits & Formules S53-S56
GET
/forfaitsCatalogue forfaits par métier
POST
/forfaitsCréer forfait
GET
/forfaits/clientsSouscriptions clients actives
POST
/forfaits/clientsNouvelle souscription
GET
/formulesCatalogue formules/abonnements
POST
/formules/:id/souscrireSouscription client
POST
/formules/:id/consommerConsommer une séance (auto-statut EPUISEE)
09Rôles & Permissions RBAC S58
GET
/rolesListe rôles (ADMIN, GESTION, CONSULT, COMPTA)
GET
/roles/:id/permissionsPermissions d'un rôle par module (can_read, can_write, can_delete)
GET
/user-permissionsPermissions de l'utilisateur courant
10Signatures Yousign
GET
/signaturesListe signatures
GET
/signatures/:idDétail signature + statut Yousign
POST
/signaturesCréer demande BDD + appel Yousign API v3
POST
/signatures/:id/envoyerActiver demande + récupérer lien signataire
POST
/signatures/webhookCallback Yousign → mise à jour statut
11Paramètres
GET
/parametres/metierParamètre métier actif
PUT
/parametres/metierMettre à jour métier
GET
/parametres/editionsParamètres éditions (logo, couleurs, police)
GET
/param-smtpConfig SMTP
PUT
/param-smtpSauvegarder config SMTP depuis UI S63
GET
/param-stripeConfig Stripe
GET
/param-yousignConfig Yousign
PUT
/param-yousignMettre à jour config Yousign
GET
/plan-comptablePlan comptable PCG
GET
/aide/contexteAide contextuelle (7 contextes)
12Programmes & Questionnaires
GET
/programmesProgrammes de suivi
POST
/programmesCréer programme
GET
/questionnairesListe questionnaires
POST
/questionnairesCréer questionnaire
13Portail ClientS61-S63
POST
/portail/auth/loginConnexion client (token accès → session_token) S61
POST
/portail/auth/logoutDéconnexion (invalide session) S61
GET
/portail/admin/accesListe accès portail (praticien) S61
POST
/portail/admin/accesCréer accès + générer token 64 chars hex S61
GET
/portail/animauxAnimaux du client connecté (ANI_CLI) S62
GET
/portail/devisDevis ENVOYE/ACCEPTE/FACTURE S62
GET
/portail/facturesFactures + solde restant S62
GET
/portail/factures/:id/pdfPDF facture pour modal iframe S62
GET
/portail/seancesSéances du client (SEA_DATE_DEBUT) S63 ★
POST
/portail/seances/:id/confirmerCONFIRME / ANNULE / REPORTE S63 ★
GET
/portail/notificationsNotifications client (PCN_TYPE, PCN_CANAL, PCN_STATUT) S63 ★
PUT
/portail/admin/acces/:id/toggleActiver / désactiver accès S63 ★
POST
/portail/admin/acces/:id/send-linkEnvoyer lien portail par email (nodemailer) S63 ★

ℹ️ Toutes les routes portail utilisent _readBody() et sont dans instance.use() exclusivement.

14Eliot IAS61-S68 · 16 tools
POST
/ia/chatProxy Anthropic API côté serveur — 10 tools déclarés (get_client, get_animal, create_devis, create_seance, get_planning, get_factures, send_email, update_statut_devis, create_facture_depuis_devis, create_reglement)
GET
tool: get_registre_carnivoresEliot — Liste mouvements registre carnivores avec filtres statut/espece/search — S68
POST
tool: create_registre_carnivoreEliot — Créer une entrée registre carnivores (animal + métier + date) — S68
PUT
tool: update_sortie_registre_carnivoreEliot — Enregistrer sortie d'un carnivore (date + observations) — S68

ℹ️ ANTHROPIC_API_KEY sécurisée côté serveur (jamais exposée frontend). Eliot est une option commerciale — toutes les fonctionnalités marchent sans lui.

15Éditions & PDFS62
POST
/editions/upload-logoUpload logo - base64 direct dans param_edition ED_LOGO_BASE64 (S75)
GET
/editions/upload-logoLecture logo base64 depuis param_edition ED_LOGO_BASE64
POST
/editions/upload-filigraneUpload filigrane - base64 direct dans param_edition ED_FILIGRANE_BASE64 (S75)
GET
/editions/upload-filigraneLecture filigrane base64 depuis param_edition ED_FILIGRANE_BASE64
POST
/editions/upload-cgvUpload CGV PDF - base64 direct dans param_edition PE_CGV_BASE64 (S75)
GET
/editions/cgv/previewPreview PDF CGV depuis base64 BDD
GET
/editions/devis/:idPDF devis puppeteer avec param_edition (couleur, logo, filigrane, police)
GET
/editions/facture/:idPDF facture puppeteer avec param_edition + fusion CGV
GET
/editions/avoir-client/:idPDF avoir client puppeteer (S74)
GET
/editions/bon-livraison/:idPDF bon de livraison (S71)
GET
/editions/bon-retour/:idPDF bon de retour fournisseur (S71)
S75
Migration GED supprimeeupload-logo/filigrane/cgv stockent desormais en base64 dans param_edition - micro_logiciel_ged supprimee (0 tables, aucune donnee perdue)
16Registre SanitaireS65
GET
/registre-sanitaireListe séjours avec jointures animal+tiers (?metier=PENSION|PET_SITTER|EQUESTRE &statut= &search=)
GET
/registre-sanitaire/:idDétail complet séjour + journal événements
POST
/registre-sanitaireCréer séjour (entrée animal) — champs requis : ANI_ID, TIE_ID, RSS_DATE_ENTREE, RSS_ETAT_ENTREE, RSS_VETO_NOM, RSS_VETO_TEL, RSS_URGENCE_NOM, RSS_URGENCE_TEL
PUT
/registre-sanitaire/:idMettre à jour / clôturer séjour (sortie animal) — auto-CLOTURE si RSS_DATE_SORTIE_REELLE fournie
POST
/registre-sanitaire/:id/evenementAjouter événement au journal — RSE_TYPE : ALIMENTATION|SANTE|COMPORTEMENT|TRAITEMENT|VETERINAIRE|AUTRE · RSE_GRAVITE : FAIBLE|MODEREE|ELEVEE|URGENCE
GET
/registre-carnivoresListe registre carnivores domestiques — filtres metier/statut/espece/search
GET
/registre-carnivores/:idDetail entree registre carnivores
POST
/registre-carnivoresCreer entree registre carnivores domestiques
PUT
/registre-carnivores/:idMettre a jour / sortie rapide registre carnivores
17Registre Carnivores DomestiquesS66
GET
/registre-carnivoresListe mouvements carnivores (?metier=PET_SITTER|PENSION_CHENIL|ELEVEUR &statut=PRESENT|SORTI|DECEDE &espece=CHIEN|CHAT|FURET &search=)
GET
/registre-carnivores/:idDétail complet d'un mouvement avec jointures animal (FROM animal) + tiers (TIE_RAISON_SOCIALE)
POST
/registre-carnivoresEnregistrer entrée immédiate — RC_DATE_ENTREE = NOW() · RC_PROVENANCE_TYPE : ELEVEUR|PARTICULIER|NAISSANCE|REFUGE|IMPORTATION
PUT
/registre-carnivores/:idModifier / enregistrer sortie — auto-SORTI si RC_DATE_SORTIE fournie · RC_MOTIF_SORTIE : CESSION_VENTE|CESSION_DON|RETOUR_PROPRIO|DECES|TRANSFERT
18TarificationS64
GET
/tarificationLire la configuration de tarification (COEF_FG+MARGE, COEF_VTE, PRIX_DIRECT)
PUT
/tarificationMettre à jour la méthode et les coefficients — colonnes : DCE_METHODE_TARIF, DCE_COEF_FG, DCE_PCT_MARGE, DCE_COEF_VTE
GET
/tarification/historiqueHistorique des changements de tarification avec dates d'application
POST
/devis/:id/appliquer-tarifAppliquer la tarification courante à un devis existant
20Mémoire Eliot & Notifications PortailS69
GET
/ia/memoireListe des faits mémorisés par Eliot — seeds langue + métier
POST
/ia/memoireAjouter un fait à la mémoire Eliot (tool memoriser)
DELETE
/ia/memoire/:idSupprimer un fait de la mémoire Eliot
GET
/ia/sessionsHistorique des sessions Eliot (résumés fire-and-forget)
GET
/portail/admin/notifications/configConfiguration notifications portail — 5 types (DEVIS_DISPONIBLE, FACTURE_DISPONIBLE…)
PUT
/portail/admin/notifications/configMettre à jour la configuration des notifications portail
POST
/portail/admin/notifications/envoyerEnvoyer manuellement une notification portail
GET
/portail/admin/notifications/historiqueHistorique des notifications envoyées
GET
/factures/export-csvExport CSV factures — BOM UTF-8 — 143 factures — FAC_NUM · Date · Client · TTC · Statut
21

Eliot — Registre Sanitaire (tools 18-20)

IA
TOOL get_registre_sanitaire

Liste ou détail des séjours au registre sanitaire. Filtres : ani_id, statut, metier, rss_id.

TOOL create_evenement_sanitaire

Crée un événement dans le journal sanitaire d'un séjour (SOIN / OBSERVATION / TRAITEMENT / VACCINATION / INCIDENT).

TOOL get_alertes_vaccins

Retourne les séjours avec vaccins manquants ou à vérifier (RAGE, CHC, LEUCOSE).

22

Portail Client — Envoi notifications + Pages détail achats

PORTAIL
POST /portail/envoyer

Envoie une notification portail à un client. Body : { tie_id, type } (types : DEVIS_DISPONIBLE · RAPPEL_SEANCE · FACTURE_DISPONIBLE). Délègue à envoyerNotification(). Retourne { sent: true }.

PAGE /app/bon-livraison/[id]

Fiche détail bon de livraison — infos BL + lignes (bon_livraison_ligne) + actions statut BROUILLON → ENVOYE → LIVRE.

PAGE /app/bon-retour/[id]

Fiche détail bon de retour — infos BR + motif + actions statut → TRAITE / REFUSE. (Table bon_retour_ligne inexistante — pas de section lignes.)

PAGE /app/demande-avoir-fourn/[id]

Fiche détail demande d'avoir fournisseur — infos DAF + motif + actions statut → ACCEPTE → REMBOURSE / REFUSE. (Table demande_avoir_fourn_ligne inexistante — pas de section lignes.)

PAGE /app/elevage/declarations

Page déclarations élevage — créée S72. Lien sidebar groupe Élevage ajouté.

23

Avoir Client · PDF Éditions · Eliot tool 22

S74
GET
/avoir-clientListe des avoirs client — Guard R-26 (rejette sous-chemins)
GET
/avoir-client/:idDétail avoir client — Guard R-32 (urlParts.length === 2)
PUT
/avoir-client/:idMise à jour avoir client — whitelist 6 champs (AVC_STATUT, AVC_MOTIF, AVC_TOTAL_HT, AVC_TOTAL_TTC, AVC_DATE_EMISSION, AVC_COMMENTAIRE)
GET
/avoir-client/:id/lignesListe des lignes d'un avoir client (table avoir_client_ligne)
POST
/avoir-client/:id/lignesAjouter une ligne à un avoir client — triggers recalculent AVC_TOTAL_HT/TTC
GET
/editions/bon-livraison/:idHTML PDF bon de livraison — lignes sans prix (document transport) · violet #4F46E5
GET
/editions/bon-retour/:idHTML PDF bon de retour — lignes + totaux HT/TVA/TTC · amber #F59E0B
GET
/editions/demande-avoir-fourn/:idHTML PDF demande d'avoir fournisseur — lignes + BR lié · violet #8B5CF6
GET
/editions/avoir-client/:idHTML PDF avoir client — lignes avoir_client_ligne + totaux · vert #10B981
TOOL
get_avoirs_clientEliot tool 22 — liste avoirs client avec filtres statut + tie_id. Retourne total, total_ttc, avoirs[] (numéro, client, montant, statut, motif, facture origine).