Regles et matrices

Statuts et transitions

Les statuts décrivent l'état d'un objet. Les transitions indiquent comment il peut évoluer.

Statuts et transitions

Les statuts décrivent l'état d'un objet. Les transitions indiquent comment il peut évoluer.

Sauf mention contraire, les règles ci-dessous sont vérifiées côté interface (bouton visible seulement si la condition est remplie) et rejouées côté serveur à l'exécution — un utilisateur ne peut donc pas déclencher une transition simplement en forçant l'appel.

Lot et vente

StatutSignificationTransitions principales
BrouillonPréparation en coursCompléter, soumettre, supprimer
En validationContrôle opérationnelValider, refuser, demander correction
PubliéVisible marketplaceOuvrir la vente, modifier selon contraintes
OuvertEnchères ou participation activeClôturer, prolonger selon règles
FerméParticipation terminéeAttribuer, facturer, marquer invendu
VenduGagnant déterminéFacturer, payer, rendez-vous
InvenduAucun gagnant ou réserve non atteinteRelancer, archiver, revente

Actions de lot observées

Statut lotActions implémentéesDroit requisCondition précise
BrouillonValider, retirerITEM.ITEM.PUBLISH pour validerUn lot legacy (issu de l'ancien système) ne peut pas être validé, quel que soit son statut.
À contrôler (TO_CHECK, TO_CHECK_BO)Valider, supprimer, retirer, demander validation vendeurITEM.ITEM.PUBLISH pour valider ; ITEM.ITEM.DELETE pour supprimer ; ITEM.ITEM.REMOVE pour retirer« Valider » exige en plus qu'une catégorie soit renseignée sur le lot.
À modifier / À contrôler EP (auto-service, TO_MODIFY, TO_CHECK_EP)Soumettre, valider, supprimer, retirer, générer description selon contexteITEM.ITEM.MANAGE pour soumettre ; ITEM.ITEM.PUBLISH pour validerValider/refuser/demander une modification sur ces statuts n'est possible que si le lot est en auto-service (selfService = true) ; « Soumettre » n'est proposé que depuis « À modifier ». Si le lot n'est pas en auto-service, le passage par « À vérifier » (validation vendeur) est requis à la place.
ValidéOuvrir, retirerITEM.ITEM.MANAGE pour ouvrir/retirer—
OuvertProlonger, fermer, retirerITEM.ITEM.MANAGEUn lot sans enchère proche de la clôture (moins de 48h) apparaît dans le tableau de bord de suivi dédié, sans que cela bloque la clôture.
FerméAssigner, ne pas assigner, ne pas vendreSALES.ITEM.ASSIGN (assigner / ne pas assigner / ne pas vendre) ; SALES.ITEM.MANUAL_ASSIGN pour une assignation manuelleS'il y a eu au moins une enchère : Assigner (attribution manuelle ou au gagnant), Ne pas assigner. S'il n'y a eu aucune enchère : Ne pas vendre, Assigner (manuel uniquement) — l'assignation automatique au meilleur enchérisseur n'a pas de sens sans enchère.
Invendu sans enchère (UNSOLD sans enchère)Assigner (manuel), retirer, remettre en venteSALES.ITEM.MANUAL_ASSIGN pour assigner ; ITEM.ITEM.REMOVE pour retirer ; ITEM.ITEM.MANAGE pour remettre en venteLa remise en vente n'est permise qu'une seule fois (un lot déjà remis en vente — marqueur meta.resold posé — ne peut pas l'être une seconde fois). Un invendu avec au moins une enchère n'est pas remis en vente.
Invendu avec enchère (UNSOLD avec enchère)Assigner (manuel), retirerSALES.ITEM.MANUAL_ASSIGN pour assigner ; ITEM.ITEM.REMOVE pour retirerRetrait limité aux statuts « à contrôler », « à modifier », « validé », « ouvert » et « invendu » — un lot déjà facturé ou vendu ne peut plus être retiré par cette action. La remise en vente n'est pas proposée (réservée aux invendus sans enchère).
Non attribué (NOT_ASSIGNED)Assigner (manuel), remettre en venteSALES.ITEM.MANUAL_ASSIGN pour assigner ; ITEM.ITEM.MANAGE pour remettre en venteContrairement à l'invendu, le retrait n'est pas proposé sur ce statut. Même règle de remise en vente unique (meta.resold).
Non payé (défaut de paiement acheteur, NOT_PAID)Assigner (manuel), remettre en venteSALES.ITEM.MANUAL_ASSIGN pour assigner ; ITEM.ITEM.MANAGE pour remettre en venteSe comporte comme un invendu vis-à-vis de la revente : remise en vente possible une seule fois (meta.resold), sinon exclusion de la revente.
Remboursé (REIMBURSED)AssignerSALES.ITEM.MANUAL_ASSIGNRéassignation manuelle uniquement.
Supprimé, refusé, retiréAucune action—Un lot supprimé ou retiré (DELETED, REMOVED) n'est plus modifiable ; « Supprimer » n'est lui-même possible que depuis l'un de ces deux statuts.

Un profil super-admin disposant du droit dédié SUPER.ITEM.STATUS_MANAGE peut, en dehors du workflow standard, forcer manuellement un lot vers un statut aval (validé, ouvert, fermé, assigné, facturé, non attribué, invendu, payé, non payé, confirmé, remboursé, commissionné, soumis, soldé) — hors statuts amont (brouillon, à contrôler, refusé). Cette transition exceptionnelle reste tracée comme toute action sensible et n'est pas disponible sur un lot legacy.

Un vendeur peut aussi traiter en masse (jusqu'à 50 lots) l'acceptation ou le refus de l'attribution des lots en « vente à valider » ayant reçu au moins une enchère.

Offre à prix fixe

StatutSignificationTransitionsCondition précise
NouvelleOffre reçueEnvoyer en revue boutique, envoyer en revue vendeur, expirerToutes les transitions depuis « Nouvelle » exigent le droit SUPER.BID.MANAGE (action réservée à un profil super-admin, pas au vendeur ni à la boutique).
À vérifier boutiqueContrôle boutiqueEnvoyer en revue vendeur, refuser, expirerMême droit SUPER.BID.MANAGE requis.
À vérifier vendeurDécision vendeurApprouver, refuser, expirerMême droit SUPER.BID.MANAGE requis.
ApprouvéeOffre acceptée—Statut terminal, aucune action disponible.
RefuséeOffre rejetée—Statut terminal, aucune action disponible.
ExpiréeDélai de décision dépassé—Statut terminal, aucune action disponible.

Demande d'autorisation (accès à un lot ou une vente)

StatutSignificationTransitionsDroit requisCondition précise
À validerDemande en attenteValider, refuserITEM.ITEM.AUTHORISATIONUniquement possible si la demande est encore au statut « à valider » ; le refus impose de sélectionner un ou plusieurs motifs de refus.
ValidéeAccès accordéRévoquerITEM.ITEM.AUTHORISATIONLa révocation n'est proposée que depuis « validée » ou « refusée ».
RefuséeAccès refusé, motif conservéRévoquer un refus antérieurITEM.ITEM.AUTHORISATIONMême règle que ci-dessus : révocable uniquement depuis « validée » ou « refusée ».
RévoquéeDécision antérieure annulée——Statut terminal, aucune action disponible.

Compte utilisateur (personne)

Le statut d'une personne n'est pas géré par le service de workflow des lots mais par le service « personnes » et l'API. Le parcours nominal de vérification enchaîne quatre étapes en auto-service :

StatutSignificationTransition suivanteCondition précise
À valider (TO_VALIDATE)Compte créé, email pas encore confirméConfirmer emailStatut par défaut à la création. Connexion impossible tant que l'email n'est pas confirmé. Déclenché par l'utilisateur (lien reçu par email, valable 3 jours).
Email confirmé (EMAIL_VALIDATED)Adresse email vérifiéeConfirmer mobileDéclenché par l'utilisateur (code reçu par SMS). L'envoi du code est limité (90 s entre deux envois, 5 tentatives par heure).
Mobile confirmé (MOBILE_VALIDATED)Numéro mobile vérifiéCompléter le profil—
Compte complet (COMPLETED)Profil finalisé—Statut terminal du parcours. Seul statut donnant l'accès plein ; déclenche la synchronisation vers l'ancien système et l'accès aux ventes privées.

Statuts particuliers, hors parcours nominal :

StatutSignification
Validé (VALIDATED)Statut hérité de l'ancienne plateforme (comptes V1 importés). Traité comme « email confirmé » : l'utilisateur doit encore valider son mobile. Aucun parcours récent ne le produit.
Désactivé (DISABLED)Compte désactivé (ancien compte résilié, ou cascade d'une organisation désactivée).
Bloqué (BLOCKED)Compte bloqué. Connexion impossible, session fermée.

Règles de gestion

  • Connexion : un compte « à valider » ou « bloqué » ne peut pas se connecter ; un compte valide ne peut pas non plus se connecter si son organisation est bloquée.
  • Invitation : une personne créée via une invitation acceptée naît directement « email confirmé » et hérite des rôles portés par l'invitation.
  • Changement d'email : repasse le compte « à valider » (nouvelle confirmation exigée).
  • Blocage : manuel par un administrateur disposant de ORGANISATION.USER.MANAGE, ou automatique (abus d'envoi de SMS, ou email / mobile / téléphone figurant sur liste noire). Le blocage ajoute les coordonnées à la liste noire et ferme la session.
  • Cascade organisation → personnes : bloquer une organisation bloque tous ses membres ; la débloquer les débloque. Par ailleurs, faire passer une organisation « validée » fait passer ses personnes « compte complet » ; une organisation « désactivée » désactive ses personnes.
  • Déblocage : un compte débloqué revient à « mobile confirmé » (ou « email confirmé » s'il n'avait jamais validé son mobile) — jamais directement « compte complet » : il doit re-finaliser son profil.
  • Forçage : il n'existe pas de garde de transition stricte côté back-end. Un administrateur disposant de ORGANISATION.USER.MANAGE (ou l'utilisateur sur lui-même) peut faire écrire un statut aval directement, sans repasser par les étapes intermédiaires.
  • KYC / SCA : ne sont pas portés par le statut de la personne — ils relèvent du niveau organisation (voir KYB ci-dessous et Documents et conformité).

Document

StatutSignificationTransitionsDroit requisCondition précise
DéposéReçu par la plateformeContrôler——
En contrôle (à valider)Analyse en coursValider, refuserORGANISATION.DOCUMENT.MANAGELes boutons Valider/Refuser ne sont visibles que si le document est au statut « à valider » ; un motif est demandé pour le refus.
ValidéUtilisableExpirer, remplacerORGANISATION.DOCUMENT.MANAGE—
RefuséNon acceptableRemplacer, corrigerORGANISATION.DOCUMENT.MANAGE—
ExpiréPlus utilisableRemplacerORGANISATION.DOCUMENT.MANAGE—
SuppriméRetiré du parcours actifHistorique conservé selon règlesORGANISATION.DOCUMENT.MANAGE—

Indépendamment de ce cycle, un utilisateur disposant du droit ORGANISATION.DOCUMENT.MANAGE peut forcer directement un document vers n'importe quel statut aval (validé, refusé, expiré, archivé, supprimé) via un changement de statut manuel, quel que soit le statut de départ — ce mécanisme sert notamment à corriger une erreur de traitement sans repasser par le circuit standard.

Facture

StatutSignification
À valider (TO_VALIDATE)Facture créée, pas encore émise ni visible. État initial de toute facture.
Facturée (INVOICED)Facture émise et visible, PDF disponible, en attente de paiement.
Payée (PAID)Paiement encaissé / rapproché.
Non payée (NOT_PAID)Échéance de paiement dépassée, ou passage manuel en « impayé ».
Annulée (CANCELED)Facture annulée (action manuelle).
Remboursée (REIMBURSED)Facture intégralement remboursée.
Confirmée (CONFIRMED)Vente / retrait confirmé — étape avant le reversement vendeur.
Commissionnée (COMMISSIONED)Commission et reversement vendeur générés.
Exécutée (EXECUTED)Document exécuté (commission, avoir ou bordereau, côté paiement).
Soumise (SUBMITTED)Paiement sortant soumis (lié aux mouvements bancaires).
Soldée (SETTLED)Facture soldée définitivement (rapprochement bancaire final).

Deux statuts d'attente relèvent d'un contrôle Finance au-dessus d'un seuil : « en attente d'avance de TVA » (bordereau commissaire-priseur) et « en attente d'ajustement de paiement » (encaissement entrant). Ils suspendent la facture jusqu'à confirmation par la Finance.

Chaque action est déclenchée manuellement (bouton visible seulement si le statut le permet) et exige un droit métier précis, dérivé du type de facture — par exemple facturer une facture de vente exige un droit distinct de facturer une facture de commission. Les actions de rejeu en masse (« Facturer en masse », « Confirmer en masse ») sont réservées aux profils administrateur.

Actions de facture observées

Contexte factureActions implémentées selon statutCondition précise
Vente (facture de vente au sens strict)À valider → Facturer, Annuler · Facturée → Payer, Marquer non payé, Annuler · Payée → Confirmer, RembourserLes frais acheteur associés à une vente suivent un cycle réduit : Facturée → Payer uniquement (pas d'annulation ni de confirmation séparée).
Service vendeur / Service acheteurÀ valider → Facturer, Annuler · Facturée → Payer, Marquer non payé, Annuler · Payée → Confirmer, Rembourser · Confirmée → SolderLes actions « Annuler » et « Rembourser » demandent un motif obligatoire (même liste de motifs que le retrait d'un lot).
Service shop / auto-service / offre directe (legacy)À valider → Facturer · Facturée → Payer, Marquer non payé · Payée → Confirmer, Rembourser · Confirmée → Commissionner · Commissionnée → SolderSpécifique aux catégories historiques « service complet », « auto-service » et « offre directe » : seule cette famille passe par l'étape « Commissionner » avant le solde.
CommissionÀ valider → Facturer · Facturée / Soumise / Exécutée → Exécuter, Solder—
Avoir (note de crédit)À valider → Facturer · Facturée → ExécuterUn avoir n'est proposé que si la facture d'origine est déjà facturée/payée/soumise/exécutée/soldée (selon qu'il s'agit d'une commission ou d'une facture standard) ; impossible sur une facture déjà réglée en Mangopay non soldée.
Bordereau (auctioneer)À valider → Facturer · Facturée → Exécuter · Exécutée → SolderPropre au mode de vente « commissaire-priseur » (auctioneer).

Les actions « Facturer en masse » et « Confirmer en masse » ne s'appliquent respectivement qu'à des factures toutes au statut « à valider » ou toutes au statut « payée », et à des factures d'un même shop.

Types de facture et cycle associé

Le cycle exact dépend du type de document (le référentiel a migré des anciennes « catégories » vers des « types de document ») :

Type de factureCycle
Vente + Frais acheteurÀ valider → Facturée → Payée → Confirmée → Commissionnée → Soldée
Service vendeur / Service acheteurÀ valider → Facturée → Payée → Confirmée → Soldée
Service shopÀ valider → Facturée → Payée → Exécutée → Soldée (pas d'annulation)
Commission / Avoir / Bordereau commissaire-priseurÀ valider → Facturée (ou Soumise) → Exécutée → Soldée
Facture d'annulationÀ valider → Facturée → Payée → Soldée

En courtage à facturation double, la vente et les frais acheteur sont deux factures distinctes émises ensemble. Les statuts « annuler / marquer non payé / rembourser » s'appliquent selon le type (les frais acheteur suivent la vente, la commission et le bordereau n'ont pas d'étape de paiement acheteur).

Contrôles de paiement MangoPay (les « gates »)

Certaines transitions sont bloquées tant que le paiement en ligne n'est pas prêt — le back-office affiche alors un message explicite plutôt que d'exécuter l'action :

  • Émettre une facture (à valider → facturée) est bloqué si le compte de paiement de l'acheteur n'est pas prêt (compte payeur manquant, IBAN virtuel manquant, encaissements non actifs).
  • Confirmer (payée → confirmée) est bloqué tant que le portefeuille / bénéficiaire du vendeur (courtage) ou son KYB interne n'est pas prêt / validé.
  • Payer (facturée → payée) : un ajustement de paiement au-dessus d'un seuil met la facture « en attente d'ajustement » (validation Finance) au lieu de la passer payée ; un bordereau CP au-dessus du seuil d'avance de TVA passe « en attente d'avance de TVA ».

Quand une de ces gates bloque la facturation automatique à l'attribution d'un lot, la facture reste « à valider » pour traitement manuel — il n'y a pas de nouvelle tentative automatique.

Facturation automatique

Selon les paramètres du contrat de vente :

  • à l'attribution d'un lot, si l'attribution automatique et la facturation automatique sont activées, la facture de vente est créée et émise automatiquement (sous réserve des gates ci-dessus) ;
  • un paramètre d'auto-impayé pose une date d'expiration : un traitement quotidien passe alors les ventes échues « non payées » ;
  • la commission peut être générée automatiquement à la confirmation, et son mouvement bancaire soumis automatiquement, selon les paramètres du contrat (sinon la commission reste « à valider » pour validation manuelle).

Ces paramètres sont relus sur le contrat à chaque décision : les modifier change le comportement des factures concernées.

Non-paiement, annulation et avoirs

  • Passer une vente « non payée » (manuellement ou par le traitement automatique) désactive la facture, remet les lots liés en « non payé », et bloque l'organisation acheteuse pour non-paiement.
  • Si le shop l'active, un avoir d'annulation est alors créé automatiquement : ses frais d'annulation sont plafonnés par le montant de la caution MangoPay active (sans caution active, pas d'avoir) ; la caution est capturée et l'avoir soldé.
  • Un avoir de frais acheteur (note de crédit) peut être émis sur une vente déjà facturée : les frais sont recalculés au prorata, et l'avoir est soldé en cascade avec la facture parente.
  • « Annuler » et « Rembourser » acceptent un motif (facultatif côté back-end) ; un remboursement ne peut pas dépasser le montant payé, et un remboursement partiel ne change pas le statut de la facture.

Lien facture → statut du lot

Le statut du lot suit celui de sa facture : facturée → lot facturé, payée → payé, non payée → non payé, confirmée → confirmé, commissionnée → commissionné, remboursée → remboursé, exécutée → exécuté, soldée → soldé. Annuler une facture remet les lots liés « fermés » et efface l'enchère gagnante.

Relances de paiement (automatique)

Un traitement quotidien envoie aux acheteurs des relances de paiement échelonnées pour les ventes facturées non payées, selon le calendrier de relances du shop (chaque étape n'est envoyée qu'une fois).

Contrat

StatutSignificationTransitions
PréparéConditions en coursContrôler, corriger
ActifDroits applicablesModifier, archiver
ArchivéN'ouvre plus de nouveaux droitsConsulter uniquement

Actions de contrat observées

Statut contratActions implémentéesDroit requisCondition précise
Actif modèle (contrat gabarit)ArchiverINTERNAL.TEMPLATE.MANAGEUn modèle ne peut être ni désactivé ni marqué expiré : seul l'archivage lui est proposé.
Actif non modèleArchiver, expirer, désactiverSALES.CONTRACT.MANAGE pour désactiver ; SALES.CONTRACT.ARCHIVE pour archiverLa désactivation impose de saisir un motif, enregistré comme commentaire sur le contrat.
DésactivéArchiver, expirer, réactiverSALES.CONTRACT.MANAGELa réactivation est soumise à confirmation.
ExpiréArchiverSALES.CONTRACT.ARCHIVE—
ArchivéAucune action—Statut terminal, y compris pour un modèle.

Un contrat actif (non modèle) peut aussi déclencher des actions de rattrapage technique réservées aux administrateurs (userStore.isAdmin) : relancer la configuration de paiement du commissaire-priseur, resoumettre le bénéficiaire commissaire-priseur, ou relancer l'onboarding acheteur. Ces actions exigent en plus que le contrat ait un shop et, selon le cas, une organisation associée ou un type de client acheteur.

Organisation

StatutSignificationTransitionsDroit requisCondition précise
En attente (TO_VALIDATE)Statut initial à la création de l'organisationValider, bloquer, fusionnerORGANISATION.ORGANISATION.MANAGEL'action « Valider » (OrganisationActions.VALIDATE) fait directement passer l'organisation à VALIDATED, sans condition métier supplémentaire vérifiée dans le workflow backend (auctelia/jobs); elle n'a pas été retrouvée exposée dans l'admin moderne (tars-monorepo), seulement dans le code backend partagé — probable écart de parité avec l'admin legacy plutôt qu'action supprimée.
Active (VALIDATED)Actions autorisées selon droitsBloquer, fusionnerORGANISATION.ORGANISATION.MANAGEAucune transition ne fait revenir une organisation validée à « en attente »; le blocage (individuel ou en masse) exige de saisir un motif et n'est proposé que si l'organisation n'est pas déjà bloquée.
Bloquée (BLOCKED)Actions sensibles limitéesDébloquer, fusionnerORGANISATION.ORGANISATION.MANAGEDébloquer ramène directement au statut « validée » (pas « en attente ») et lève aussi le blocage de toutes les personnes de l'organisation. Le déblocage n'est proposé que si l'organisation est bien au statut « bloquée ».
Désactivée (DISABLED)Organisation désactivée——Statut présent au référentiel mais atteint par aucune transition du workflow standard (héritage / cas particuliers). Une organisation désactivée désactive ses personnes.
Archivée (ARCHIVED)Organisation absorbée par une fusion——Atteint uniquement comme effet d'une fusion : l'organisation absorbée est archivée. Il n'existe pas d'action « archiver » directe.
Supprimée/anonymiséeRetirée du parcours actifHistorique selon obligationsORGANISATION.ORGANISATION.MANAGELa suppression est possible quel que soit le statut courant, sous réserve du droit ; une confirmation explicite est demandée.

Effets des transitions

  • Valider (TO_VALIDATE → VALIDATED) : le workflow ne vérifie aucune condition métier supplémentaire (ni motif, ni IBAN, ni compte de reversement). En revanche, la validation fait passer toutes les personnes de l'organisation en « compte complet » et, si l'onboarding paiement est activé, crée le compte MangoPay de l'organisation (uniquement à la première bascule vers « validée »).
  • Bloquer (TO_VALIDATE/VALIDATED → BLOCKED) : bloque en cascade toutes les personnes de l'organisation, enregistre l'auteur et le motif (motifs : non-paiement, non-retrait, à la demande du client, autre) et peut créer un commentaire. Le blocage figure aussi les coordonnées sur liste noire.
  • Débloquer (BLOCKED → VALIDATED) : débloque l'organisation et toutes ses personnes.
  • Fusionner (depuis en attente, validée ou bloquée) : réaffecte de l'organisation absorbée vers l'organisation conservée l'ensemble de l'historique et des rattachements (enchères, adresses, personnes, contrats, documents, demandes d'autorisation, validations de vente, watchlists, lots, séances, rendez-vous, recherches sauvegardées, factures et mouvements bancaires, commentaires). Les contrats automatiques et documents déjà présents en doublon sur l'organisation conservée sont archivés plutôt que transférés ; les invitations en attente sont transférées (pas celles déjà traitées). La fusion ferme le compte MangoPay de l'organisation absorbée et échoue si son portefeuille MangoPay n'est pas vide. En cas d'échec partiel, aucun archivage n'a lieu (rejeu possible). À la fin, l'organisation absorbée passe « archivée » avec un journal de fusion.

Indépendamment du statut global de l'organisation, une vérification KYB (justificatifs bancaires, informations légales, IBAN/BIC) est suivie séparément (statuts : manquant, à valider, validé, refusé) et n'entraîne, dans le back-end de workflow, que l'envoi de notifications par email aux personnes habilitées (droit de gestion des documents d'organisation) ; elle ne modifie pas automatiquement le statut principal de l'organisation. La décision KYB elle-même (validation / refus des justificatifs) est portée par l'API de conformité, pas par le workflow d'organisation.

Copyright © 2026