Aller au contenu
📢 Kafinea est une solution compatible pour la facturation électronique ! En savoir plus ➔
kafinea logo svg

Kafinea

  • Fonctionnalités
        • Finances
          • Achats
          • Audits & KPI
          • Comptabilité
          • Facturation
        • Gestion
          • Documents
          • Gestion de projet
          • Gestion des stocks
          • Maintenance
        • RH
          • Employés
          • Feuilles de temps
          • Gestion des absences
          • Recrutement
        • Service client
          • Contrats de service
          • Interventions
          • Suivi de garanties
          • Tickets
        • Ventes
          • Abonnements
          • Automatisation des ventes
          • CRM
          • Points de vente
        • Fonctionnalités transversales
          • API
          • Extranet
          • Signature électronique
          • Workflows
  • Cas d’usage
  • Tarifs
  • Se connecter
  • Découvrir la démo
📢 Kafinea est compatible facturation électronique ! ➔
kafinea logo svg
Kafinea

Marketing

6
  • Les prospects
  • Les affaires
  • L’envoi d’emails et de SMS
  • Campagnes
    • Les campagnes marketing
    • Le paramétrage de campagnes email et SMS
    • Le calcul de marge prévisionnelle d’une campagne

Ventes

19
  • Les comptes client
  • Les contacts
  • Les devis client
  • Les marges dans les devis
  • Les bons de commande client
  • Les avoirs client
  • Recherche d’Entreprises (Sirene)
  • Facturation
    • La facturation classique
    • Les factures d’acompte
    • La facturation d’avancement
    • La facturation de consommations d’articles
    • Émettre une facture électronique
    • La facturation récurrente
    • La facture proforma
  • Paiements
    • Les paiements client
    • L’association d’un paiement à une ou plusieurs factures
  • Grille tarifaire
    • Les stratégies de tarification
    • Guide administrateur grille tarifaire
    • L’utilisation d’une grille tarifaire

Achats

6
  • Les fournisseurs
  • Les bons de commande fournisseur
  • Les factures fournisseur
  • Recevoir une facture électronique
  • Les avoirs fournisseur
  • Les paiements fournisseur

Catalogue

9
  • Les produits
  • Les services
  • Les familles d’articles
  • Les unités de mesure
  • La gestion du sourcing
  • Les produits génériques
  • Les kits de produits
  • L’assistant de commandes fournisseurs
  • L’analyse des marges du catalogue

Finances

23
  • Les comptes bancaires
  • Les comptes bancaires tiers
  • Les transactions bancaires
  • Les mandats SEPA
  • Les prélèvements bancaires
  • Les saisies manuelles
  • La facturation électronique
  • Comptabilité
    • Paramétrer les comptes auxiliaires
    • Basculer vers les comptes auxiliaires
    • Les comptes auxiliaires
    • La comptabilité
    • Les écritures comptables
    • Les stratégies comptables
    • Les états financiers
    • Les rapprochements bancaires
    • Les relevés bancaires
    • Les outils pour vérifier sa comptabilité
    • Les écarts d’arrondi de TVA entre logiciels
    • Le paramétrage de la déclaration de TVA
    • La déclaration de TVA
    • L’export de comptabilité au format FEC
  • Exercices comptables
    • Les exercices comptables
    • La comptabilité de trésorerie

Ressources Humaines

16
  • Les personnes
  • Les services
  • Les activités
  • Les affectations de service
  • Les feuilles de temps
  • Les demandes de congés
  • Les natures des absences
  • Les notes de frais
  • Les formations
  • Les lieux de travail
  • Les matrices de polyvalence
  • Les modèles de contrats de travail
  • Les bulletins de paie
  • Extranet collaborateur
    • Le portail collaborateur
    • La carte espace collaborateur
    • La gestion des congés

Gestion de projet

7
  • Les projets
  • Les tâches de projet
  • Les jalons de projet
  • Les participations aux projets
  • Cockpit chef de projet
  • L’espace intervenant : voir et accepter mes interventions
  • Sécuriser les interventions par liste de personnes

Support client

7
  • Les tickets
  • Les contrats de service
  • Les équipements client
  • Les instances client
  • Le suivi de garanties
  • Les FAQ
  • Le portail client

Maintenance

4
  • Les établissements
  • Les sites de maintenance
  • Les équipements
  • Les opérations de maintenance

Gestion des stocks

9
  • Les sites de stockage
  • Les emplacements de stockage
  • Les mouvements de stock
  • Les demandes de transfert de stock
  • Les bons de livraison
  • Générer automatiquement un bon de livraison depuis une facture
  • Les bons de réception
  • Les modes de livraison
  • Valorisation des Stocks

