Un paiement insuffisant laisse un solde à régler ; un paiement excessif crée un trop-perçu à traiter. Ni l'un ni l'autre ne doit entraîner un remboursement improvisé ou une nouvelle demande de paiement intégral. Vérifiez d'abord les fonds reçus, rattachez-les à l'achat, puis décidez séparément s'il faut exécuter la commande et comment régler la différence.
Ce guide suppose que l'actif, le réseau et la destination sont corrects. Si ces éléments ne correspondent pas, consultez plutôt le guide de traitement des paiements sur le mauvais réseau. Ici, le problème concerne le montant, le moment de réception ou l'affectation d'un versement par ailleurs conforme.
Les contrôles ci-dessous sont des recommandations opérationnelles et techniques destinées aux commerçants, et non une liste de fonctionnalités automatiques de Yolfi. Les exemples sont illustratifs et ne relatent pas des incidents clients.
Établir le montant avant de choisir la solution
Conservez la demande initiale : référence de commande, quantité de jetons demandée, réseau, destination, base de calcul du devis et éventuelle règle d'expiration. Comparez-la à des versements vérifiés de manière indépendante qui respectent votre politique de confirmation, et non à une capture du portefeuille du client ou à une estimation de son solde.
Distinguez trois montants :
- Montant demandé : ce qu'exigeaient les instructions de paiement.
- Versements vérifiés : les transferts correspondants effectivement reçus et pouvant être affectés.
- Solde non résolu : le manque ou l'excédent après les affectations, avoirs et remboursements antérieurs.
Ne déduisez pas vos propres frais de transfert ultérieurs du montant payé par le client. Séparez les frais du prestataire et les ajustements comptables des preuves des fonds reçus.
Un retrait depuis une plateforme d'échange peut aboutir à un montant inférieur à celui prévu par le client si le service prélève des frais. Vérifiez le versement plutôt que de faire des suppositions. À l'inverse, un transfert standard d'USDC ou d'USDT sur Ethereum ne règle pas les frais de gaz d'Ethereum en déduisant des USDC ou des USDT : les frais de gaz d'Ethereum sont payés en ETH. Ne conseillez pas au client d'ajouter une quantité estimée de stablecoins pour couvrir le gaz.
Pour l'implémentation, comparez des unités de base entières exactes ou des valeurs décimales exactes en utilisant la précision vérifiée de l'actif. Évitez les comparaisons en virgule flottante binaire et n'effacez jamais un manque par arrondi au seul motif que la page de paiement affiche moins de décimales.
Tableau de décision pour les écarts de montant
Utilisez-le comme modèle de politique interne. Il s'agit de catégories métier, et non de statuts de l'API Yolfi.
| Situation vérifiée | Décision d'exécution | Action pour régler l'écart | Contrôle avant clôture |
|---|---|---|---|
| Montant intégral reçu dans le délai applicable | Exécuter une seule fois après satisfaction des exigences de confirmation | Affecter le versement à la commande | Vérifier les affectations et exécutions antérieures |
| Montant reçu inférieur à la demande | Suspendre l'exécution sauf dérogation autorisée | Approuver une demande de solde traçable, une remise ou un remboursement | Consigner le solde restant et la personne responsable |
| Montant reçu supérieur à la demande | Exécuter une seule fois, uniquement si les règles d'acceptation du paiement sont respectées | Examiner le trop-perçu en vue d'un remboursement ou d'un avoir convenu | Séparer le montant affecté à la commande de l'excédent |
| Plusieurs transferts atteignent le total requis | Suspendre jusqu'à vérification et autorisation du cumul | Affecter chaque transfert admissible une seule fois | Ne pas supposer que le prestataire regroupe les paiements |
| Montant intégral reçu après expiration | Examiner les délais, le devis et la disponibilité de la commande | Accepter selon la politique ou convenir d'une autre solution | Vérifier les demandes de remplacement liées |
| La demande initiale et celle de remplacement reçoivent toutes deux des fonds | Ne jamais exécuter deux fois | Rapprocher les deux versements et traiter le surplus | Verrouiller la commande contre les actions en double |
Attribuez à chaque exception une personne responsable et une échéance pour la prochaine information. Un versement ne doit pas rester sans affectation parce que l'assistance et la comptabilité supposent chacune que l'autre équipe s'en charge.
Paiements insuffisants : ne demander qu'une suite approuvée
Supposons qu'une demande porte sur 100 USDC, mais que le versement vérifié soit de 98 USDC. Il manque 2 USDC. Conservez l'enregistrement du versement initial ; ne le remplacez pas discrètement par un nouveau indiquant 100.
Choisissez une solution documentée :
- Percevoir le solde. Vérifiez que votre intégration peut rapprocher des versements distincts. Émettez une demande traçable pour le montant restant, liée à la même commande et accompagnée d'instructions de paiement à jour.
- Accorder une remise. Une personne habilitée consigne le montant abandonné et son traitement comptable. N'affirmez pas qu'une remise du commerçant modifie les règles de reconnaissance des paiements du prestataire.
- Restituer le versement partiel. Convenez des conditions et de la destination du remboursement avant d'exécuter le paiement sortant distinct.
La FAQ de Yolfi sur les paiements partiels indique que les paiements incomplets ne sont pas confirmés et invite les clients à contacter le commerçant. Elle précise qu'un complément versé à la même adresse n'est possible que si le système du commerçant le permet. Ne promettez donc pas que l'envoi de la différence finalisera automatiquement la demande Yolfi initiale.
Si la gestion des paiements fractionnés n'a pas été vérifiée, sollicitez la personne compétente avant de demander au client d'envoyer davantage. Demander un nouveau paiement intégral tout en conservant le premier versement partiel crée un trop-perçu prévisible.
Définissez toute politique relative aux petits écarts avant qu'un incident ne survienne. Précisez par exemple un plafond d'autorisation, les achats admissibles et un motif consigné pour l'audit. Il n'existe pas de pourcentage de tolérance universel : BTCPay Server documente sa propre tolérance configurable aux paiements insuffisants, mais cela ne prouve pas que Yolfi propose le même réglage.
Paiements excessifs : séparer la vente du trop-perçu
Un client doit 100 USDT et envoie 105 USDT. Si le paiement respecte par ailleurs les conditions d'acceptation, affectez 100 USDT à l'achat et suivez 5 USDT comme trop-perçu non résolu. Ne considérez pas par défaut la différence comme un revenu supplémentaire ou un droit à davantage de produits.
Demandez au client de choisir une solution disponible et conforme à votre politique : un remboursement ou un avoir expressément convenu. Expliquez les frais applicables avant l'accord et vérifiez les obligations locales en matière de consommation et de comptabilité. Un faible montant n'autorise pas à conserver des fonds sans en informer le client.
Distinguez aussi un transfert trop élevé d'un doublon. Deux transferts de 100 USDT pour un seul achat de 100 USDT constituent deux versements, et non un versement corrigé. Conservez les deux enregistrements de transaction, exécutez une seule fois et examinez séparément les 100 USDT supplémentaires.
Paiements tardifs : l'expiration ne règle pas le sort des fonds reçus
Consignez séparément l'échéance de la demande de paiement, l'heure de détection du transfert et l'heure de confirmation. Un paiement détecté avant l'expiration mais confirmé après diffère d'un transfert reçu pour la première fois après l'expiration du devis. Appliquez la règle documentée ; n'inventez pas de délai de grâce universel.
Pour les versements tardifs, vérifiez :
- si le prix initial reste valable ;
- si le stock, la capacité ou l'accès sont toujours disponibles ;
- si une autre demande a déjà réglé la même commande ;
- si un remboursement, un avoir ou une remise a déjà été approuvé.
Une demande libellée en jetons pour 100 USDC et une demande libellée en monnaie fiduciaire convertie en crypto n'ont pas nécessairement la même politique de paiement tardif. Conservez le devis initial et communiquez tout nouveau devis au lieu de modifier rétroactivement le prix.
Si une demande de remplacement est nécessaire, reliez-la à la commande initiale dans vos dossiers et avertissez le client de ne pas payer les deux. Continuez de surveiller l'ancienne tentative. Clôturer une demande d'assistance n'empêche pas un transfert déjà soumis d'être confirmé plus tard.
Rembourser en toute sécurité sans créer un second incident
Un remboursement est un paiement sortant distinct, et non une modification du transfert entrant. L'explication du service sans garde de Yolfi indique que les paiements vont directement au portefeuille configuré par le commerçant. Ne supposez pas que Yolfi détient un solde remboursable ou restitue automatiquement un trop-perçu.
Avant d'autoriser un remboursement :
- Confirmez le versement initial, la réclamation du client et le montant restant remboursable.
- Authentifiez le demandeur via le canal client habituel.
- Recueillez et vérifiez l'actif, le réseau et la destination prévus pour le remboursement. Ne renvoyez pas aveuglément les fonds à l'expéditeur de la transaction : l'adresse peut appartenir à une plateforme d'échange ou à un autre intermédiaire.
- Convenez du remboursement brut, du traitement des frais et du montant net attendu, sous réserve des obligations applicables.
- Exigez une approbation conforme à votre politique de sécurité des portefeuilles ; consignez le motif et la personne ayant approuvé.
- Enregistrez la référence de la transaction sortante et vérifiez son résultat avant de marquer le remboursement comme terminé.
Ne demandez jamais de phrase de récupération ni de clé privée. Si la soumission d'un remboursement dépasse le délai d'attente, examinez l'état de sa transaction avant de le renvoyer. Une réponse incertaine ne prouve pas qu'aucun paiement n'a été diffusé sur le réseau.
Rendre chaque résolution idempotente
L'idempotence signifie qu'une nouvelle tentative ne peut pas répéter une action métier. Les recommandations de Stripe sur les webhooks décrivent les événements en double et l'absence d'ordre garanti chez Stripe ; c'est une référence technique utile, pas une description des garanties de livraison de Yolfi.
Pour votre propre intégration :
- Authentifiez les notifications avec la procédure de vérification documentée par le prestataire.
- Enregistrez durablement les événements entrants et dédupliquez-les à l'aide des identifiants documentés.
- Identifiez chaque versement par son réseau et sa référence de transaction, ainsi que par un indice de transfert ou d'événement lorsqu'une transaction contient plusieurs transferts pertinents.
- Imposez une seule affectation par versement et une seule exécution par commande au moyen de contraintes de base de données ou de contrôles transactionnels équivalents.
- Réservez une opération de remboursement approuvée avant son envoi pour empêcher des processus concurrents de l'envoyer deux fois.
Un webhook répété n'est pas un autre paiement. Un second transfert valide est un autre versement, mais n'autorise toujours pas une seconde livraison. Rapprochez les exceptions avec les preuves du portefeuille et les registres commerciaux avant de les clôturer.
Questions fréquentes
Faut-il accepter un paiement auquel il manque une somme infime ?
Uniquement dans le cadre d'une politique approuvée du commerçant. Consignez la remise séparément et vérifiez comment le paiement est reconnu ; ne supposez pas qu'une tolérance automatique existe.
Un trop-perçu doit-il déclencher un remboursement automatique ?
Pas sans vérifier la titularité, la destination, le montant et les contrôles contre les doublons. Placez le trop-perçu en attente d'examen, sauf si un processus testé et autorisé le traite en toute sécurité.
Deux transferts partiels peuvent-ils régler une commande ?
Vos registres peuvent affecter plusieurs versements si votre politique l'autorise. La reconnaissance de ces versements comme un ensemble par le prestataire de paiement doit être vérifiée séparément.
Conclusion : solder l'écart, pas seulement clôturer la demande
Commencez par un lien de paiement Yolfi clair, puis tenez un registre des exceptions du commerçant en parallèle du dossier de paiement. Ne clôturez un cas que lorsque l'affectation à la commande, la décision d'exécution, le solde restant et les éventuels remboursements ou avoirs concordent. Vous éviterez ainsi qu'un petit écart de montant ne se transforme en second paiement, en double livraison ou en remboursement dangereux.
