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
  1. Recettes

Commande en ligne, facture et paiement

Une commande arrive sur votre boutique en ligne. Il faut la retrouver dans Acomba, la facturer au moment où les produits partent, parfois en plusieurs livraisons, puis inscrire le paiement du client. Fait à la main, c'est de la double saisie. Et une erreur sur une facture déjà émise oblige à faire un crédit.
Dans cette recette, nous allons automatiser ce parcours de bout en bout : votre boutique crée la commande dans Acomba, la facture à chaque expédition et inscrit le paiement, sans que personne ait à ressaisir quoi que ce soit.
Ce que vous allez apprendre
créer une commande Acomba à partir d'une commande en ligne ;
la facturer en une ou plusieurs livraisons, sans jamais perdre le reste à livrer ;
appliquer le paiement du client à chaque facture ;
éviter les pièges d'Acomba : la facture qui ne se modifie plus, la case B.O., les lignes à relire.
Avant de commencer
une clé API avec accès en écriture ;
les modules Facturation et Clients actifs dans votre dossier Acomba ;
les codes du client et des produits tels qu'ils existent dans Acomba ;
idéalement, un dossier de test : commandes, factures et paiements sont de vraies écritures comptables.

Comment Acomba gère une vente#

Avant d'écrire la première ligne de code, voyons comment Acomba découpe une vente en trois documents.
ÉtapeDans AcombaDans l'API
CommandeUn document Commande, modifiable tant qu'il n'est pas facturéPOST /api/invoicing/orders
LivraisonUne facture créée à partir de la commande ; la quantité facturée de la commande augmentePOST /api/invoicing/orders/{code}/actions/to-invoice
PaiementUn paiement client appliqué à la facturePOST /api/customers/payments
Sur chaque ligne de commande : ordered_qty = quantité commandée, invoiced_qty = quantité déjà facturée. Le reste à livrer est la différence.
Une facture Acomba ne se modifie plus
Une fois créée, une facture ne peut être ni modifiée ni supprimée : l'API refuse tout PATCH ou DELETE sur une facture. Une erreur se corrige par un crédit (POST /api/invoicing/invoices/{code}/actions/reverse), puis une nouvelle facture.
C'est pourquoi cette recette passe par une commande : tant que la vente peut changer (quantités, prix, adresse, rupture de stock), modifiez la commande, et ne la facturez qu'au moment de livrer. Ne créez une facture directement que pour une vente ferme et définitive.

Le parcours#

Voici le parcours que votre boutique va suivre pour chaque commande : une création, puis, à chaque expédition, une facture et un paiement.

Étape 1 : créer la commande#

Commençons par transformer la commande en ligne en commande Acomba. Donnez le code du client, votre numéro de commande en ligne dans reference (30 caractères au maximum) et ordered_qty pour chaque ligne. L'API calcule les taxes selon le groupe de taxes du client.
cURL
Réponse 200
La case B.O. de chaque ligne
Dans Acomba, la case B.O. d'une ligne de commande décide du sort du reste après une livraison partielle :
cochée : le reste demeure en commande, et la livraison suivante le reprend ;
décochée : Acomba ferme la ligne dès la première facture partielle. Le reste n'est plus jamais proposé à la facturation.
L'API coche la case par défaut (lines[].keep_back_order: true) sur les lignes de commande qu'elle crée. Envoyez "keep_back_order": false sur une ligne qui ne doit jamais être livrée en plusieurs fois. Les commandes saisies dans Acomba gardent le réglage de l'écran (décochée par défaut) : cochez la case par un PATCH avant une livraison partielle, en renvoyant toutes les lignes au complet (ordered_qty, invoiced_qty, keep_back_order) : lines remplace toutes les lignes de la commande.
Tant que rien n'est facturé, modifiez la commande par PATCH /api/invoicing/orders/{code} (quantités, lignes, adresse, description).

Étape 2 : facturer une livraison#