Points de vente

5
  • Les points de vente physiques
  • Les mouvements de caisse
  • Les boutiques e-commerce
  • Caisse enregistreuse
    • Les caisses enregistreuses
    • Le paramétrage de votre caisse enregistreuse

Gestion documentaire

7
  • La gestion électronique des documents
  • La signature électronique
  • L’envoi de documents par email
  • Modèles
    • Personnalisation avancée des modèles de documents
    • Les modèles de documents
    • Les modèles d’emails
    • Les shortcodes

Automatisation

3
  • Les formulaires
  • Les flux de travail (workflows)
  • Le planificateur

Intelligence artificielle

5
  • L’assistant de texte IA
  • Le chat IA
  • Les workflows IA
  • Connecter une IA externe (MCP)
  • L’OCR de factures assisté par IA

Intégrations

14
  • API
    • API REST – Produits génériques et spécifiques
    • API REST – Kits de produits
    • API REST – Rafraîchir une commande de boutique en ligne
    • API REST – Champs d’un module
    • API REST – Suppression en masse (corbeille)
    • API REST – Import en masse (upsert)
    • API REST – Introduction
    • API REST – Authentification
    • API REST – Opérations CRUD
    • API REST – Relations entre entités
    • API REST – Requêtes et interrogation
    • API REST – Gestion des fichiers
    • API REST – Listes déroulantes (Picklist)
    • API REST – Récupérer le PDF d’un document

Interface Kafinea

11
  • La navigation
  • Les listes
  • Les enregistrements
  • L’enregistrement automatique
  • Les étiquettes (tags)
  • Les rapports
  • Les tableaux de bord
  • Le gestionnaire d’agencement
  • L’import / export de données
  • Les lignes de documents
  • Liens entre éléments

Paramétrage

21
  • Le paramétrage SMTP
  • Le journal d’événements
  • Les langues et traductions
  • Les utilisateurs
  • Les droits d’accès
  • Les formats de numérotation
  • La recherche globale
  • Les préférences utilisateur
  • Le verrouillage permanent
  • Le filtrage des popups catalogue
  • La configuration des taxes
  • Les agents IA
  • Le serveur MCP
  • Les conditions de paiement
  • Les compteurs de numérotation
  • Les sociétés
  • Les espaces Kafinea
    • Les espaces Kafinea
    • Nommer un espace
    • Les espaces d’essai (sandbox)
  • Mappage de données
    • Le mappage de conversion de prospect
    • Le mappage d’affaire en projet

Guides métier

2
  • Permettre aux collaborateurs de compléter leur dossier RH en autonomie
  • Mobiliser des milliers d’intervenants terrain à grande échelle
  • Kafinea
  • Documentation
  • Intégrations
  • API
  • API REST – Import en masse (upsert)
View Categories

API REST – Import en masse (upsert)

7 minutes

Cette page décrit l’opération à utiliser pour charger ou mettre à jour beaucoup d’enregistrements
d’un coup
, en les désignant par une clef métier (un code article, une référence client, une
référence boutique) plutôt que par leur identifiant Kafinea.

Opération Méthode Description
mass_upsert POST Écrire un lot d’enregistrements identifiés par une clef métier

Elle est générique : elle fonctionne pour tous les modules, avec la clef que vous choisissez.

Réservée aux administrateurs. Charger un lot d’enregistrements est un travail de reprise de
données. Un compte non administrateur garde create et update, un enregistrement à la fois, avec
ses propres droits.


Pourquoi pas create ou update ? #

Les opérations create et update restent la bonne réponse quand vous
écrivez un enregistrement à la fois. Pour une reprise de données, elles butent sur deux points :

  • le volume : un enregistrement par appel, soit 16 000 appels pour 16 000 clients ;
  • la reprise après interruption : create crée toujours. Un import coupé au milieu ne peut pas
    être relancé sans nettoyer d’abord ce qui est déjà passé, et update demande de connaître
    l’identifiant Kafinea, que vous n’avez justement pas encore.

mass_upsert retrouve l’enregistrement par sa clef métier : il met à jour ce qui existe, crée ce qui
manque, et n’écrit rien quand les valeurs envoyées sont déjà celles en place. Vous pouvez donc
relancer le même lot autant de fois que nécessaire.


Upsert – Écrire un lot d’enregistrements #

POST https://apps.kafinea.com/{instance}/webservice.php

Paramètre Type Requis Description
operation string oui Doit être mass_upsert
sessionName string oui Identifiant de session
elementType string oui Nom du module (ex : Products, Accounts)
keyFields JSON oui Noms techniques des champs formant la clef métier
elements JSON oui Tableau des enregistrements (500 au maximum par appel)

