Le vendeur voit ses commandes payées, mais aucun virement n’arrive sur son compte bancaire. Le support lui demande de refaire son inscription ; la finance cherche un transfert manquant ; le développeur constate que le compte Stripe existe bien. Ces trois équipes peuvent regarder des informations exactes tout en parlant de trois opérations différentes.
Un compte vendeur ne se résume pas à « KYC validé ». Le diagnostic doit commencer par distinguer la disponibilité des fonctions Stripe, la situation de chaque mouvement financier et la décision commerciale de la marketplace. Une pièce envoyée ne prouve pas sa validation ; un transfert reçu ne prouve pas un virement bancaire ; un retour d’onboarding ne constitue pas une autorisation de réouverture.
Nous partons d’une intégration Connect utilisant les attributs Accounts v1, puis suivons un exemple fictif de 1 000 euros répartis entre deux vendeurs. Les décisions proposées servent à organiser le traitement opérateur. Elles ne remplacent ni les contrôles Stripe ni les règles applicables à votre montage ; aucun paiement réel n’est exécuté dans l’exercice.
La création d’une marketplace opérateur exige ce raccordement entre commerce, support et finance. La conception des paiements et de la sécurité PSP doit prévoir les fonctions indisponibles dès le départ, avec une explication compréhensible pour le vendeur et une reprise qui conserve les commandes déjà engagées.
Pour qui : une plateforme qui doit expliquer où le versement s’arrête
Ce diagnostic s’adresse à l’opérateur qui reçoit des demandes de vendeurs sur leurs fonds et possède une intégration Stripe Connect. Il devient utile lorsqu’un écran interne affiche seulement « actif », alors que les équipes doivent savoir si le vendeur peut encaisser, recevoir un transfert ou obtenir un virement. Il concerne aussi les plateformes dont les exigences de vérification évoluent après l’inscription.
Partir d’un dossier identifiable plutôt que du statut global
Choisissez une commande et retrouvez son vendeur, le compte connecté, le paiement, les transferts associés et le virement recherché. Ajoutez l’environnement utilisé : une référence de sandbox ne décrit pas la situation financière réelle. Si le support ne peut pas réunir ces éléments, commencez par leur correspondance avant de demander une nouvelle pièce au vendeur.
Le premier signal faible est une relance documentaire identique envoyée pour tous les retards. Le second apparaît lorsque l’équipe confirme « paiement effectué » à partir d’un identifiant de transfert, sans pouvoir retrouver le virement. Ces symptômes appellent deux corrections différentes : qualifier le motif de vérification et préciser le vocabulaire financier du back-office.
Limiter le périmètre aux objets réellement utilisés
Les noms charges_enabled, payouts_enabled et requirements cités ici appartiennent au diagnostic Accounts v1. Une intégration Accounts v2 doit utiliser sa documentation et ses configurations propres ; copier les noms de champs ne constitue pas une migration. Relevez votre version d’API et le format des événements avant de transformer cette méthode en règles applicatives.
Un marchand utilisant Stripe uniquement pour son propre commerce ne rencontre pas la même répartition des responsabilités. De même, un vendeur utilisateur d’une marketplace doit contacter cette plateforme pour son dossier. Le présent parcours suppose que l’équipe opérateur dispose des droits permettant de consulter les comptes et mouvements concernés, sans étendre ces accès pour les besoins du support.
Séparer paiement client, transfert vendeur et virement bancaire
La documentation des types de charges Connect distingue paiements directs, paiements avec transfert vers une destination et paiements séparés des transferts. Le compte qui porte le paiement et le circuit de répartition diffèrent. Votre diagnostic commence donc par le montage réellement configuré, y compris l’usage éventuel de on_behalf_of.
Dans le montage à paiements et transferts séparés retenu pour l’exemple, la plateforme reçoit le paiement puis crée des transferts vers les comptes connectés. Le virement, ou payout, constitue ensuite le mouvement vers un compte externe, généralement bancaire. Les trois preuves doivent rester distinctes dans la chronologie affichée au support.
- Paiement : quelle somme a été encaissée et sur quel compte Stripe ?
- Transfert : quelle part a effectivement rejoint le compte connecté de chaque vendeur ?
- Virement : quel mouvement vers le compte externe est créé, en cours ou en échec ?
Le choix du PSP et du circuit précède cette instrumentation. Le comparatif Stripe Connect, Mangopay et Adyen selon le modèle marketplace aide à cadrer les responsabilités ; il ne dispense pas de vérifier la configuration effectivement ouverte dans votre compte. Aucun statut vendeur unique ne peut remplacer cette description du parcours.
Lire les fonctions disponibles avant de prescrire une correction
La référence des capacités Stripe rappelle qu’une capacité doit être active pour les opérations associées. La capacité transfers concerne les fonds transférés au compte connecté ; card_payments répond à un autre besoin. Leurs conditions doivent être rapprochées du type de paiement, pas utilisées comme deux synonymes d’un compte commercial actif.
Afficher les observations sans inventer leur cause
Dans Accounts v1, les indicateurs charges_enabled et payouts_enabled décrivent deux fonctions différentes. Lorsqu’un indicateur est faux, la documentation de vérification demande d’examiner les exigences du compte. Conservez également le motif de désactivation et les capacités concernées pour éviter un diagnostic fondé sur une seule case.
Un écran peut afficher « virements indisponibles, diagnostic en cours » tant que le motif exploitable n’est pas connu. C’est plus précis qu’une demande automatique de justificatif d’identité. Un blocage bancaire, une exigence documentaire et une revue de risque n’appellent pas la même action, même si le vendeur décrit chaque situation par « je ne suis pas payé ».
Ne pas transformer l’observation en permission d’encaisser
Le risque est de croire qu’une fonction disponible suffit à ouvrir une nouvelle commande. Cette observation ne prouve ni le solde disponible, ni la réussite du prochain appel, ni le droit métier d’accepter la vente. Le contrôle serveur doit examiner le parcours voulu et la configuration applicable au moment de l’opération. Le diagnostic présenté au support explique l’état connu ; il ne délivre pas un laissez-passer financier.
À l’inverse, une restriction sur un vendeur ne signifie pas que toutes les commandes de la plateforme sont bloquées. Le produit doit pouvoir circonscrire les offres affectées et conserver les dossiers déjà ouverts. Cette séparation évite qu’une indisponibilité localisée devienne une fermeture générale du catalogue ou une annulation injustifiée de commandes d’autres professionnels.
Donner une action aux exigences sans promettre une date de validation
Les listes de vérification ne constituent pas un simple niveau d’avancement. Dans la référence Stripe, currently_due désigne les éléments requis, past_due ceux ayant dépassé l’échéance avec des capacités désactivées, et pending_verification les éléments en examen. eventually_due porte des exigences susceptibles de devenir nécessaires ; current_deadline correspond à l’échéance courante applicable.
Notre recommandation produit consiste à afficher séparément l’action attendue du vendeur, le responsable du suivi et la prochaine vérification interne. Cette dernière est un engagement de votre équipe, pas une promesse de délai Stripe. Une relance programmée demain ne permet pas d’annoncer au vendeur que ses fonds seront disponibles demain.
Les exigences peuvent se cumuler : une information peut rester en examen pendant qu’une autre demande une correction. Ne codez pas un ordre qui transforme tout le compte en « attente PSP » dès qu’une liste d’examen est non vide. L’interface doit laisser apparaître les actions encore possibles, avec leur libellé et leur canal autorisé.
Pour réduire la friction initiale, le dossier consacré au parcours KYC et KYB des vendeurs traite la collecte progressive. Ici, le problème est différent : rattacher une restriction observée à une fonction et à un dossier financier précis, sans redemander tout le parcours d’inscription.
Exemple concret : 1 000 euros encaissés, mais deux blocages différents
Dans ce scénario fictif, une commande payée de 1 000 euros revient pour 600 euros au vendeur A et pour 400 euros au vendeur B avant commission. La commission commerciale retenue pour l’exercice est de 10 % de chaque part : 60 et 40 euros. On obtient donc 540 euros à transférer à A, 360 à B et 100 euros de commission brute.
Les frais Stripe, taxes, remboursements et réserves sont volontairement exclus du modèle. Les 100 euros ne représentent donc ni le bénéfice ni nécessairement le solde disponible de la plateforme. Ce périmètre simplifié sert uniquement à suivre les parts du paiement, sans présenter une comptabilité complète ni un tarif Stripe.
| Part | Faits du scénario | Traitement à ouvrir |
|---|---|---|
| A : 540 € | Transfert déjà retrouvé ; aucun virement créé ; payouts_enabled=false. | Diagnostiquer le compte et le circuit de virement, sans créer un second transfert. |
| B : 360 € | Aucun transfert exécuté ; capacité transfers inactive. | Suivre la part restant à transférer et le motif de restriction, sans annoncer un virement bancaire en retard. |
Mesurer l’exposition sans additionner deux fois les mêmes fonds
La plateforme doit expliquer 900 euros de droits vendeurs dans cet exercice. Seuls 360 euros restent à transférer ; 540 euros ont déjà rejoint le compte connecté d’A. Additionner 900 euros « à payer » et 540 euros « virement bloqué » fabriquerait une exposition de 1 440 euros. Les deux files doivent porter des étapes exclusives pour une même part.
Cette distinction change la réponse du support : A attend la suite du circuit de virement, tandis que B attend encore le transfert prévu. Elle change aussi la priorité financière. Une équipe peut enquêter sur l’indisponibilité d’A sans relancer le transfert déjà prouvé, et conserver B dans une file différente avec sa référence de commande.
Garder les commandes engagées dans une file séparée
Supposons que trois commandes d’A soient déjà expédiées et qu’une quatrième ne soit pas encore acceptée. La correction du compte ne doit pas effacer le suivi des trois premières. La décision d’accepter la quatrième dépend de votre politique, du montage et des fonctions nécessaires ; elle ne découle pas automatiquement de l’état logistique des autres.
Le dossier financier et le dossier client peuvent donc avancer à des rythmes différents. Retrouvez livraison, réclamation éventuelle, remboursement et montant vendeur dans des objets liés, plutôt que dans un statut unique. Cette organisation permet de montrer les engagements existants sans prétendre que leur traitement autorise de nouvelles ventes.
Quand les virements sont autorisés, chercher encore le mouvement attendu
La documentation des virements Connect distingue notamment un virement créé en attente, un virement en transit et un échec. L’objet Payout et son éventuel failure_code apportent une preuve différente de l’indicateur général du compte. L’activation des virements ne garantit pas qu’un mouvement existe pour la somme recherchée.
Interroger le bon niveau de détail
Une fois le compte disponible, recherchez d’abord le virement correspondant et sa chronologie. S’il n’existe pas, examinez le solde, sa disponibilité et le calendrier applicable avec les droits dont dispose la plateforme. S’il existe, suivez cet objet. Recommencer la collecte d’identité sans cette bifurcation peut faire perdre plusieurs échanges au vendeur et au support.
Dans notre exemple, réactiver les virements d’A ne suffit pas à clore le ticket. Le responsable doit retrouver la suite des 540 euros selon le fonctionnement réel du compte. Il ne promet pas un délai bancaire universel, et ne déduit pas la date de réception d’une date de réactivation. La preuve de clôture doit être annoncée dès l’ouverture du dossier.
Conserver un rapprochement lorsque le statut change
Un dossier qui passe d’une restriction à un mouvement en transit a progressé, mais sa nature a changé. Gardez son historique au lieu de rouvrir un ticket sans lien. Le vendeur doit pouvoir comprendre quelle action a été accomplie et ce qui reste attendu, avec les références que l’équipe finance peut effectivement consulter.
Le rapprochement entre commandes, PSP et journal financier complète cette lecture. Il permet d’expliquer le montant et son rattachement ; il ne remplace pas le diagnostic des fonctions du compte. Les deux contrôles se rejoignent lorsqu’on décide qu’une part vendeur n’a plus de traitement ouvert.
Recevoir un événement sans restaurer un ancien état du vendeur
Stripe précise que ses webhooks peuvent être livrés hors ordre ou plusieurs fois. Un événement reçu en dernier n’est donc pas nécessairement l’état le plus récent du compte. L’identifiant d’événement aide à dédupliquer ; son horodatage ne constitue pas une version métier totale, notamment lorsque plusieurs événements partagent la même seconde.
Utiliser l’événement comme demande de relecture
Dans l’architecture proposée, la réception vérifie la signature puis place le compte concerné dans une file de relecture. Le worker récupère son état courant et recalcule le diagnostic. L’entrée conserve compte, environnement, événement et version du contrat ; la sortie contient observations, heure de lecture et actions opérateur, sans mouvement financier déclenché par cette seule étape.
La journalisation distingue réception, lecture réussie et application locale. L’idempotence empêche un doublon de produire deux relances identiques ; une sérialisation par compte évite qu’une réponse lente écrase une lecture plus récente. Ce mécanisme est une recommandation d’architecture à éprouver dans votre infrastructure, et non une garantie apportée par le simple abonnement à account.updated.
Rendre une lecture périmée visible
Si la lecture échoue, conservez l’état précédent avec son ancienneté et une mention « à actualiser ». Ne remplacez pas une erreur réseau par des indicateurs positifs. Le seuil de fraîcheur dépend de l’opération : consulter une commande historique et décider d’une nouvelle opération financière ne présentent pas le même besoin de vérification.
Le runbook attribue la reprise à une équipe identifiable, avec un contrôle périodique des comptes dont les dossiers restent ouverts. Le monitoring surveille l’âge de la dernière lecture réussie, les échecs répétés et les actions sans responsable. Un endpoint qui répond correctement ne suffit pas si la file n’est plus consommée depuis la veille.
Orienter le vendeur vers une correction qu’il peut réellement accomplir
Stripe distingue les exigences traitables dans l’intégration et certaines revues de risque dont les informations ne peuvent pas être soumises par API. Pour ces dernières, la documentation prévoit notamment Dashboard, onboarding hébergé, composants intégrés ou liens de remédiation. Ne fabriquez pas un formulaire maison en supposant qu’un nouvel envoi API résoudra chaque motif.
La méthode proposée attribue un canal validé au dossier après examen du motif et de la configuration du compte. Le support ne doit pas collecter des documents sensibles dans une conversation ordinaire pour les joindre « au cas où ». Une note interne peut indiquer l’action attendue sans recopier les pièces ou exposer leurs données à tous les opérateurs.
Le parcours d’onboarding hébergé possède une autre limite importante : le retour à return_url indique une sortie du parcours, pas l’absence d’exigences restantes. Pour les Account Links, Stripe demande aussi de présenter l’URL temporaire à l’utilisateur authentifié dans l’application, plutôt que de la diffuser par email ou messagerie.
Après le retour, affichez une actualisation en cours puis le résultat effectivement relu. L’équipe peut annoncer « informations transmises » lorsque cette étape est prouvée ; elle attend une observation correspondante pour annoncer « fonction disponible ». Le changement de message suit le dossier, sans bouton support permettant de forcer une capacité Stripe.
Éprouver le diagnostic avec des cas qui refusent la clôture prématurée
Le script Python de l’exercice fonctionne sans clé ni connexion Stripe. Il classe des observations fictives et contrôle la répartition des montants. Il n’évalue pas l’éligibilité réelle d’un vendeur, ne valide aucun KYC et ne crée ni charge, ni transfert, ni virement. Son rôle est de rendre reproductibles les erreurs de raisonnement décrites ici.
Les cas distinguent un compte disponible avec une action encore attendue, un compte en examen, une restriction avec action vendeur et une lecture périmée. Deux contrôles refusent explicitement de traiter le retour d’onboarding comme une preuve de disponibilité. La classification conserve plusieurs actions simultanées lorsque le dossier exige à la fois une correction et le suivi d’un examen.
Le résultat attendu est double : retrouver 540 et 360 euros de parts vendeurs sans les compter deux fois, et empêcher une clôture fondée sur la seule navigation du vendeur. Les variantes fautives testées confondent disponibilité et absence d’action, ignorent la fraîcheur ou assimilent transfert et virement. Ces tests illustrent une politique locale ; ils ne certifient pas un connecteur en production.
Une recette d’intégration doit ensuite vérifier les cas dans le produit réel. Stripe avertit que la sandbox peut autoriser certaines actions malgré une capacité inactive. Un paiement de test réussi ne suffit donc pas à prouver que votre contrôle des restrictions est correct. Testez aussi les états refusés et la compréhension de leur message par le support.
Erreurs fréquentes qui prolongent un blocage ou créent un doublon
Tout clôturer dès que deux indicateurs redeviennent positifs
Cette règle oublie les actions encore attendues et le mouvement financier recherché. Un compte peut redevenir utilisable alors que le dossier de versement reste ouvert. La clôture doit répondre à la question initiale du vendeur, avec sa référence et sa somme, plutôt qu’à la seule disparition d’une alerte du back-office.
Préparez des critères distincts pour « restriction résolue », « transfert retrouvé » et « virement suivi ». L’équipe gagne une étape de diagnostic sans perdre l’engagement final. Ce découpage rend aussi le reporting plus honnête : le nombre de comptes réactivés ne mesure pas directement le nombre de vendeurs ayant reçu les fonds attendus.
Relancer le mauvais mouvement pour faire disparaître un ticket
Le transfert de 540 euros du scénario est déjà établi. Le recréer pour accélérer le règlement d’A peut produire une seconde allocation, alors que l’obstacle se situe après cette étape. Avant toute nouvelle action monétaire, retrouvez l’opération existante et traitez sa réponse incertaine ou son statut dans le circuit compétent.
Le coût caché dépasse la somme du doublon : rapprochement supplémentaire, explication au vendeur et correction des états internes. Une reprise manuelle doit conserver auteur, justification et références. Un bouton « réessayer » sans distinction entre lecture, notification et mouvement financier ne constitue pas une procédure acceptable pour l’équipe d’exploitation.
Plan d’action : ouvrir une seule file de diagnostic sur des comptes pilotes
Cartographier le circuit avant de modifier les messages
Réunissez produit, finance et intégration autour de quelques dossiers réels anonymisés. Pour chacun, identifiez le type de charge, le compte porteur, la répartition vendeur, les objets déjà créés et l’étape encore attendue. Faites apparaître les cas où une même somme possède plusieurs libellés contradictoires. La première livraison doit permettre de retrouver ces relations dans le back-office.
Attribuez ensuite chaque observation à sa source : API du compte, objet financier, commande interne ou décision commerciale. Le contrat de données doit conserver cette origine avec l’heure de lecture et les identifiants nécessaires au rapprochement. Refusez une fusion qui transformerait « informations reçues » en « vérification terminée » simplement pour réduire le nombre de statuts visibles.
Tester la reprise avec une chronologie volontairement défavorable
Simulez un retour d’onboarding avant le résultat de vérification, deux événements identiques, un événement ancien reçu tardivement et une lecture API en échec. Ajoutez un compte dont une exigence reste à corriger pendant qu’une autre est examinée. Pour chaque situation, le support doit savoir quelle action proposer et quelle affirmation il ne peut pas encore faire au vendeur.
Définissez un seuil de surveillance local pour les lectures trop anciennes, puis justifiez-le par l’usage. Un seuil de quinze minutes peut servir de témoin de recette sur une file pilote ; il ne s’agit pas d’une fréquence prescrite par Stripe. Testez exactement la limite retenue et son dépassement, puis vérifiez que l’alerte rejoint réellement une personne capable d’agir.
Étendre seulement après rapprochement des dossiers ouverts
Sur le pilote, mesurez les transferts non retrouvés, les virements sans suivi et les restrictions sans action assignée. Conservez séparément les demandes en attente du vendeur, de Stripe et de votre équipe. Comparez aussi le nombre de relances inutiles avant et après modification, sans attribuer automatiquement toute amélioration au nouvel écran si le volume ou la nature des dossiers a changé.
La sortie du pilote exige des preuves sur les montants et sur le parcours opérateur. Une fonction disponible ne ferme pas un écart financier ; une somme rapprochée ne garantit pas que les nouveaux comptes sont correctement surveillés. Gardez une possibilité de revenir à la file assistée si les messages ou les correspondances produisent des décisions ambiguës, en conservant l’historique des mouvements.
- Ouvrir le suivi automatisé lorsque comptes et mouvements sont retrouvés, les événements rejoués et les messages de reprise compris par le support.
- Conserver le traitement assisté lorsque le compte est lisible mais que la part vendeur ou le canal de correction reste incertain.
- Refuser la clôture lorsque la seule preuve est un retour d’onboarding, un transfert pris pour un virement ou une observation devenue périmée.
Contenus liés pour relier conformité, répartition et litiges
Le diagnostic des capacités répond à la question « quelle fonction est disponible et que faut-il faire ? ». Pour concevoir la collecte initiale, le parcours de vérification des vendeurs traite les preuves et la progression. Pour comprendre une somme manquante, le rapprochement des flux financiers marketplace suit les mouvements et les soldes.
Un autre dossier peut rester ouvert même lorsque le compte et ses versements fonctionnent : celui d’une contestation client. Le diagnostic Stripe : distinguer un litige clos d’un litige gagné évite de confondre fin de procédure et résultat favorable. Ces objets doivent rester liés à la commande sans devenir un même statut commercial.
Confirmer le prélèvement avant de chercher un transfert manquant
Un compte vendeur utilisable ne suffit pas lorsque le paiement acheteur reste en traitement. Le diagnostic Checkout terminé et prélèvement encore en attente distingue la session, le résultat financier et la réservation de stock. Une écriture de solde peut précéder la réussite ; elle ne permet donc pas d’annoncer que la commande finance déjà le transfert attendu.
Ce contrôle se place avant la recherche d’une restriction du compte connecté. Il évite de demander des justificatifs au vendeur alors que l’attente provient du prélèvement client. Après la réussite, le dossier doit encore vérifier les conditions de préparation et de reversement, puis retrouver les mouvements réellement créés. Les montants calculés pour chaque vendeur restent distincts des preuves d’exécution financière.
Conclusion : expliquer la fonction bloquée et retrouver les fonds concernés
Un vendeur attend une réponse sur son argent, pas une couleur supplémentaire dans son profil. La bonne explication relie une part de commande, un mouvement établi et une prochaine action. Elle précise ce qui dépend du vendeur, du prestataire ou de l’équipe opérateur, sans promettre une validation ni une réception bancaire qui ne sont pas prouvées.
Le scénario des 1 000 euros montre pourquoi cette précision compte : 540 euros déjà transférés et 360 euros encore à transférer demandent deux traitements distincts. Les remettre dans une file unique masque l’endroit où intervenir. La même discipline s’applique aux observations du compte : disponible, à corriger, en examen et périmé ne doivent pas être confondus.
La conception des parcours de paiement et de reprise PSP doit intégrer cette séparation dans les données, les messages et la recette. Elle permet au support d’avancer sur un dossier sans forcer une fonction financière ni perdre les engagements déjà pris envers les clients.
Dawap accompagne la création et l’évolution de marketplaces en reliant architecture, back-office et exploitation. Nous pouvons cadrer les correspondances entre comptes, commandes et mouvements, puis éprouver les blocages avec vos équipes avant d’étendre le parcours à l’ensemble des vendeurs.