Création marketplace

Checkout terminé, prélèvement en attente

Jérémy Chomel Dawap
  • Publié le : 24 octobre 2026
  • Temps de lecture : 18 minutes
  1. Dans quel cas le prélèvement différé change la décision opérateur
  2. Séparer session terminée et paiement effectivement réussi
  3. Pourquoi une écriture de solde ne suffit pas à libérer la commande
  4. Comprendre les limites SEPA sans confondre attente et garantie
  5. Cas concret : 1 200 euros, deux vendeurs et une réservation expirée
  6. Relier chaque observation à une décision explicable au support
  7. Recevoir les événements plusieurs fois sans libérer plusieurs commandes
  8. Décider des transferts vendeurs après la preuve de paiement
  9. Erreurs fréquentes : faire du temps ou du dernier événement une preuve
  10. Plan d’action : rendre la libération de commande vérifiable
  11. Lectures complémentaires pour garder une chaîne de paiement cohérente
  12. Conclusion : libérer une sous-commande sur des preuves compatibles
Portrait de Jérémy Chomel

Le client revient de Checkout et voit un message de confirmation. Le back-office passe sa commande en « payée », les vendeurs reçoivent un ordre de préparation et le support considère le dossier clos. Pourtant, le prélèvement est encore en traitement. Si la banque le refuse ensuite, la marketplace risque une perte sur des marchandises déjà parties et une reprise manuelle auprès de plusieurs vendeurs. Son statut commercial avait plusieurs jours d’avance sur la preuve financière.

En pratique, terminer Checkout et réussir un paiement sont deux faits différents. Pour un moyen à confirmation différée, la décision d’exécuter une sous-commande doit attendre une preuve appropriée, puis vérifier que la promesse de stock reste tenable. L’événement reçu, le montant attendu, la tentative concernée et l’état de réservation doivent se retrouver dans le même dossier.

Nous suivons une commande fictive de 1 200 euros répartie entre deux vendeurs, avec un seuil de libération fixé à la réussite du paiement et à la disponibilité des deux parts. Un programme local teste les notifications rejouées, un paiement réussi après expiration de réservation et l’échec tardivement notifié d’une ancienne tentative. Il produit des intentions de traitement en base locale ; il n’exécute aucun paiement Stripe, aucun transfert et aucune expédition.

Cette articulation fait partie de la conception d’une marketplace opérateur. Notre accompagnement sur les paiements, PSP et parcours financiers marketplace relie les statuts du prestataire aux engagements envers les vendeurs et les acheteurs. Les comportements documentés ci-dessous ont été vérifiés le 24 octobre 2026 ; ils ne sont pas présentés comme une nouvelle fonctionnalité annoncée ce mois-ci.

Dans quel cas le prélèvement différé change la décision opérateur

Une marketplace qui déclenche des opérations après Checkout

Le problème concerne les plateformes qui transforment une validation de checkout en ordre de préparation, réservation de service ou ouverture de droit numérique. Dans un panier multivendeur, un seul événement peut déclencher plusieurs opérations coûteuses à reprendre. Le seuil critique n’est donc pas uniquement le montant du paiement : une personnalisation déjà lancée ou un créneau définitivement affecté peut rendre l’attente financière difficile à rattraper.

Notre scénario utilise Checkout en mode paiement, un montant strictement positif en euros et des paiements reçus par la plateforme avant répartition. Les abonnements, les parcours de simple enregistrement d’un moyen de paiement et les commandes gratuites nécessitent leurs propres règles. Ne réutilisez pas le contrôle « payé » du laboratoire comme une condition universelle pour tous les modes proposés par Stripe.

Un choix de risque à distinguer d’une erreur de statut

Une entreprise peut décider de préparer avant confirmation pour certains clients ou certaines commandes. Ce choix doit alors être nommé, limité et suivi comme une exposition acceptée. Il ne faut pas le cacher derrière un statut « payé » déclenché trop tôt. Dans ce cas, l’équipe opérateur assume une règle commerciale différente, avec un responsable et une procédure si le prélèvement échoue.