La commande est prête ; facturons maintenant la première livraison. Relisez d'abord les lignes de la commande : le line_id de chaque ligne change après chaque modification ou facture, il faut donc le relire avant chaque livraison.
cURL
Réponse 200 (extrait)
Puis facturez ce qui part chez le client. Sans corps, tout le reste à livrer est facturé ; avec lines, seules les lignes et quantités indiquées le sont.
cURL
Réponse 200
created_transaction_id : id de la facture, à conserver pour le paiement. created_transaction_code : numéro de facture attribué par Acomba.
La facture de l'exemple vaut 85,00 de TPS + 8,48 **. Relisez-la avec GET /api/invoicing/invoices/by-id/{transaction_id} (totals.grand_total).
La commande affiche maintenant invoiced_qty: 2.0 sur ordered_qty: 3.0 pour COIN-10 : il reste 1 coin à livrer.
include_shipping : les frais de transport de la commande sont repris par défaut. Passez false aux livraisons suivantes pour ne pas les facturer deux fois.
back_order_taxes_updated : Acomba retire les taxes de la commande lors de la facturation ; l'API les recalcule aussitôt. false signale que ce recalcul a échoué : la facture est bien créée, et un PATCH de la commande (de sa description, par exemple) rétablit ses taxes.
La livraison suivante reprend le même appel, avec les line_id relus et "include_shipping": false. La commande entièrement livrée reste dans Acomba, avec invoiced_qty égal à ordered_qty.
Réponse 422CauseQue faire
« quantité … supérieure au reste à livrer »La quantité dépasse ordered_qty − invoiced_qtyRelire les lignes
« Lignes inconnues dans le document source »line_id d'une version précédente de la commandeRelire les lignes
« livraison partielle sur une ligne sans B.O. »Case B.O. décochée : Acomba abandonnerait le restePATCH la ligne avec keep_back_order: true, ou passer keep_back_order: false pour fermer la ligne
« déjà facturée en partie sans B.O. »Acomba a fermé la ligne à une facture précédenteCocher la case par PATCH pour livrer le reste

Étape 3 : inscrire le paiement#

Le client a payé ? Il reste à inscrire son paiement sur la facture. Appliquez le paiement à la facture : invoice_ar_id est l'id de la facture renvoyé à l'étape 2.
cURL
Réponse 200
payment_type : 1 paiement. reference : 30 caractères au maximum (numéro de transaction de la passerelle, par exemple).
modes[].mode : 1 comptant, 2 paiement direct, 3 chèque, 4 à 9 cartes de crédit 1 à 6, dans l'ordre configuré dans Acomba.
La somme des modes doit égaler la somme des montants appliqués aux factures.
Vérifiez l'application avec GET /api/customers/invoice-ar/by-id/{invoice_id}/payment-allocations.

Le script complet#

Assemblons le tout : ce script crée la commande, la livre en deux fois et encaisse chaque facture. Remplacez l'exemple de commande par les données de votre boutique.
Python
JavaScript (Node.js)
Exemple de sortie (taxes du Québec : TPS 5 %, TVQ 9,975 %) :
Facture 18001 : 97.73 $ encaissés
Facture 18002 : 34.49 $ encaissés

Bon à savoir#

Relire avant d'écrire. Chaque modification ou facture change l'unique_id de la commande et le line_id de ses lignes. Ne conservez que le code de la commande et l'id des factures.
Un appel à la fois. Acomba traite une écriture à la fois : facturez les commandes l'une après l'autre, sans appels en parallèle.
Ne rejouez pas une écriture après une erreur réseau sans relire : la facture a peut-être été créée. Relisez les lignes de la commande (invoiced_qty) avant de réessayer.
Corriger une facture : POST /api/invoicing/invoices/{code}/actions/reverse crée le crédit qui l'annule ; facturez ensuite à nouveau.
Commande ouverte (/api/invoicing/open-orders) : même parcours ; Acomba y coche lui-même la case B.O.
Stock : chaque facture sort la quantité livrée de l'inventaire, comme dans Acomba. Acomba ne bloque pas une facture quand le stock est insuffisant.
Codes d'erreur : voir Codes d'erreur pour savoir quand réessayer.
Essayez d'abord dans un dossier de test : commandes, factures et paiements sont de vraies écritures comptables, et une facture ne se supprime pas.

Et voilà#

Votre boutique crée maintenant ses commandes dans Acomba, les facture à chaque livraison et inscrit les paiements, sans ressaisie. Vous savez livrer en plusieurs fois sans perdre de reste, relire la commande avant chaque écriture, et corriger une erreur par un crédit plutôt qu'en touchant à la facture.
Pour aller plus loin
États de compte automatisés : envoyez chaque mois à vos clients leur état de compte.
Relances de recouvrement : suivez les factures qui tardent à être payées.
Bons de commande, réceptions et rapprochement : le même parcours côté achats.
Modified at 2026-10-10 18:41:22
Previous
Bons de commande, réceptions et rapprochement
Built with