Chaque élément de elements est un objet champ : valeur, clef comprise. Les noms techniques des
champs se lisent avec describe.

Exemple curl : mettre à jour le poids et le pays d’origine d’articles reconnus par leur code.

curl -X POST https://apps.kafinea.com/YourKafinea/webservice.php \
  -d "operation=mass_upsert" \
  -d "sessionName=YOUR_SESSION_ID" \
  -d "elementType=Products" \
  -d 'keyFields=["productcode"]' \
  -d 'elements=[
        {"productcode":"9782070413110","productname":"Le Petit Prince","mdsweight":"0.180","mdsorigincountry":"FRA"},
        {"productcode":"9782070368228","productname":"La Peste","mdsweight":"0.150","mdsorigincountry":"FRA"}
      ]'

Réponse #

{
  "success": true,
  "result": {
    "module": "Products",
    "keyFields": ["productcode"],
    "processed": 2,
    "created": 1,
    "updated": 1,
    "unchanged": 0,
    "records": [
      { "index": 0, "id": "14x8842", "outcome": "updated" },
      { "index": 1, "id": "14x9317", "outcome": "created" }
    ],
    "errors": []
  }
}
Champ Signification
processed Nombre d’enregistrements traités sans erreur
created La clef était inconnue : l’enregistrement vient d’être créé
updated La clef existait et au moins une valeur envoyée était différente
unchanged La clef existait et tout était déjà à jour : rien n’a été écrit
records Le détail ligne par ligne, avec la position dans le lot et l’identifiant obtenu
errors Les lignes refusées, avec leur position dans le lot et le motif

Choisir la clef métier #

La clef est celle que vous nommez dans keyFields, et elle peut compter plusieurs champs. Elle doit
désigner un seul enregistrement : si la clef envoyée en retrouve plusieurs, la ligne est refusée
avec ce motif plutôt que d’en choisir un au hasard. Corrigez la donnée en double, puis renvoyez la
ligne.

Quelques clefs usuelles :

Ce que vous importez Clef métier
Des articles ["productcode"]
Des correspondances d’identifiants externes ["sourcesystem","objecttype","externalref"]

Les valeurs de clef sont comparées après suppression des espaces de début et de fin. Une valeur de
clef vide fait refuser la ligne : une clef métier ne se devine pas.


Rejouable : relancez sans crainte #

L’opération est idempotente. Le même lot envoyé deux fois donne unchanged au second passage :
ni doublon, ni date de modification inutilement remuée, ni ligne d’historique parasite sur les fiches.

De même, une ligne fautive n’annule pas les autres : les lignes valides du lot sont écrites, les
lignes refusées reviennent dans errors avec leur position, à corriger puis à renvoyer seules.

En revanche, si le paramètre elements lui-même n’est pas lisible (JSON invalide, plus de 500
éléments), l’appel entier est refusé : écrire la moitié d’un lot incompréhensible serait pire que de
n’en écrire aucune partie.

Enfin, l’opération n’ouvre aucune porte dérobée : elle applique les mêmes droits et les mêmes
contrôles de champs obligatoires que create et update. Ce que ces opérations refusent, celle-ci le
refuse aussi.


Cas d’usage : déclarer les identifiants d’un système extérieur #

Le besoin le plus fréquent est de dire à Kafinea quel enregistrement correspond à quel objet d’un
système extérieur
: un client de votre boutique en ligne, un article de votre place de marché, une
fiche issue de votre ancien logiciel.

C’est la table de correspondance que Kafinea consulte avant toute tentative de rapprochement par
nom ou par e-mail. Une correspondance déclarée est une certitude, pas une supposition : elle
supprime les doublons de fiches clients à la source. Une correspondance porte trois informations :

Champ Rôle
sourcesystem D’où vient l’identifiant. Pour une boutique en ligne : onlinestore: suivi de l’identifiant de la fiche boutique
objecttype Le module Kafinea concerné (Accounts, Products, SalesOrder…)
externalref La valeur que le système extérieur donne à cet objet
recordid L’enregistrement Kafinea visé, sous la forme d’un identifiant Webservice (10x54325)

L’unicité est garantie par système source, et c’est le point important. Un même client peut
porter un identifiant différent sur chacune de vos boutiques, et deux boutiques peuvent utiliser le
même numéro pour deux clients différents : la correspondance sait l’exprimer, un simple champ « réf.
externe » sur la fiche client ne le saurait pas.