Le scénario présenté retient une autre politique : aucune libération automatique avant la réussite constatée, puis une nouvelle revue si la réservation n’est plus valide. C’est une décision pédagogique de plateforme, pas une obligation générale imposée par Stripe. Elle permet de tester une frontière précise entre commande enregistrée, paiement confirmé et sous-commandes effectivement autorisées à partir.

Séparer session terminée et paiement effectivement réussi

Lire payment_status au lieu de traduire completed par payé

La référence de la Checkout Session distingue le statut de session et payment_status. Ce dernier peut notamment valoir paid, unpaid ou no_payment_required. Une session terminée ne permet donc pas, à elle seule, de décider que les fonds attendus pour notre commande positive ont été reçus.

Le premier signal faible apparaît dans les historiques qui ne conservent que « formulaire terminé ». Retrouvez la valeur financière réellement consultée lors de la transition commerciale. Si elle n’existe pas, le back-office ne peut pas expliquer pourquoi il a autorisé la préparation. Il lui manque une preuve, même si tous les écrans affichent aujourd’hui le même badge vert.

Conserver l’état du PaymentIntent sans en déduire une date bancaire

Le cycle de vie des PaymentIntents distingue processing et succeeded. Un prélèvement peut rester en traitement avant d’aboutir ; après l’échec d’une tentative, le PaymentIntent peut revenir à requires_payment_method. Ces états ne doivent pas être traduits par une succession automatique de statuts logistiques.

Dans l’interface opérateur, affichez le fait connu et l’action permise : « paiement en traitement, préparation non libérée », ou « paiement réussi, stock à revérifier ». Ne remplacez pas ces indications par une échéance calculée depuis l’heure du checkout. Une estimation bancaire et une décision de préparation répondent à des questions différentes ; les rapprocher demande un contexte de commande, pas seulement un chronomètre.

Pourquoi une écriture de solde ne suffit pas à libérer la commande

Une Balance Transaction peut précéder la réussite du prélèvement

Stripe décrit dans sa note sur les changements de comportement des Balance Transactions pour les prélèvements une évolution engagée en 2024. Une écriture peut exister dès la soumission au réseau bancaire, avant la réussite du paiement. Sa présence n’est donc pas un substitut fiable à l’état de la charge ou du PaymentIntent.

Paradoxalement, disposer plus tôt d’une trace financière peut rendre une intégration moins fiable si elle transforme cette trace en autorisation de livraison. Le champ available_on ne doit pas non plus servir de signal de réussite. Dans notre laboratoire, sa date supposée dépassée reste volontairement associée à un paiement en traitement, afin de réfuter une décision fondée uniquement sur cette échéance.

Rapprocher les références avant de rapprocher les montants

Une somme identique ne prouve pas que deux objets appartiennent à la même tentative. Conservez la commande, la session, le PaymentIntent et, lorsque nécessaire, la charge associée. Un acheteur peut avoir recommencé un parcours après un échec ; une notification concernant le premier ne doit pas remplacer les preuves du second. Cette distinction évite de réouvrir ou d’annuler la mauvaise commande.

Le contrôle d’identité doit précéder le calcul de commission. Pour une vente de 1 200 euros, refusez de rapprocher une écriture de même montant lorsqu’elle renvoie à une autre session. Le support doit pouvoir suivre une chaîne de références stable, y compris lorsque plusieurs tentatives portent les mêmes produits, la même devise et le même total.

Comprendre les limites SEPA sans confondre attente et garantie

Une confirmation différée ne fonctionne pas comme une capture carte

La documentation Stripe du prélèvement SEPA décrit un moyen à notification différée, sans capture manuelle. Elle indique aussi que Stripe prend en charge le schéma Core, qui accepte des comptes personnels et professionnels, et non le schéma SEPA B2B. La présence d’un acheteur professionnel ne transforme donc pas automatiquement le parcours en prélèvement B2B au sens du schéma bancaire.

Pour le produit marketplace, cette distinction évite une promesse trompeuse : « nous autorisons maintenant et capturerons après préparation » ne peut pas être repris d’un parcours carte sans vérifier les possibilités du moyen choisi. Définissez plutôt les étapes réellement offertes par votre intégration : demande de prélèvement, résultat observé, décision d’exécution et traitement d’une éventuelle exception ultérieure.

