api
connecteur
Indicateurs (KPI)
En bref
Le connecteur calcule 128 indicateurs répartis en 18 familles directement sur la base
Sage 100c, au moment de l'appel. Trois routes suffisent : le catalogue, l'exécution d'une
famille entière, l'exécution d'un indicateur précis. Le résultat est toujours indexé par
dossier Sage .
Les trois routes
Méthode et route
Rôle
Exécute du SQL
GET /v2/kpi
catalogue des familles et des codes disponibles
non
GET /v2/kpi/{type}
exécute tous les indicateurs d'une famille
oui
GET /v2/kpi/{type}/{code}
exécute un indicateur
oui
{type} est le code de famille (par exemple clients-ca), {code} celui de l'indicateur
(par exemple ca-n). Les deux doivent correspondre exactement aux valeurs du catalogue.
Les mêmes routes existent sans le préfixe /v2 dans la surface historique du connecteur
(GET /kpi, /kpi/{type}, /kpi/{type}/{code}). Elles renvoient la même charge utile mais sans
l'enveloppe v2 : pour une intégration neuve, utilisez /v2.
Paramètres
Paramètre
Type
Défaut
Rôle
targets
chaîne
tous les dossiers autorisés
dossiers cibles, séparés par des virgules. Alias hérités acceptés : target_base, target, base, bases (séparateurs , ou \|)
limit
entier
0 (illimité)
nombre maximum de lignes, par dossier et par indicateur
offset
entier
0
décalage, à combiner avec limit
Rien d'autre n'est à fournir : les dates d'exercice, les filtres utilisateur et les seuils métier
sont appliqués côté connecteur .
Ce que le connecteur applique automatiquement
Élément
Valeur
Exercice N
dates d'exercice comptable courant du dossier Sage
Exercice N-1
exercice précédent (N moins un an)
Filtres utilisateur
filtres par dossier, profil, utilisateur, et restriction collaborateur
Seuil « dormant »
12 mois
Seuil « churn »
24 mois
Seuil « VIP »
50 000
Période de référence
365 jours
Un utilisateur ne voit donc que les données qui le concernent, sans que le client ait à le gérer.
Sur /v2, la charge utile est emballée dans l'enveloppe habituelle : elle se trouve dans data,
et meta.dossiers liste les dossiers réellement interrogés (voir
Conventions ).
Catalogue Une famille Un indicateur
GET /v2/kpi — data est un tableau de familles, chacune listant ses indicateurs. Pas
d'exécution SQL, pas de dimension dossier.
{
"success" : true ,
"data" : [
{
"type" : "clients-ca" ,
"libelle" : "Clients - Chiffre d'affaires & rentabilité" ,
"kpis" : [
{ "code" : "ca-n" , "libelle" : "CA exercice N (factures - avoirs)" , "note" : null },
{ "code" : "ca-n1" , "libelle" : "CA exercice N-1" , "note" : null }
]
}
],
"meta" : { "correlationId" : "…" , "durationMs" : 12 , "dossiers" : null }
}
GET /v2/kpi/{type} — data est indexé par dossier , puis par code . La valeur de chaque
code est un tableau de lignes.
{
"success" : true ,
"data" : {
"DEMO" : {
"ca-n" : [ { "CA_N" : 1234567.89 } ],
"ca-n1" : [ { "CA_N1" : 1100000.00 } ],
"top10-clients" : [
{ "CT_Num" : "C0001" , "CT_Intitule" : "Client de démonstration" , "CA" : 250000.00 }
]
},
"DEMO2" : { }
},
"meta" : { "correlationId" : "…" , "durationMs" : 840 , "dossiers" : [ "DEMO" , "DEMO2" ] }
}
GET /v2/kpi/{type}/{code} — data est indexé par dossier , la valeur étant directement le
tableau de lignes.
{
"success" : true ,
"data" : {
"DEMO" : [ { "CA_N" : 1234567.89 } ],
"DEMO2" : [ { "CA_N" : 456000.00 } ]
},
"meta" : { "correlationId" : "…" , "durationMs" : 96 , "dossiers" : [ "DEMO" , "DEMO2" ] }
}
Règles de sérialisation
Un résultat est toujours un tableau d'objets : une entrée par ligne, les clés étant les noms
de colonnes.
Un indicateur scalaire (ca-n par exemple) renvoie un tableau d'une seule ligne : lisez
l'indice [0].
Un indicateur sans donnée renvoie [].
Les dossiers sans données ou non autorisés sont omis de la réponse.
Les dates « vides » de Sage (1753-01-01, 1900-01-01) peuvent apparaître : traitez-les côté
client si besoin.
Si un indicateur échoue sur un dossier, il renvoie [] pour ce dossier ; l'appel entier n'échoue
pas.
Ne jamais supposer un seul dossier
Toute réponse d'exécution est indexée par nom de dossier au premier niveau, même quand un seul
dossier est autorisé. C'est l'erreur d'intégration la plus fréquente.
Catalogue des 128 indicateurs
18 familles. La colonne Colonnes retournées liste les champs de chaque ligne renvoyée.
Clients
clients-activite — Activité commerciale
Code
Libellé
Colonnes retournées
nb-clients-total
Nombre total de clients (actifs + en sommeil)
NbClientsTotal
nb-clients-actifs-n
Nombre de clients actifs sur l'exercice
NbClientsActifsN
clients-inactifs
Clients inactifs (sommeil ou sans facture sur l'exercice)
ClientsEnSommeil, ClientsSansFactureN
nouveaux-clients-n
Nouveaux clients de l'exercice
NbNouveauxClientsN
clients-churn
Clients perdus : actifs en N-1 mais sans facture en N
NbClientsChurn
taux-churn
Taux de churn : churn / clients actifs N-1
TauxChurn
taux-reactivation
Taux de réactivation : actifs en N mais inactifs en N-1
NbClientsReactives, TauxReactivation
nb-moyen-commandes
Nombre moyen de commandes par client sur l'exercice
NbMoyenCommandesParClient
frequence-achat
Fréquence d'achat (jours moyens entre commandes par client)
JoursMoyensEntreCmd
panier-moyen
Panier moyen HT (montant moyen d'une facture de vente)
PanierMoyenHT
delai-moyen-commandes
Délai moyen entre commandes (vue globale)
DelaiMoyenEntreCmd
clients-ca — Chiffre d'affaires et rentabilité
Code
Libellé
Colonnes retournées
ca-total
CA total clients (toutes périodes, factures - avoirs)
CA_Total_Clients
ca-n
CA exercice N (factures - avoirs)
CA_N
ca-n1
CA exercice N-1
CA_N1
evolution-ca
Évolution du CA en %
CA_N, CA_N1, EvolutionPct
ca-moyen-client
CA moyen par client sur l'exercice
CA_MoyenParClient
top10-clients
Top 10 clients (CA décroissant sur l'exercice)
CT_Num, CT_Intitule, CA
pareto-top20
Part du CA des 20 % meilleurs clients
CA_Top20Pct, CA_Total, PartTop20Pct
marge-brute
Marge brute HT sur l'exercice
MargeBrute
marge-moyenne-client
Marge moyenne par client
MargeMoyenneParClient
rentabilite-client
Rentabilité par client (CA, marge, taux de marge)
CT_Num, CT_Intitule, CA_HT, Marge, TauxMarge
clients-non-rentables
Clients non rentables (marge négative ou nulle)
CT_Num, CT_Intitule, Marge
clients-risque — Risque et finance
Code
Libellé
Colonnes retournées
nb-clients-retard
Nombre de clients en retard de paiement
NbClientsEnRetard
montant-retards
Montant total des retards
MontantRetards
dso
DSO (délai moyen d'encaissement)
DSO_Jours
encours-client
Encours client (factures non réglées, par client)
CT_Num, CT_Intitule, Encours
impayes
Impayés (échéances avec date d'impayé renseignée)
NbImpayes, MontantImpayes
taux-impayes
Taux d'impayés : montant impayés / CA TTC de l'exercice
TauxImpayes
clients-bloques
Clients bloqués (sommeil ou sous surveillance)
CT_Num, CT_Intitule, CT_Sommeil, CT_Surveillance
risque-client
Risque client (plafond d'encours face à l'encours réel)
CT_Num, CT_Intitule, PlafondEncours, EncoursReel, DepassementEncours, NumeroCoface
dependance-client
Dépendance client (part du CA total portée par chaque client)
CT_Num, CT_Intitule, CA, PartCA
clients-fidelisation — Fidélisation
Code
Libellé
Colonnes retournées
anciennete-moyenne
Ancienneté moyenne client, en mois
AncienneteMoyenneMois
taux-fidelisation
Taux de fidélisation : actifs N déjà actifs en N-1
TauxFidelisation
derniere-commande-client
Date de dernière commande par client
CT_Num, CT_Intitule, DerniereCommande
clients-dormants
Clients dormants (aucune commande depuis le seuil dormant)
CT_Num, CT_Intitule, DerniereCommande
clients-vip
Clients VIP (CA de l'exercice au-delà du seuil VIP)
CT_Num, CT_Intitule, CA
score-fidelite
Score de fidélité (RFM simplifié)
CT_Num, CT_Intitule, ScoreFidelite
ltv
Valeur vie client approchée
CT_Num, CT_Intitule, CA_HT_Total, LTV_Marge
clients-analyse — Analyse avancée
Code
Libellé
Colonnes retournées
repartition-geographique
Répartition géographique, par pays
Pays, NbClients
repartition-secteur
Répartition par secteur (code APE)
CodeAPE, NbClients
analyse-abc
Analyse ABC clients (A = 80 %, B = 15 %, C = 5 % du CA)
CT_Num, CT_Intitule, CA, PartCumulee, ClasseABC
prevision-ca
Prévision de CA (extrapolation linéaire depuis le début d'exercice)
CA_YTD, JoursEcoules, JoursTotal, PrevisionCA
cross-sell
Potentiel de vente croisée (familles non achetées par client)
CT_Num, CT_Intitule, FamillesTotal, FamillesAchetees, FamillesPotentielles
upsell
Potentiel de montée en gamme (clients dont le panier moyen croît)
CT_Num, CT_Intitule, PanierN1, PanierN, CroissancePanier
Articles
articles-catalogue — Activité catalogue
Code
Libellé
Colonnes retournées
nb-articles-total
Nombre total d'articles
NbArticlesTotal
nb-articles-actifs
Articles actifs (non en sommeil)
NbArticlesActifs
nb-articles-inactifs
Articles inactifs (en sommeil)
NbArticlesInactifs
nb-familles
Nombre de familles
NbFamilles
nb-sous-familles
Nombre de sous-familles
NbSousFamilles
nouveaux-articles
Nouveaux articles sur l'exercice
NbNouveauxArticles
articles-sommeil-n
Articles mis en sommeil sur l'exercice
NbArticlesMisEnSommeilSurN
articles-vente — Vente et performance
Code
Libellé
Colonnes retournées
ca-par-article
CA de l'exercice par article
AR_Ref, AR_Design, CA
ca-n1-par-article
CA N-1 par article
AR_Ref, AR_Design, CA_N1
evolution-ca-article
Évolution du CA en % par article
AR_Ref, AR_Design, CA_N, CA_N1, EvolutionPct
qte-vendue-article
Quantité vendue par article sur l'exercice
AR_Ref, AR_Design, QteVendue
top-articles
Top articles (CA décroissant, 20 premiers)
AR_Ref, AR_Design, CA
articles-rentables
Articles les plus rentables (marge brute décroissante)
AR_Ref, AR_Design, Marge
articles-moins-vendus
Articles les moins vendus (quantité croissante)
AR_Ref, AR_Design, QteVendue
rotation-stock
Rotation du stock : quantité vendue / stock moyen
AR_Ref, AR_Design, QteVendue, StockMoyen, Rotation
panier-moyen-article
Panier moyen article (montant moyen de ligne)
AR_Ref, AR_Design, PanierMoyenLigne
taux-marge-article
Taux de marge par article
AR_Ref, AR_Design, TauxMarge
articles-stock — Stock et logistique
Code
Libellé
Colonnes retournées
ruptures-stock
Ruptures de stock (dépôt principal)
AR_Ref, AR_Design, DE_No, AS_QteSto
taux-rupture
Taux de rupture
TauxRupture
stock-disponible-global
Stock disponible global : stock - réservé
StockTotal, StockReserve, StockDisponible
valeur-stock-article
Valeur du stock par article
AR_Ref, AR_Design, ValeurStock
valeur-stock-totale
Valeur totale du stock
ValeurStockTotale
stock-dormant
Stock dormant (stock positif, sans vente depuis le seuil dormant)
AR_Ref, AR_Design, Stock, ValeurStock
couverture-stock
Couverture de stock, en jours
AR_Ref, AR_Design, Stock, ConsoJour, CouvertureJours
stock-mini-atteint
Articles ayant atteint leur stock minimum
AR_Ref, AR_Design, AS_QteSto, AS_QteMini
delai-reappro
Délai moyen de réapprovisionnement
AR_Ref, AR_Design, DelaiMoyenJours
taux-disponibilite
Taux de disponibilité produit
TauxDisponibilite
articles-finance — Analyse financière
Code
Libellé
Colonnes retournées
valorisation-stock-depot
Valorisation du stock, totale et par dépôt
DE_No, DE_Intitule, ValeurStock
cmp
Coût moyen pondéré estimé par article
AR_Ref, AR_Design, CMP
marge-brute-article
Marge brute HT par article
AR_Ref, AR_Design, CA, MargeBrute
cout-stockage
Coût de stockage annuel estimé (20 % de la valeur du stock)
CoutStockageAnnuelEstime
obsolescence-stock
Obsolescence du stock (stock positif, sans mouvement depuis 12 mois)
AR_Ref, AR_Design, Valeur
articles-strategie — Analyse stratégique
Code
Libellé
Colonnes retournées
analyse-abc-articles
Analyse ABC articles (80/15/5 sur le CA de l'exercice)
AR_Ref, AR_Design, CA, ClasseABC
saisonnalite
Saisonnalité (CA par mois sur 24 mois glissants)
Annee, Mois, CA
produits-forte-croissance
Produits à forte croissance (évolution du CA au-delà de 20 %)
AR_Ref, AR_Design, CA_N1, CA_N, Croissance
produits-faible-rotation
Produits à faible rotation (moins de 1 par an)
AR_Ref, AR_Design, Qte, Stock, Rotation
taux-retour-sav
Taux de retour SAV (approximation : part des avoirs sur les factures de vente)
AR_Ref, AR_Design, QteAvoirs, QteFacturees, TauxRetour
Fournisseurs
fournisseurs-activite — Activité
Code
Libellé
Colonnes retournées
nb-fournisseurs-total
Nombre total de fournisseurs
NbFournisseursTotal
nb-fournisseurs-actifs-n
Fournisseurs actifs sur l'exercice
NbFournisseursActifsN
nouveaux-fournisseurs
Nouveaux fournisseurs sur l'exercice
NbNouveauxFournisseurs
fournisseurs-inactifs
Fournisseurs inactifs (sommeil ou sans facture)
CT_Num, CT_Intitule, CT_Sommeil
fournisseurs-strategiques
Fournisseurs stratégiques (au moins 5 % des achats N)
CT_Num, CT_Intitule, Achats, PartAchats
fournisseurs-achats — Achats et finance
Code
Libellé
Colonnes retournées
total-achats
Total des achats fournisseurs (cumul, factures - avoirs)
AchatsTotaux
achats-n
Achats de l'exercice N
Achats_N
achats-n1
Achats de l'exercice N-1
Achats_N1
evolution-achats
Évolution des achats en %
Achats_N, Achats_N1, EvolutionPct
montant-moyen-fournisseur
Montant moyen par fournisseur
MontantMoyenParFournisseur
top-fournisseurs
Top 10 fournisseurs
CT_Num, CT_Intitule, Achats
part-achats
Part des achats par fournisseur
CT_Num, CT_Intitule, Achats, PartAchats
dependance-fournisseur
Dépendance fournisseur (au-delà de 30 %)
CT_Num, CT_Intitule, Achats, PartAchats
encours-fournisseur
Encours fournisseur (factures d'achat non réglées)
CT_Num, CT_Intitule, Encours
fournisseurs-paiements — Paiements
Code
Libellé
Colonnes retournées
nb-fournisseurs-retard
Nombre de fournisseurs en retard de règlement
NbFournisseursEnRetard
montant-retards-fournisseur
Montant des retards fournisseur
MontantRetardsFournisseur
dpo
Délai moyen de paiement fournisseur (DPO)
DPO_Jours
litiges
Litiges fournisseurs (approximation : écart commande / livraison)
DO_Piece, cbDO_Tiers, QteCommandee, QteLivree, Ecart
avoirs-attente
Avoirs fournisseur en attente d'imputation
CT_Num, CT_Intitule, DO_Piece, DO_Date, DO_TotalHTNet
fournisseurs-qualite — Qualité et logistique
Code
Libellé
Colonnes retournées
retards-livraison
Retards de livraison (livraison après la date prévue)
CT_Num, CT_Intitule, DO_Piece, DO_Date, DO_DateLivr, RetardJours
taux-livraison-heure
Taux de livraison à l'heure
TauxLivraisonHeure
taux-conformite
Taux de conformité (approximation : 1 - avoirs / livraisons)
TauxConformiteProxy
non-conformites
Non-conformités (approximation : nombre d'avoirs fournisseur)
CT_Num, CT_Intitule, NbAvoirsRecus, MontantAvoirs
taux-retour-fournisseur
Taux de retour fournisseur (reprises d'achat)
CT_Num, CT_Intitule, MontantRetours, MontantFactures, TauxRetour
ruptures-fournisseur
Ruptures causées par un fournisseur (approximation)
AR_Ref, AR_Design, CT_Num, CT_Intitule, DO_DateLivr, RetardJours
delai-appro-fournisseur
Délai moyen d'approvisionnement par fournisseur
CT_Num, CT_Intitule, DelaiMoyenJours
fournisseurs-risque — Risque
Code
Libellé
Colonnes retournées
score-fournisseur
Score fournisseur composite (délai + retards)
CT_Num, CT_Intitule, NbLivraisons, NbRetards, Achats, ScoreSimple
fournisseurs-uniques
Fournisseurs uniques (articles à fournisseur unique)
AR_Ref, AR_Design, FournisseurUnique
risque-geographique
Risque géographique (concentration par pays fournisseur)
Pays, NbFournisseurs, Achats
risque-financier-fournisseur
Risque financier fournisseur (approximation : encours + retards)
CT_Num, CT_Intitule, Encours, NbRetards
Transverses et direction
transverses — Évolution et alertes
Code
Libellé
Colonnes retournées
exercice-n-vs-n1
Exercice N face à N-1 (CA, achats)
CA_N, CA_N1, Achats_N, Achats_N1, EvolCA, EvolAchats
mtd-ytd
Cumul du mois et cumul de l'année
CA_MTD, CA_YTD
alertes-impayes
Alertes impayés
TypeAlerte, CT_Num, CT_Intitule, DR_Date, DR_Montant
alertes-rupture
Alertes rupture
TypeAlerte, AR_Ref, AR_Design, DE_No, AS_QteSto
alertes-baisse-ca
Alertes baisse de CA (CA N sous 50 % du CA N-1)
TypeAlerte, CT_Num, CT_Intitule, CA_N, CA_N1
alerte-fournisseur-critique
Alerte fournisseur critique (dépendance + retards)
TypeAlerte, CT_Num, CT_Intitule, Achats, Part
alertes-stock-mini
Alertes stock minimum atteint
TypeAlerte, AR_Ref, AR_Design, AS_QteSto, AS_QteMini
dashboard-direction — Tableau de bord de direction
Code
Libellé
Colonnes retournées
Particularité
snapshot-direction
Instantané direction (CA, marge, encours, retards)
CA_YTD, Marge_YTD, EncoursClient, Retards
filtre utilisateur appliqué au CA de l'année seulement
pareto-80-20
Pareto 80/20 (clients faisant 80 % du CA)
CT_Num, CT_Intitule, CA
—
heatmap-activite
Activité par jour de semaine et par semaine
JourSemaine, Semaine, CA
—
score-sante
Score de santé de l'entreprise (composite)
ScoreSante
non filtré par utilisateur
indicateur-couleur-dso
Indicateur couleur (vert / orange / rouge) sur le DSO
J, Couleur
non filtré par utilisateur
premium-ia-bi — Jeux de données pour l'IA et la BI
Ces indicateurs préparent des jeux de variables destinés à un moteur d'analyse externe. Ils ne
portent pas de seuil métier final.
Code
Libellé
Colonnes retournées
features-churn-client
Variables de prévision du churn client (RFM, ancienneté, panier)
CT_Num, AncienneteMois, DerniereCommande, JoursDepuisDerniereCmd, NbCommandes, CA_Cumul, PanierMoyen, EcartTypePanier
features-rupture-stock
Variables de prévision de rupture de stock
AR_Ref, AR_Design, StockActuel, DelaiMoyenReapproJ, ConsoAnnuelle
anomalies-prix
Détection d'anomalies de prix (écart type au-delà de 3)
AR_Ref, AR_Design, DO_Piece, DL_PrixUnitaire, Moy, Sigma, ZScore
score-risque-client-ia
Variables de score de risque client
CT_Num, Plafond, SousSurveillance, EncoursReel, NbRetards, PireRetardJ, CA_N, CA_N1
detection-baisse-activite
Détection de baisse d'activité (fréquence en chute de plus de 50 %)
CT_Num, CT_Intitule, Freq_N, Freq_N1, Variation
Exemples
curl Python
HOTE = "https://<votre-connecteur>"
# Catalogue des familles et des codes
curl -s " $HOTE /v2/kpi" -H "Authorization: Bearer $JETON "
# Toute une famille, sur un dossier
curl -s " $HOTE /v2/kpi/clients-ca?targets=DEMO" -H "Authorization: Bearer $JETON "
# Un indicateur, limité à 10 lignes
curl -s " $HOTE /v2/kpi/clients-ca/top10-clients?targets=DEMO&limit=10" \
-H "Authorization: Bearer $JETON "
def indicateur ( client , famille , code = None , dossiers = None , limite = None ):
"""Renvoie { "<dossier>": [...lignes] } — ou { "<dossier>": { "<code>": [...] } }
quand le code est omis."""
chemin = f "/v2/kpi/ { famille } " + ( f "/ { code } " if code else "" )
params = {}
if dossiers :
params [ "targets" ] = "," . join ( dossiers )
if limite :
params [ "limit" ] = limite
return client . appeler ( "GET" , chemin , params = params )
# Instantané de direction sur le dossier de démonstration
par_dossier = indicateur ( client , "dashboard-direction" , "snapshot-direction" , [ "DEMO" ])
lignes = par_dossier . get ( "DEMO" , [])
ca_annee = lignes [ 0 ][ "CA_YTD" ] if lignes else 0
client est celui de la page Démarrer avec l'API v2 : il déballe déjà l'enveloppe.
Précautions
Performance
GET /v2/kpi/{type} exécute toutes les requêtes de la famille, sur chaque dossier
autorisé. Pour un affichage réactif, préférez des appels ciblés GET /v2/kpi/{type}/{code} et
utilisez limit. Les indicateurs de type liste (top, ABC, encours par tiers) peuvent renvoyer
beaucoup de lignes.
Indicateurs approchés : certains indicateurs fournisseurs et articles (qualité, conformité,
retours, litiges, retour SAV) n'existent pas nativement dans Sage 100c. Ce sont des
approximations construites à partir des dates de livraison, des écarts commande / livraison et
des avoirs. Les libellés le signalent.
Seuils des scores composites (santé, couleur du DSO, score fournisseur) : les bornes sont des
valeurs de départ, à calibrer selon le métier.
score-sante et indicateur-couleur-dso sont des indicateurs de direction globaux : ils ne
sont pas filtrés par utilisateur.
Voir aussi