Post-vente

La facturation

Types de documents, facturation simple vs double, autofacturation, numérotation et cycle de vie d'une facture.

Étape 2 — La facturation

Surprise pour les novices : les factures ne sont pas créées quand l'acheteur paie, mais dès l'assignation. Elles servent justement à demander le paiement.

Les 8 types de documents (docTypes)

Le système ne connaît qu'un seul objet « Invoice », décliné en 8 types :

docTypeC'est quoi ?Qui facture qui ?
SALESLa facture de vente : le prix du lot (+ frais selon le mode).Vendeur → Acheteur (courtage) ou Shop → Acheteur (commissaire-priseur)
BUYER_FEESLa facture des frais acheteur, séparée (uniquement en facturation double).Shop → Acheteur
COMMISSIONLa facture de commission : ce que le vendeur doit à la plateforme pour le service.Shop → Vendeur
INVOICE_SLIPLe bordereau : document où le vendeur « facture » le shop pour les lots vendus (utilisé quand le shop encaisse pour le compte du vendeur, ex. commissaire-priseur).Vendeur → Shop
CREDIT_NOTEL'avoir : l'inverse d'une facture, en montants négatifs (annulation totale ou partielle).Inverse de la facture parente
SERVICE_SHOP / SERVICE_SELLER / SERVICE_BUYERFactures de prestations annexes (frais d'annulation, abonnements, services…).Selon la prestation
MémoPour une vente classique en courtage, retenez le trio : SALES (l'acheteur paie le lot), BUYER_FEES (l'acheteur paie les frais — seulement en mode double), COMMISSION (le vendeur paie la plateforme). L'avoir (CREDIT_NOTE) vient corriger n'importe lequel des trois.

⭐ Facturation simple vs facturation double

C'est LA distinction à maîtriser. Elle est déterminée par l'invoiceMode du contrat du vendeur.

INTERMEDIATION_INVOICE_SIMPLEune seule facture est envoyée à l'acheteur.

📄 Facture SALES : Vendeur → Acheteur
   ├── ligne(s) : prix d'adjudication du/des lot(s)
   └── ligne(s) : frais acheteur (intégrés dans la même facture, marqués par un feesType)

Pour l'acheteur : un seul document, un seul montant à payer, une seule référence de paiement.

Pour le vendeur : la facture est émise en son nom (autofacturation, voir plus bas), il recevra séparément la facture de COMMISSION de la plateforme.

💰 Conséquence financeEn simple, le chiffre d'affaires « vente + frais acheteur » apparaît sur la facture du vendeur. La TVA des frais suit le régime de la facture (donc en vente intracommunautaire, les frais passent aussi à 0 % de TVA — voir chapitre TVA).

L'autofacturation (selfBilling) et le mandat de facturation

En courtage (simple comme double), la facture SALES est juridiquement une facture du vendeur… mais c'est la plateforme qui l'émet à sa place. C'est l'autofacturation (mécanisme légal où un tiers, ici la plateforme, émet la facture au nom et pour le compte du vendeur, sur la base d'un mandat de facturation signé au contrat), autorisée par le paramètre de contrat INVOICING_MANDATE. Le PDF porte la mention correspondante, et la facture reçoit en plus un numéro de facture vendeur dans sa propre séquence (voir numérotation).

Comment les factures sont créées : createInvoicesFromSeance

À l'assignation (circuit V2), le book-keeper reçoit la séance et la liste d'items à facturer, puis :

  1. Validation : la séance existe, les items sont facturables ;
  2. Groupage : les items sont regroupés par contrat + vendeur + acheteur + bon de commande + code service (groupItemsByContractSellerBuyer). Chaque groupe = une facture. Un acheteur qui remporte 3 lots du même vendeur reçoit donc une seule facture à 3 lignes ;
  3. Création selon le mode : intermediationInvoice() (simple/double) ou auctioneerInvoice() ;
  4. Lignes & totaux : construction des lignes depuis les items (buildInvoiceLinesFromItem), calcul des totaux et de la TVA (computeTotalPrices) ;
  5. Références : numéro de facture + référence de paiement générés ;
  6. Enregistrement en base (PostgreSQL), statut initial TO_VALIDATE, puis validation (action INVOICE) → statut INVOICED et envoi à l'acheteur.

La facture de commission et le bordereau

Une fois la vente confirmée vient la rémunération de la plateforme :

  • La facture COMMISSION est créée à partir des factures SALES (action COMMISSION du workflow, automatique si COMMISSION_CREATE_AUTO). Elle est découpée par bon de commande / code service : un groupe = une facture de commission, pour que chaque commission reste rattachée à un seul ensemble de ventes ;
  • Le INVOICE_SLIP (bordereau) est créé pour les circuits où le shop encaisse pour le compte du vendeur : il matérialise « le vendeur facture le shop » (associations : SELLER = le vendeur, BUYER = l'organisation créatrice du shop).
💰 Le montant de la commissionLa commission est calculée depuis la grille tarifaire du contrat (« applicable pricing ») appliquée à chaque item : taux de commission vendeur (SELLER_COMMISSION), éventuels frais d'application, etc. Les taux peuvent dépendre de paliers calculés sur le montant adjugé de l'item, de la séance entière, de l'année ou du contrat (ITEM_BID_VALUE, SEANCE_BID_VALUE, YEAR_BID_VALUE, CONTRACT_BID_VALUE…). C'est pourquoi la création de commission va rechercher les montants agrégés d'enchères (getBiddingAmounts) avant de calculer.

La numérotation des factures

Trois systèmes de numéros cohabitent — c'est souvent source de confusion :

NuméroFormatExempleÀ quoi il sert
Référence plateformeYYYY-CNNNNNN (année + lettre catégorie + séquence sur 6 chiffres)2026-F000123Numéro officiel du document émis par la plateforme. Lettres : F = SALES & BUYER_FEES, C = COMMISSION, R = CREDIT_NOTE (avoir), B = INVOICE_SLIP (bordereau), A = factures de service. La séquence repart à 1 chaque année.
Numéro facture vendeurPPYYNNNNNN (préfixe + année sur 2 chiffres + séquence sur 6 chiffres)FC26000045 NC26000012Numéro attribué dans la séquence du vendeur pour les factures émises en son nom (autofacturation). FC = facture, NC = note de crédit. Ajouté lors des actions CONFIRM/INVOICE/PAY selon le cas (addSellerInvoiceNumber).
Référence de paiementXXX/XXXX/XXXXX (communication structurée belge, 12 chiffres dont 2 de contrôle modulo 97)202/6000/12320 (pour 2026-F000123)La référence que l'acheteur met dans son virement. Elle permet le rapprochement automatique paiement ↔ facture. Calculée à partir de la référence plateforme.

Le cycle de vie d'une facture

Comme les items, chaque facture suit un workflow d'actions. Voici le parcours d'une facture SALES :

flowchart LR
  a["TO_VALIDATE"] --> b["INVOICED"]
  b --> c["PAID"]
  c --> d["CONFIRMED"]
  d --> e["COMMISSIONED"]
  e --> f["SUBMITTED / EXECUTED"]
  f --> g["SETTLED"]
StatutSignification
TO_VALIDATELa facture vient d'être créée, c'est encore un brouillon interne (non visible).
INVOICED (action INVOICE)La facture est officialisée : numéro définitif, PDF généré, email envoyé à l'acheteur. Elle attend le paiement.
PAID (action PAY)Le paiement a été reçu et rapproché. Déclenché par le book-keeper quand un mouvement bancaire couvre la facture.
CONFIRMED (action CONFIRM)La vente est entérinée (souvent après vérification que l'enlèvement peut avoir lieu). En self-service, c'est ici que la facture de commission est créée. Le numéro vendeur est ajouté et la facture définitive est envoyée.
COMMISSIONED (action COMMISSION)La commission est générée/déclenchée ; sur MangoPay c'est le moment où la répartition de l'argent (transfers) démarre.
SUBMITTED → EXECUTED (actions SUBMIT/EXECUTE)Le reversement vendeur est préparé puis exécuté (virement SEPA via fichier Isabel, ou payout MangoPay).
SETTLED (action SETTLE)L'argent est bien arrivé, la facture est définitivement soldée et réconciliée.

Sorties possibles : CANCELED (annulée avant paiement), NOT_PAID (impayé constaté), REIMBURSED (remboursée après paiement).

Statut d'item vs statut de factureLes deux avancent en miroir : quand la facture passe PAID, l'item passe PAID ; quand la facture passe COMMISSIONED, l'item aussi, etc. Le moteur, c'est la facture — l'item suit. En facturation double, la BUYER_FEES est synchronisée sur la SALES.

Le PDF et l'envoi

Chaque facture validée génère un PDF à partir de templates Handlebars, choisi selon le contexte : facture classique (invoice-v2-1f / invoice-v2-2f multi-taux), invoice-proforma (avant officialisation), invoice-intra (intracommunautaire), invoice-export, invoice-commission, invoice-receipt (reçu). Le PDF inclut les adresses et horaires d'enlèvement (pickupLines), les coordonnées bancaires du shop et les conditions de paiement. Il est stocké (service documents) et envoyé par email à l'acheteur ou au vendeur.

Copyright © 2026