Un paiement réussi n’efface pas les contestations possibles

La même documentation précise que des difficultés peuvent encore apparaître après la réussite, notamment sous forme de litige. Le statut succeeded est une preuve de fin du parcours de paiement correspondant ; il ne constitue pas une garantie absolue contre toute reprise future. Le dossier vendeur doit donc conserver le lien entre encaissement, exécution et mouvements ultérieurs.

La fenêtre de réservation commerciale doit être décidée indépendamment du calendrier bancaire. Réserver un stock pendant quelques minutes ne garantit pas qu’il sera encore disponible lorsque le résultat arrive plusieurs jours après. Si votre offre ne supporte pas cette attente, le problème doit être traité dans la politique de vente ou le choix des moyens proposés, pas dans un libellé qui annonce prématurément la réussite.

Cas concret : 1 200 euros, deux vendeurs et une réservation expirée

Répartir les montants sans confondre calcul et transfert

Dans notre scénario fictif, la part commerciale d’A vaut 800 euros et celle de B vaut 400 euros. Une commission illustrative de 12,5 % donne respectivement 100 et 50 euros, soit 150 euros au total. Les montants vendeurs après cette seule commission sont donc 700 et 350 euros. Vérifiez que ces deux montants et la commission reconstituent les 1 200 euros avant de transmettre une instruction financière. Les calculs sont effectués en centimes pour conserver leur égalité avec le total de commande.

Les frais PSP, taxes, remboursements et réserves financières sont exclus de cet exercice. Les 150 euros représentent une commission brute du modèle, pas une marge nette. Les 700 et 350 euros sont des montants calculés, pas des transferts prouvés ni des virements bancaires exécutés. À ce stade, le laboratoire ne crée que des intentions de traitement des deux sous-commandes brutes de 800 et 400 euros.

Faire expirer la réservation sans inventer un échec bancaire

La réservation fictive reste valable avant la minute 20. À la minute 10, Checkout est terminé, mais le PaymentIntent reste en traitement : aucune intention de préparation n’est créée. À la minute 21, le délai commercial est dépassé ; cela ne change toujours pas le paiement en échec. Le support doit attendre son résultat ou suivre une procédure d’annulation réellement disponible, sans créer un nouveau prélèvement par défaut.

Dans l’horloge abstraite du programme, un succès observé à la minute 120 ouvre une revue de stock. Cette valeur sert seulement à représenter « après expiration » et ne simule pas un délai SEPA. Après confirmation locale que les deux parts sont de nouveau réservables, la décision peut produire une intention pour A et une pour B. Si le stock ne peut pas être confirmé, le dossier reste à traiter, sans expédition automatique ni remboursement fictivement déclaré réussi.

Relier chaque observation à une décision explicable au support

Le tableau résume la politique de l’exercice. Il sépare le résultat financier du droit d’exécuter la commande. Une valeur inconnue ou incohérente ne devient jamais une réussite par défaut ; elle ouvre une enquête sur la référence, le montant ou l’état reçu.

CasFait établiDécision
Checkout finiPaiement encore en traitementAttendre ; aucune préparation
Solde visibleÉcriture présente, réussite non établieRelire le paiement concerné
Succès tardifPaiement réussi, réservation expiréeRevoir le stock avant libération
Stock confirméPaiement et deux parts vérifiésCréer deux intentions uniques
Ancien échecAutre session et autre PaymentIntentConserver l’historique de cette tentative
Échec courantTentative active refuséeTraiter le paiement sans expédier

Un montant ou une devise différente bloque également la libération. Le test ne réinterprète pas une session de configuration comme un paiement de commande et ne traite pas no_payment_required comme une réussite pour son panier positif. Ces contrôles appartiennent au contrat retenu ; d’autres produits peuvent légitimement déclencher des opérations sans encaissement immédiat.

Le back-office gagne à afficher deux informations côte à côte : « paiement réussi » et « exécution en revue ». Les réunir dans une seule case obligerait soit à nier l’encaissement, soit à masquer le problème de stock. Une action de reprise doit préciser quelle condition elle réévalue, sans relancer les étapes déjà prouvées.

Recevoir les événements plusieurs fois sans libérer plusieurs commandes

