# language: fr @api @premium @payment @mvp Fonctionnalité: Webhooks et retry automatique des paiements En tant que système de paiement Je veux gérer les échecs de paiement avec retry intelligent Afin de maximiser les conversions et minimiser le churn Scénario: Webhook Mangopay de paiement réussi Étant donné un abonnement Premium en cours Quand Mangopay envoie un webhook "PAYIN_NORMAL_SUCCEEDED" Alors le système enregistre le paiement Et l'abonnement est prolongé de 30 jours Et un email de confirmation est envoyé Et un événement "PAYMENT_SUCCESS_WEBHOOK_RECEIVED" est enregistré Scénario: Webhook de paiement échoué Étant donné un abonnement Premium Quand Mangopay envoie un webhook "PAYIN_NORMAL_FAILED" Alors le système programme un retry automatique Et l'utilisateur est notifié: "Échec de paiement. Nous réessayerons dans 3 jours." Et un événement "PAYMENT_FAILED_WEBHOOK_RECEIVED" est enregistré Scénario: Retry automatique après 3 jours Étant donné un paiement échoué il y a 3 jours Quand le système tente un retry automatique Alors une nouvelle tentative de prélèvement est lancée Et l'utilisateur reçoit un email: "Nouvelle tentative de paiement en cours" Et un événement "PAYMENT_RETRY_ATTEMPTED" est enregistré Scénario: Série de retries intelligents (3, 7, 14 jours) Étant donné un premier échec de paiement Alors le système programme: | Retry | Délai | Statut abonnement | | 1 | J+3 | Actif | | 2 | J+7 | Actif | | 3 | J+14 | Suspendu | Et après le 3ème échec, l'abonnement est annulé Et un événement "PAYMENT_RETRY_SERIES_CONFIGURED" est enregistré Scénario: Suspension de l'abonnement après 3 échecs Étant donné 3 tentatives de paiement échouées Quand le 3ème retry échoue Alors l'abonnement est suspendu Et l'utilisateur repasse en mode Free Et un email explique comment mettre à jour la carte Et un événement "SUBSCRIPTION_SUSPENDED_PAYMENT_FAILURE" est enregistré Scénario: Webhook de carte expirée Étant donné un abonnement avec carte expirant ce mois Quand Mangopay envoie un webhook "CARD_EXPIRING" Alors une notification est envoyée 30 jours avant Et rappelée 7 jours avant Et le jour de l'expiration Et un événement "CARD_EXPIRY_WARNING_SENT" est enregistré Scénario: Mise à jour de carte et reprise de l'abonnement Étant donné un utilisateur avec abonnement suspendu Quand il met à jour sa carte bancaire Alors un paiement est immédiatement tenté Et si succès, l'abonnement est réactivé Et les jours perdus sont récupérés pro-rata Et un événement "SUBSCRIPTION_REACTIVATED_AFTER_PAYMENT" est enregistré Scénario: Webhooks de remboursement Étant donné un utilisateur qui annule son abonnement Et demande un remboursement (satisfait ou remboursé 30j) Quand Mangopay envoie "PAYOUT_NORMAL_SUCCEEDED" Alors le remboursement est enregistré Et l'utilisateur reçoit confirmation Et un événement "REFUND_WEBHOOK_PROCESSED" est enregistré Scénario: Métriques de performance des retries Étant donné que 1000 paiements ont échoué Alors les indicateurs suivants sont disponibles: | Métrique | Valeur | | Taux de succès au 1er retry (J+3)| 45% | | Taux de succès au 2ème retry (J+7)| 25% | | Taux de succès au 3ème retry (J+14)| 10% | | Taux de récupération global | 80% | | Taux d'annulation définitive | 20% | Et les métriques sont exportées vers le monitoring