Manual Retry retente immédiatement le paiement de renouvellement d’un abonnement échoué lorsque vous le demandez, depuis la page des détails du paiement ou via l’API. Le paiement est effectué avec le moyen de paiement enregistré sur l’abonnement, indépendamment du calendrier de Payment Retries automatique.
Qu’est-ce que Manual Retry ?
Lorsqu’un paiement de renouvellement échoue, l’abonnement passe àon_hold et Payment Retries retente le débit selon un calendrier de temporisation. Vous savez parfois que le paiement peut maintenant aboutir : le client vous a confirmé avoir approvisionné son compte, ou votre équipe d’assistance est en ligne avec lui. Manual Retry vous permet d’effectuer immédiatement une tentative au lieu d’attendre plusieurs heures ou jours la prochaine tentative planifiée.
- Paiements de renouvellement uniquement : Manual Retry s’applique aux factures de renouvellement d’abonnement lorsque l’abonnement est
on_hold. Les premiers paiements, paiements ponctuels, frais liés à un changement de plan et frais à la demande ne sont pas éligibles. - Aucune action du client : le débit est effectué sur le moyen de paiement déjà enregistré sur l’abonnement.
- Indépendante des tentatives automatiques : une nouvelle tentative manuelle ne consomme pas de tentative du calendrier automatique, ne décale pas la prochaine tentative planifiée et fonctionne même lorsque Payment Retries est désactivé.
- Nouvelle tentative sur la facture, pas sur le paiement : un paiement échoué n’est que le point de départ. Dodo Payments recherche la facture de renouvellement ouverte correspondante et recouvre cette dette ; le paiement échoué à partir duquel vous effectuez la nouvelle tentative n’a donc aucune importance.
Effectuer une nouvelle tentative depuis le tableau de bord
1
Open the failed payment
Accédez à Transactions → Payments et cliquez sur le paiement de renouvellement échoué pour ouvrir sa page Transaction details.
2
Click Retry Payment Manually
Cliquez sur Retry Payment Manually dans l’angle supérieur droit. Le bouton est disponible uniquement lorsque le paiement est éligible.
3
Check the result
Un nouveau paiement est créé pour la tentative et apparaît dans l’Activity Log. Si le débit réussit, l’abonnement revient à
active et la prochaine date de facturation est décalée comme prévu. Si le processeur de paiement n’a pas encore finalisé le débit, le paiement apparaît comme en cours jusqu’à ce que le webhook payment.succeeded ou payment.failed indique le résultat.
Retry Payment Manually on the transaction details page of a failed renewal
Éligibilité
Une nouvelle tentative manuelle est envoyée uniquement lorsque toutes les vérifications ci-dessous sont validées. La colonne Reason code correspond à la valeur renvoyée par l’API : dansreason sur GET /payments/{payment_id}/retry, et sous forme d’erreur code sur POST /payments/{payment_id}/retry.
Manual Retry est plus restrictive que les tentatives automatiques sur un point : l’abonnement doit être
on_hold. Les tentatives automatiques continuent de fonctionner pour les autres statuts non actifs ; consultez Subscription Status Transitions.Limites des nouvelles tentatives
Chaque facture de renouvellement autorise 3 nouvelles tentatives manuelles, avec une période d’attente entre chacune :
Les limites s’appliquent aussi bien en mode test qu’en mode live. Lorsqu’une nouvelle tentative est refusée pour cette raison, l’API renvoie
MANUAL_RETRY_LIMIT_REACHED (HTTP 429). Le corps de l’erreur contient uniquement code et message. Pour savoir quand la prochaine tentative sera disponible, consultez l’état de la tentative et lisez retry_available_at. Il est null une fois les trois tentatives utilisées.
Les tentatives automatiques ne comptent pas dans cette limite, et les tentatives manuelles ne comptent pas parmi les 8 tentatives du calendrier automatique.
Tentatives manuelles et automatiques
Effectuer une nouvelle tentative via l’API
Vérifiez d’abord l’éligibilité, puis envoyez la nouvelle tentative. Les deux endpoints acceptent l’ID d’un paiement échoué.Vérifier si un paiement peut faire l’objet d’une nouvelle tentative
GET /payments/{payment_id}/retry n’échoue jamais pour un paiement non éligible. Il renvoie plutôt can_retry: false avec le code reason, afin que votre tableau de bord ou vos outils d’assistance puissent afficher le même état que le tableau de bord Dodo Payments. Il nécessite le rôle Viewer.
Response
Envoyer une nouvelle tentative manuelle
POST /payments/{payment_id}/retry crée un nouveau paiement et débite le moyen de paiement enregistré. Il nécessite le rôle Editor.
Response
Réponses d’erreur
Chaque code est décrit dans la référence Error Codes.
Webhooks
Une nouvelle tentative manuelle crée un paiement standard ; les mêmes webhooks sont donc déclenchés que pour toute tentative de renouvellement :
Sur l’objet de paiement de ces événements,
retry_attempt est 1 ou supérieur et subscription_id est défini, exactement comme pour une nouvelle tentative automatique. Conservez payment_id de la réponse de nouvelle tentative si vous devez distinguer une tentative manuelle d’une tentative planifiée.
Payment Webhook Payloads
Schémas complets des payloads des événements de paiement.
Pages associées
Subscription Payment Retries
Le calendrier automatique de temporisation qui fonctionne en parallèle des nouvelles tentatives manuelles.
Subscription Dunning
Envoyez un e-mail au client pour lui demander de mettre à jour son moyen de paiement après un hard decline.
Handle Payment Failures
Lisez les codes de refus et déterminez quand une nouvelle tentative vaut la peine.
Error Codes
Chaque code
MANUAL_RETRY_*, son déclencheur et son message.