Utiliser la notification pour relire le dossier courant

La procédure Stripe de traitement des commandes Checkout demande de récupérer la session, d’examiner son état de paiement et de gérer les appels répétés, y compris concurrents. Pour les moyens différés, les notifications de réussite ou d’échec asynchrone complètent celle de session terminée. Le retour du navigateur ne remplace pas ce traitement serveur : l’acheteur peut fermer son onglet.

Dans le programme local, les objets relus sont des fixtures explicitement fournies au traitement, pas des réponses obtenues de Stripe. Six permutations de trois notifications sont examinées après la réussite supposée du paiement ; chaque lecture reçoit le même état courant réussi. Ce montage vérifie que l’ordre d’arrivée ne recrée pas les deux intentions et qu’un ancien signal de checkout ne fait pas revenir la décision en attente.

Distinguer doublon d’événement et doublon d’action commerciale

La documentation des webhooks Stripe précise que l’ordre de livraison n’est pas garanti et recommande d’identifier les événements déjà traités. Deux événements différents peuvent néanmoins conduire à la même action métier. Le journal d’événements et l’unicité de la libération d’une sous-commande répondent donc à deux besoins différents.

Notre base SQLite conserve un identifiant unique par notification et une clé unique par couple commande-vendeur pour les intentions. La décision et leur création locale partagent une transaction. Cela démontre la résistance aux rejouements séquentiels du laboratoire ; cela ne prouve pas une expédition « exactement une fois » dans un système distribué. Le consommateur qui envoie réellement l’ordre au vendeur doit avoir son propre contrat de reprise.

Décider des transferts vendeurs après la preuve de paiement

Ne pas prendre source_transaction pour une assurance bancaire

Pour les paiements et transferts séparés avec moyens asynchrones, Stripe recommande d’attendre charge.succeeded avant de créer un transfert. Associer une source au transfert ne transforme pas un prélèvement en traitement en paiement garanti. La décision de financer un vendeur avant confirmation exige une politique distincte ; elle ne découle pas du seul succès d’une requête API.

Dans notre cas, le calcul des 700 et 350 euros reste disponible pour expliquer le panier, mais aucun ordre de transfert n’est exécuté. La réussite du paiement, les conditions commerciales de reversement et les fonctions du compte connecté doivent être vérifiées séparément. Le diagnostic des fonctions Stripe Connect et reversements bloqués prolonge cette étape lorsque le problème se situe du côté du vendeur.

Vérifier le comportement de reprise applicable à votre plateforme

Les sources Stripe consultées comportent une nuance à ne pas effacer. La documentation générale des paiements et transferts séparés décrit une reprise manuelle après échec asynchrone. Une note d’assistance sur les transferts déjà entièrement annulés indique toutefois une annulation automatique pour les plateformes créées à partir du 1er janvier 2025. Cette condition interdit de coder une réponse universelle à partir du seul paragraphe général.

Qualifiez le comportement de votre compte et retrouvez le transfert ainsi que ses reprises avant de demander une action supplémentaire. Un message « déjà entièrement annulé » peut révéler une opération déjà réalisée, pas un montant encore à récupérer. Ce point concerne l’échec du paiement asynchrone ; il ne doit pas être étendu au remboursement acheteur et à la reprise du transfert vendeur, qui constituent un autre circuit.

Erreurs fréquentes : faire du temps ou du dernier événement une preuve

Reprélever parce que le stock a été libéré

Le deuxième signal faible est une relance du support demandant de recommencer alors que le paiement reste en traitement. L’expiration de la réservation ne prouve ni l’annulation bancaire ni l’échec de la tentative. Avant toute nouvelle demande, retrouvez l’état financier courant et la procédure applicable au moyen de paiement. L’interface doit rendre cette incertitude visible pour éviter que plusieurs collaborateurs traitent le même dossier par des actions incompatibles.

Dans la recette, le passage de la minute 19 à 20 change uniquement la nécessité de revoir le stock lorsque le paiement est réussi. Il ne déclenche aucune nouvelle création de paiement. Si l’offre devient indisponible après encaissement, une décision commerciale doit déterminer la suite, puis vérifier son exécution financière réelle. Une note interne « à rembourser » ne constitue pas une preuve de remboursement.

