Créer ou modifier une entité
POST ou PUT ?
- POST
/api/Entity/{Entité}: création (voir l'exception Acomba plus bas). Réponse201 Createdavec l'entité complète (leNoUniqueSystemeSourceest attribué par l'ERP). - PUT
/api/Entity/{Entité}/{id}: selon le standard REST, crée OU remplace la ressource à cette adresse. Dans Conexio, le PUT fait une mise à jour partielle : seuls les champs fournis sont modifiés. Réponse200 OK.
Acomba : forcer la création ou la mise à jour
Sur Acomba seulement, et seulement pour Customer, Product, Supplier et SupplierProduct, le POST fait une création ou une mise à jour (upsert) selon que la fiche existe déjà. Deux en-têtes HTTP permettent de forcer le comportement :
If-None-Match: *→ création uniquement (erreur si la fiche existe déjà) ;If-Match: *→ mise à jour uniquement (erreur si la fiche n'existe pas).
Les deux en même temps renvoient une erreur. Les autres entités et les autres systèmes ne prennent pas ces en-têtes en charge : ne les ajoutez pas.
Champs requis par entité
Les champs requis varient selon l'entité et selon le système. Ne vous fiez pas à une liste générale : chaque page d'entité (section POST, tableau Champs requis par ERP) donne les champs requis pour chaque système, tirés de la matrice de support. Par exemple : Customer, CustomerInvoice, GLJournalEntry.
Une règle vaut pour tous les systèmes : une écriture de journal (GLJournalEntry) doit être balancée (total des débits = total des crédits), sinon elle est refusée.
Exemple : créer un client
POST https://gateway.conexio.dev/api/Entity/Customer
Authorization: Basic {base64(CodeLicence:CléAPI)}
COMPANY_CODE: DEFAULT
Content-Type: application/json
{ "NoClient": "C999", "NomClient": "XYZ Corp" }
À vérifier avant de créer
Toutes les entités ne sont pas créables sur tous les systèmes (ex. GLAccount est en lecture seule sauf sur Acomba GO). Vérifiez la colonne de votre système dans la matrice de support, puis, pour un champ précis, la page Capacités par système de votre ERP (par exemple Acomba).