curl -X POST https://apps.kafinea.com/YourKafinea/webservice.php \
  -d "operation=mass_upsert" \
  -d "sessionName=YOUR_SESSION_ID" \
  -d "elementType=MdsExternalRef" \
  -d 'keyFields=["sourcesystem","objecttype","externalref"]' \
  -d 'elements=[
        {"sourcesystem":"onlinestore:44053","objecttype":"Accounts","externalref":"39146","recordid":"10x54325"},
        {"sourcesystem":"onlinestore:44053","objecttype":"Products","externalref":"3760174130121","recordid":"13x8842"}
      ]'

recordid désigne un enregistrement : il s’écrit et se relit comme tout lien vers un enregistrement
dans l’API, avec l’identifiant Webservice complet que renvoient query ou retrieve. Un
identifiant brut (54325) est refusé. L’enregistrement visé est ainsi un lien cliquable dans
Kafinea, et la fiche client affiche la liste de ses identifiants externes.

Les correspondances déclarées se relisent comme n’importe quel autre module, avec
query.

Reprendre une base clients existante #

Le scénario typique est la mise en service d’une boutique en ligne dont les clients existent déjà
dans Kafinea. Sans correspondances, la synchronisation ne peut que deviner, et crée des doublons.

  1. Réglez, sur la fiche de la boutique, la reconnaissance du client sur « Réf. client boutique »
    (voir le paramétrage de la boutique en ligne).
  2. Déclarez les correspondances par lots de 500, avec cette opération.
  3. Lancez la synchronisation : chaque commande retrouve son client par identité.

Un client absent de la table n’est pas créé en silence si vous avez décoché « Créer les clients
depuis la boutique » : la commande est rattachée au client de repli de la boutique et l’anomalie est
nommée dans le journal de synchronisation. Vous complétez la correspondance, puis vous rafraîchissez
la commande depuis la boutique.


Références associées 🔗 #

  • Opérations CRUD
  • Champs d’un module
  • Suppression en masse (corbeille)
  • Requêtes et interrogation
  • Introduction API
Index
  • Pourquoi pas create ou update ?
  • Upsert – Écrire un lot d'enregistrements
    • Réponse
  • Choisir la clef métier
  • Rejouable : relancez sans crainte
  • Cas d'usage : déclarer les identifiants d'un système extérieur
    • Reprendre une base clients existante
  • Références associées 🔗

Un logiciel tout-en-un conçu pour les PME. Profitez des capacités d’automatisation et de la flexibilité de notre plateforme de gestion d’entreprise pour faciliter le travail de tous vos collaborateurs.

RESSOURCES

Blog
Charte graphique
Distributeurs
Documentation
Sécurité

Portail clients
À PROPOS

CGU
Foire Aux Questions
Mentions légales
Nous contacter
Politique de confidentialité
Politique de cookies
Qui sommes-nous ?

FINANCES

Achats
Audits & KPI
Comptabilité
Facturation

GESTION

Documents
Gestion de projet
Gestion des stocks
Maintenance

RH

Employés
Feuilles de temps
Gestion des absences
Recrutement

SERVICE CLIENT

Contrats de service
Interventions
Suivi de garanties
Tickets

VENTES

Abonnements
Automatisation des ventes
CRM
Points de vente

© 2026 Madiasoft - Kafinea

24 rue Louis Blanc, 75010 PARIS

01 70 06 05 41

Facebook Linkedin
kafinea logo svg
Gérer le consentement aux cookies
Pour offrir les meilleures expériences, nous utilisons des cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces cookies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel Toujours activé
Le stockage ou l’accès technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’internaute, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
Le stockage ou l’accès technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou la personne utilisant le service.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques. Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
Le stockage ou l’accès technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’internaute sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.
  • Gérer les options
  • Gérer les services
  • Gérer {vendor_count} fournisseurs
  • En savoir plus sur ces finalités
Voir les préférences
  • {title}
  • {title}
  • {title}
  • Fonctionnalités
    • Finances
      • Achats
      • Audits & KPI
      • Comptabilité
      • Facturation
    • Gestion
      • Documents
      • Interventions
      • Gestion de projet
      • Gestion des stocks
    • RH
      • Employés
      • Feuilles de temps
      • Gestion des absences
      • Recrutement
    • Service client
      • Contrats de service
      • Suivi de garanties
      • Maintenance
      • Tickets
    • Ventes
      • Abonnements
      • Automatisation des ventes
      • CRM
      • Points de vente
    • Fonctionnalités transversales
      • API
      • Extranet
      • Signature électronique
      • Workflows
  • Cas d’usage
  • Tarifs
  • Se connecter
  • Découvrir la démo