Écraser la tentative active avec une notification ancienne

Un traitement naïf peut afficher « paiement échoué » dès qu’il reçoit un événement portant ce nom, sans vérifier l’objet concerné. Notre scénario ajoute l’échec d’une ancienne session après la réussite de la session active. Le journal conserve ce fait dans l’historique approprié ; les intentions de préparation de la commande courante ne sont pas annulées par cette notification extérieure à sa tentative.

Le programme réfute aussi trois raccourcis : session terminée, écriture de solde présente et échéance dépassée. Chacun autoriserait à tort la préparation de notre paiement encore en traitement. Les trente-huit contrôles sont fournis dans le laboratoire local de décision Checkout et stock, avec six permutations et les calculs en centimes. Il ne vérifie ni signature Stripe, ni appels réseau, ni concurrence distribuée.

Plan d’action : rendre la libération de commande vérifiable

Attribuer les preuves à l’équipe paiement et aux opérations

L’équipe paiement définit le contrat d’entrée : compte concerné, commande, session, PaymentIntent, montant, devise et état relu. Sa sortie distingue attente, échec, incohérence et réussite. Les opérations portent la responsabilité de la réservation et de sa réévaluation ; le produit décide si les deux vendeurs doivent être libérés ensemble. La journalisation rapproche ces décisions sans remplacer l’une par l’autre.

  • Commencer par les transitions actuelles déclenchées sur une session terminée.
  • Conserver les preuves financières avant toute libération vers les vendeurs.
  • Tester le succès tardif avec stock absent, puis de nouveau disponible.
  • Rejouer les notifications et contrôler l’unicité des intentions par sous-commande.
  • Documenter séparément la création et la récupération des transferts Connect.

Le seuil proposé pour ce périmètre est zéro préparation automatique sur une tentative non réussie et zéro intention supplémentaire lors des rejouements couverts. Le contrat de reprise doit aussi prévoir une lecture PSP indisponible : l’entrée reste en attente de vérification, avec un responsable et une prochaine tentative, plutôt que d’être acquittée comme une commande traitée. La signature des événements et le contexte du compte restent des contrôles serveur indispensables à recetter dans l’intégration réelle.

Mesurer les files d’attente avec des unités distinctes

Suivez séparément le montant en traitement, les paiements réussis en revue de stock et les sous-commandes libérées. Une moyenne unique de « délai de paiement » cacherait les attentes opérationnelles après encaissement. Pour le support, supposez trente dossiers relus huit minutes chacun : le budget atteint quatre heures. Dix dossiers supplémentaires représentent quatre-vingts minutes, sans que ces hypothèses permettent d’annoncer une économie déjà obtenue.

La mise en production doit conserver les références des dossiers ouverts et une possibilité de suspendre la libération automatique si une divergence apparaît. Cette suspension ne doit pas effacer les paiements ni envoyer de remboursements par défaut. Le responsable de recette compare les entrées attendues, les décisions enregistrées et les effets réellement retrouvés chez les vendeurs ; la preuve locale du programme reste une préparation à ce contrôle, pas son remplacement.

Lectures complémentaires pour garder une chaîne de paiement cohérente

Choisir les moyens compatibles avec la promesse de vente

L’analyse des paiements locaux sans fragmentation du checkout traite le choix des capacités et leur intégration au parcours commun. Elle aide à décider si un moyen différé convient à votre offre, avant de résoudre les détails de notifications. Une disponibilité très courte et un traitement bancaire long ne se réconcilient pas par une simple traduction de statut.

La décision doit tenir compte du catalogue, de la préparation et des engagements vendeurs. Un service planifiable et une pièce unique peuvent justifier des règles différentes. Conservez ces différences dans une politique explicable plutôt que dans des exceptions dispersées : la même notification financière doit pouvoir produire une attente commerciale différente lorsque la promesse de vente l’exige.

Rapprocher les mouvements après la décision d’exécution

La méthode de réconciliation entre PSP, commandes et grand livre interne prolonge le dossier une fois les opérations engagées. Elle vérifie les montants et les références effectivement exécutés. Un calcul vendeur correct au moment de la commande ne prouve pas que le transfert correspondant a été créé, ni que son virement bancaire a abouti.

