ExoConnect pour Acomba
Latest
  • Latest
  • 2.2.0
  • 2.3.2
  • 2.4.0
AccueilGuidesRéférence de l'APIRecettes
AccueilGuidesRéférence de l'APIRecettes
Contactez-nous
Latest
  • Latest
  • 2.2.0
  • 2.3.2
  • 2.4.0
Latest
  • Latest
  • 2.2.0
  • 2.3.2
  • 2.4.0
  1. Recettes
  • États de compte automatisés
  • Relances de recouvrement
  • Bons de commande, réceptions et rapprochement
  • Commande en ligne, facture et paiement
  • Lot de paiements fournisseurs
  • Synchronisation CRM
  • Import de feuilles de temps
  • Rapport de trésorerie
  • Vérification des DAS
  • Power BI et Excel
  • Rapport mensuel CCQ
  • Embaucher un travailleur de la construction
  • Le vrai coût horaire dans vos soumissions
  • Coût de la main-d’œuvre par chantier
  • Vérifier une paie avant de la fermer
  • Une prime à la prochaine paie
  • Vacances et banques d’heures en libre-service
  • Masse salariale à venir et rétention du personnel
  • De la soumission à la commande
  • Retours et notes de crédit
  1. Recettes

De la soumission à la commande

Le client a dit oui. La soumission envoyée il y a deux semaines doit maintenant devenir une commande : mêmes lignes, même vendeur, même territoire, les mêmes clauses (« pas d’électricité sur le chantier, joints non garantis »), et un transporteur pour la livraison. Ressaisir la commande, c'est risquer d'oublier une clause ou de changer un prix promis. Et quand la soumission vient d'un outil d'estimation ou d'un formulaire web, la retaper dans Acomba n'a aucun sens.
Dans cette recette, nous allons préparer une soumission complète à partir de votre application, avec ses clauses tirées d'un format d'Acomba, puis la convertir en commande quand le client l'accepte, sans rien ressaisir.
Ce que vous allez apprendre
choisir une numérotation de soumissions qui n'empiète pas sur celle des factures ;
créer une soumission avec son vendeur, son territoire, sa date de validité et les clauses d'un format ;
convertir la soumission acceptée en commande, et ce qu'Acomba fait de la soumission ;
compléter la commande avec le transporteur et vérifier le reste à livrer.
Avant de commencer
une clé API en écriture ;
le module Facturation actif ;
le client, le vendeur et le territoire déjà inscrits dans Acomba (GET /api/invoicing/salesrep, GET /api/invoicing/territory) ;
le format qui contient vos clauses (GET /api/invoicing/templates) et le transporteur (GET /api/invoicing/shipping) ;
un dossier de test pour le premier essai : cette recette écrit dans Acomba.

De la soumission à la commande dans Acomba#

Avant d'écrire, voyons le chemin du document. Une soumission d'Acomba porte déjà tout ce que la commande reprendra : client, vendeur, territoire, lignes et taxes. À la conversion, Acomba crée la commande en gardant le numéro de la soumission, puis retire la soumission : elle n'existe plus dans Acomba. La commande suit ensuite le reste à livrer jusqu'à la facture.

Étape 1 : choisir le numéro de la soumission#

Commençons par le numéro. Dans Acomba, soumissions, commandes et factures d'un même profil de recevable partagent un seul compteur : la numérotation le montre, avec le même dernier numéro pour chaque type.
cURL
Réponse 200 (extrait)
Une soumission créée par l'API porte le code que vous lui donnez (code est obligatoire), et ce code ne touche pas au compteur ; les factures, elles, sont numérotées par Acomba à partir de ce compteur commun. Donnez à vos soumissions votre propre préfixe (ici SOUM-1045) : leur numéro ne se confond jamais avec celui d'une facture, et vos factures restent consécutives.

Étape 2 : reprendre les clauses d'un format#

Le numéro est choisi ; passons au contenu. Vos clauses habituelles vivent souvent dans un format d'Acomba. Ses lignes de texte (une description, sans produit ni quantité) se lisent comme les lignes d'un document.
cURL
Réponse 200 (extrait)
Gardez les lignes sans sku : ce sont les clauses à ajouter à la soumission.

Étape 3 : créer la soumission#

