API REST – Opérations CRUD #
ListTypes — Lister les modules disponibles #
Cette opération retourne tous les modules accessibles via l’API.
GET
https://apps.kafinea.com/{instance}/webservice.php
| Paramètre | Type | Requis | Description |
|---|---|---|---|
operation |
string | oui | Doit être listtypes |
sessionName |
string | oui | Identifiant de session |
Exemple curl :
curl "https://apps.kafinea.com/YourKafinea/webservice.php?operation=listtypes&sessionName=YOUR_SESSION_ID"
Describe — Décrire un module #
Cette opération permet de connaître les champs d’un module (type, caractère obligatoire) et les actions disponibles.
GET
https://apps.kafinea.com/{instance}/webservice.php
| Paramètre | Type | Requis | Description |
|---|---|---|---|
operation |
string | oui | Doit être describe |
sessionName |
string | oui | Identifiant de session |
elementType |
string | oui | Nom du module (ex : Contacts) |
Exemple curl :
curl "https://apps.kafinea.com/YourKafinea/webservice.php?operation=describe&sessionName=YOUR_SESSION_ID&elementType=Contacts"
Retrieve — Récupérer une entité #
Récupère une entité spécifique par son ID Webservice (ex : 21x3456).
GET
https://apps.kafinea.com/{instance}/webservice.php
| Paramètre | Type | Requis | Description |
|---|---|---|---|
operation |
string | oui | Doit être retrieve |
sessionName |
string | oui | Identifiant de session |
id |
string | oui | ID Webservice de l’entité (ex : 21x3456) |
Exemple curl :
curl "https://apps.kafinea.com/YourKafinea/webservice.php?operation=retrieve&sessionName=YOUR_SESSION_ID&id=21x3456"
Create — Créer une entité #
Crée une nouvelle entité dans un module. Tous les champs obligatoires doivent être inclus. Les valeurs de champs liées à d’autres modules doivent utiliser le format Webservice IDs (ex : 21x3456).
POST
https://apps.kafinea.com/{instance}/webservice.php
| Paramètre | Type | Requis | Description |
|---|---|---|---|
operation |
string | oui | Doit être create |
sessionName |
string | oui | Identifiant de session |
element |
JSON | oui | Objet JSON de l’entité (fieldname: fieldvalue) |
elementType |
string | oui | Nom du module (ex : Contacts) |
Exemple curl :
curl -X POST https://apps.kafinea.com/YourKafinea/webservice.php \
-d "operation=create" \
-d "sessionName=YOUR_SESSION_ID" \
-d 'element={"lastname":"Dupont","email":"dupont@example.com","assigned_user_id":"19x1"}' \
-d "elementType=Contacts"
Attention ! Pour les modules de type inventaire (factures, devis, commandes, etc.), il est obligatoire d’inclure les champs suivants dans l’objet
element:
productid— ID Webservice du produithdnTaxType—IndividualouGroupLineItems— Tableau des produits ou services
Update — Mettre à jour une entité #
Met à jour une entité existante. Tous les champs doivent être inclus (pas seulement ceux modifiés). L’objet element doit contenir l’ID Webservice de l’entité (ex : "id": "21x3456").
POST
https://apps.kafinea.com/{instance}/webservice.php
| Paramètre | Type | Requis | Description |
|---|---|---|---|
operation |
string | oui | Doit être update |
sessionName |
string | oui | Identifiant de session |
element |
JSON | oui | Objet JSON complet de l’entité (avec id) |
elementType |
string | oui | Nom du module |
Exemple curl :
curl -X POST https://apps.kafinea.com/YourKafinea/webservice.php \
-d "operation=update" \
-d "sessionName=YOUR_SESSION_ID" \
-d 'element={"id":"21x3456","lastname":"Dupont","email":"nouveau@example.com","assigned_user_id":"19x1"}' \
-d "elementType=Contacts"
Mise à jour partielle (Partial Edit) sur les entités verrouillées #
Si vous devez modifier certains champs sur des entités verrouillées (Permanent Lock, comme une facture validée), vous pouvez utiliser l’édition partielle sans déverrouiller l’enregistrement.
POST
https://apps.kafinea.com/{instance}/webservice.php
| Paramètre | Type | Requis | Description |
|---|---|---|---|
operation |
string | oui | Doit être update |
sessionName |
string | oui | Identifiant de session |
partial_edit |
int | oui | Doit être 1 — au même niveau que operation, pas dans element |
element |
JSON | oui | Objet JSON avec id et tous les champs obligatoires |
elementType |
string | oui | Nom du module |
Fonctionnement et restrictions :
- Champs autorisés : statuts, utilisateur assigné, références de commande et tous les champs personnalisés (custom fields).
- Lignes de produits bloquées : toute modification des articles, prix ou quantités (Line Items) est ignorée en mode édition partielle.
- Gestion des erreurs : sans le flag
partial_edit=1, l’API retourneACCESSDENIED. Si le module ne supporte pas ce mode :ACCESSDENIED – Partial edit is not supported for module X.
Attention ! Même en mode
partial_edit, l’objetelementdoit contenir tous les champs obligatoires du module, exactement comme pour une mise à jour classique.
Exemple curl :
curl -X POST https://apps.kafinea.com/YourKafinea/webservice.php \
-d "operation=update" \
-d "sessionName=YOUR_SESSION_ID" \
-d "partial_edit=1" \
-d 'element={"id":"7x1234","invoicestatus":"Paid","assigned_user_id":"19x1"}' \
-d "elementType=Invoice"
Delete — Supprimer une entité #
Supprime une entité spécifique par son ID Webservice (ex : 21x3456).
POST
https://apps.kafinea.com/{instance}/webservice.php
| Paramètre | Type | Requis | Description |
|---|---|---|---|
operation |
string | oui | Doit être delete |
sessionName |
string | oui | Identifiant de session |
id |
string | oui | ID Webservice de l’entité (ex : 21x3456) |
Exemple curl :
curl -X POST https://apps.kafinea.com/YourKafinea/webservice.php \
-d "operation=delete" \
-d "sessionName=YOUR_SESSION_ID" \
-d "id=21x3456"