Gardez donc la preuve de libération à côté des pièces financières ultérieures. Si un rapprochement découvre une différence, vous pourrez déterminer si elle vient du paiement, de la commission, du transfert ou d’une correction après vente. La chronologie de préparation explique une décision métier ; le rapprochement financier explique les mouvements qui l’ont suivie.

Conclusion : libérer une sous-commande sur des preuves compatibles

Le retour de Checkout confirme une étape du parcours, mais il ne suffit pas à qualifier le résultat d’un prélèvement différé. Une écriture de solde et une date dépassée ne comblent pas cette différence. La plateforme doit retrouver le paiement concerné avant de décider que les vendeurs peuvent commencer l’exécution.

Le succès tardif pose ensuite une question commerciale distincte : le stock promis est-il encore disponible ? Notre exemple montre comment garder le paiement réussi visible tout en suspendant la préparation pour revue. Les notifications rejouées et les anciennes tentatives restent dans leur historique, sans fabriquer de nouvelles intentions d’expédition.

Un accompagnement sur les parcours PSP et les décisions financières marketplace permet de qualifier les états Stripe, les conditions de reversement et les reprises adaptées à votre compte. Cette conception doit aussi prévoir les lectures indisponibles et les preuves attendues après chaque action réelle.

Dawap vous accompagne dans la création et l’évolution de votre marketplace opérateur pour relier paiement, stock et sous-commandes dans un parcours cohérent. Nous cadrons les règles de libération avec vos équipes produit, finance et opérations afin que les attentes soient compréhensibles et que chaque décision puisse être retrouvée dans le dossier de commande.

Portrait de Jérémy Chomel

Relier paiement confirmé et commande exécutable

Dawap relie les événements PSP, les réservations et les sous-commandes pour rendre les attentes et les exceptions explicables aux équipes opérateur.

Articles recommandés

Illustration du suivi des paiements et reversements vendeurs Stripe Connect Création marketplace Stripe Connect : où le versement se bloque-t-il ? Lire l'article
  • 24 octobre 2026
  • Lecture ~20 minutes

Une commande payée ne prouve pas que le vendeur a reçu ses fonds. Un scénario de 1 000 euros sépare paiement, transfert et virement, puis relie chaque blocage à une action précise. Le diagnostic couvre les capacités du compte, les exigences restantes, les événements tardifs et la reprise du support sans doubler un mouvement.

Illustration du rapprochement entre remboursement client et reprise du transfert vendeur Création marketplace Stripe : client remboursé, reprise vendeur bloquée Lire l'article
  • 24 octobre 2026
  • Lecture ~19 minutes

Le remboursement de 20 euros est réussi, mais les 18 euros attendus du vendeur restent à récupérer. Ce scénario sépare les opérations Stripe, explique le crédit de commission et traite le refus comme la réponse perdue. Un programme local et une grille de réception aident à éviter les doubles remboursements et les clôtures trompeuses.

Paiements locaux : enrichir le checkout sans le fragmenter Création marketplace Paiements locaux : enrichir le checkout sans le fragmenter Lire l'article
  • 7 octobre 2025
  • Lecture ~23 min

Un moyen de paiement local améliore la conversion seulement s’il rejoint le même panier, les mêmes états et les mêmes contrôles que les options existantes. Cette méthode relie éligibilité, confirmation serveur, remboursement, split vendeur et rapprochement pour ouvrir un pays sans créer une chaîne parallèle que le support ne sait plus exploiter.

Rapprochement PSP : commandes, soldes et versements Création marketplace Rapprochement PSP : commandes, soldes et versements Lire l'article
  • 19 mars 2026
  • Lecture ~19 minutes

Un versement bancaire exact peut encore cacher des commissions, remboursements ou soldes vendeurs erronés. Cette méthode relie chaque commande aux mouvements du PSP, au journal monétaire et à la banque, puis classe les écarts et les corrige par compensation, sans réécrire l’histoire financière ni masquer les petites différences.

Concevoir les décisions de paiement de votre marketplace

Dawap relie les événements PSP, les réservations et les sous-commandes pour rendre les attentes et les exceptions explicables aux équipes opérateur.