Nous avons le numéro et les clauses ; créons la soumission. Le vendeur et le territoire se donnent par leur code ; valid_until est la date limite de la soumission.
cURL
Réponse 200
Relisez-la pour obtenir les taxes calculées par Acomba :
cURL
Réponse 200 (extrait)
Les taxes viennent du groupe de taxes du client : ici TPS 182,44 .

Étape 4 : le client accepte, convertir en commande#

La soumission est partie chez le client ; il l'accepte. Une seule requête la convertit en commande.
cURL
Réponse 200
Trois choses à retenir de cette réponse :
source_deleted: true : Acomba a retiré la soumission ; elle n'apparaît plus dans GET /api/invoicing/quotes.
created_transaction_code : la commande garde le numéro de la soumission.
created_order_transaction_id : l'id de la commande, à conserver pour la suite.
Les lignes de produits, les clauses, le vendeur, le territoire et les prix passent tels quels dans la commande, et chaque ligne a sa case B.O. cochée : le reste à livrer est suivi jusqu'à la dernière facture.

Étape 5 : compléter la commande#

La commande est créée ; ajoutons ce qui sert à la livraison. Le transporteur se pose sur la commande, par son code.
cURL
Réponse 200
Relisez la commande (GET /api/invoicing/orders/by-id/18795) : header.shipping_method porte le transporteur, et les lignes, les clauses et les totaux sont ceux de la soumission.

Le script complet#

Assemblons le tout : ce script prépare la soumission avec les clauses du format, puis, quand le client l'accepte, la convertit en commande et pose le transporteur. Les deux moments sont séparés, comme dans la réalité.
Python
JavaScript (Node.js)
Exemple de sortie :
$ python soumission.py creer
Soumission SOUM-1045 (id 18792) pour Rénovations Beaulieu inc.
  Vendeur Martin Lessard · territoire Estrie · valide jusqu'au 2026-11-10
  PEINT-H    Peinture à l’heure                        40     3,648.80 $
             Pas d’électricité sur le chantier, joints non garantis
  Sous-total 3,648.80 $ · taxes 546.41 $ · total 4,195.21 $

$ python soumission.py accepter SOUM-1045
Commande SOUM-1045 (id 18795) créée ; soumission retirée par Acomba : True
  Vendeur Martin Lessard · territoire Estrie · transporteur Transport Gagnon
  PEINT-H    Peinture à l’heure                        40     3,648.80 $
             Pas d’électricité sur le chantier, joints non garantis
  Sous-total 3,648.80 $ · taxes 546.41 $ · total 4,195.21 $
  Lignes en B.O. (reste à livrer suivi) : PEINT-H

Bon à savoir#

Gardez votre suivi avant la conversion. Acomba retire la soumission convertie : pour mesurer votre taux de conversion ou garder l'historique des soumissions acceptées, enregistrez-les de votre côté avant to-order.
Le transporteur se pose sur la commande. Sur une soumission, il n'est pas encore conservé par l'API (correction en cours) ; il n'a d'usage qu'à la livraison.
Les lignes de texte suivent le document. À la conversion, les clauses sont reprises à leur place, sans quantité.
Une soumission refusée se supprime avec DELETE /api/invoicing/quotes/{code}, une commande abandonnée avec DELETE /api/invoicing/orders/{code}.
Livrer en plusieurs fois. La case B.O. cochée garde le reste à livrer : facturez chaque livraison avec POST /api/invoicing/orders/{code}/actions/to-invoice et ses lines.
Une facture ne se modifie plus. Vérifiez la commande avant de la facturer ; une facture se corrige par une note de crédit.
Codes d'erreur : voir Codes d'erreur.

Et voilà#

Votre soumission acceptée devient une commande sans rien ressaisir : numérotée hors du compteur des factures, préparée avec son vendeur, son territoire et les clauses de votre format, convertie en une requête, puis complétée avec le transporteur. Vous savez aussi pourquoi la soumission disparaît d'Acomba à la conversion, et comment la commande suit le reste à livrer.
Pour aller plus loin
Le vrai coût horaire dans vos soumissions : fixer le prix de la main-d'œuvre avant de soumissionner.
Commande en ligne, facture et paiement : facturer la commande et encaisser le paiement.
Synchronisation CRM : créer le client depuis votre CRM avant la première soumission.
Modified at 2026-10-11 21:33:48
Previous
Masse salariale à venir et rétention du personnel
Next
Retours et notes de crédit
Built with