Échecs de paiement et relances
Le déroulé
Section intitulée « Le déroulé »flowchart TD
subgraph systeme["Système et Stripe"]
s1["Stripe signale un prélèvement échoué"]:::external
b["Paiement en échec"]:::problem
c["Première échéance : l'offre repasse à chiffrée<br/>Échéance suivante : la police ne bouge pas"]:::status
rec["Tâche de récupération<br/>7 jours après l'échec, 09h45"]:::action
p0["Paiement jamais terminé<br/>reste en attente"]:::status
u["Stripe annonce le prochain prélèvement"]:::external
mand["Stripe signale un mandat SEPA invalidé<br/>alerte Slack"]:::external
sub["Abonnement supprimé : paiements ouverts en échec,<br/>alerte Slack, aucun email, police conservée"]:::problem
dis["Litige : alerte Slack, aucun email<br/>Litige perdu : police annulée, commission reprise<br/>Remboursement fait dans Stripe : rapproché, aucun email"]:::problem
end
subgraph client["Client"]
m1["EMAIL : Paiement échoué<br/>À : contacts de la police, sinon cabinet et contact de l'offre<br/>Type : avertissement"]:::email
m3["EMAIL : Récupération d'une échéance échouée<br/>À : contact de l'offre<br/>Type : relance, lien de changement de carte 14 jours"]:::email
g["Change sa carte<br/>Stripe rejoue la facture"]:::action
m4["EMAIL : Rappel de paiement<br/>À : contact de l'offre<br/>Type : relance, lien 30 jours"]:::email
m5["EMAIL : Second rappel de paiement<br/>À : contact de l'offre<br/>Type : relance, lien 30 jours"]:::email
m6["EMAIL : Prochain prélèvement<br/>À : utilisateur client<br/>Type : avertissement, lien de connexion 14 jours"]:::email
m7["EMAIL : Mandat SEPA invalidé<br/>À : utilisateur client<br/>Type : avertissement, lien de connexion 14 jours"]:::email
end
subgraph courtier["Courtier"]
m2["EMAIL et PORTAIL : Paiement échoué<br/>À : tous les utilisateurs du cabinet, Inqase en copie<br/>Type : notification, email obligatoire"]:::email
end
s1 --> b
b -->|à chaque échec| m1
b -->|à chaque échec| m2
b --> c
b -->|échéance suivante| rec
rec -->|une fois, 09h45| m3
m3 --> g
p0 -->|3 jours après l'ouverture, 09h30| m4
p0 -->|14 jours après l'ouverture, 09h30| m5
u -->|avant le prélèvement| m6
mand -->|si une police existe| m7
classDef action fill:#ffe86d,stroke:#a28e26,color:#574900
classDef status fill:#9ce6ff,stroke:#2c97bb,color:#1c4657
classDef problem fill:#ffb575,stroke:#b8742f,color:#5a2d00
classDef email fill:#b8acfb,stroke:#8a7be0,color:#231266
classDef external fill:#e5e7eb,stroke:#9ca3af,color:#374151
Les emails d’échec partent à chaque échec signalé par Stripe ; les rappels ne couvrent que les paiements jamais terminés, pas les paiements échoués.
- Stripe signale l’échec : le paiement passe en échec, le client et le courtier reçoivent un email.
- Au premier paiement, l’offre repasse à chiffrée et redevient payable. Pour une échéance suivante, la police reste en place.
- Une échéance échouée depuis 7 jours reçoit un lien de changement de carte, valable 14 jours. Le client change sa carte et Stripe rejoue la facture.
- Un paiement jamais terminé reçoit un rappel à 3 jours puis à 14 jours.
- Avant chaque prélèvement, Stripe annonce l’échéance : le client reçoit un email avec un lien de connexion.
- Un mandat SEPA invalidé alerte l’équipe sur Slack et prévient le client s’il a une police active.
À valider en équipe
Section intitulée « À valider en équipe »- Un premier paiement échoué ne reçoit aucune relance : les rappels visent seulement les paiements restés en attente, la récupération seulement les échéances suivantes. Que fait-on du client qui a échoué une fois ?
- Chaque tentative échouée de Stripe renvoie l’email au client et au courtier. Combien de tentatives et à quel rythme ? Le réglage est dans Stripe, pas dans le code.
- Un simple échec de prélèvement n’envoie aucune alerte Slack à l’équipe (seuls l’abonnement supprimé, le mandat invalidé et les litiges en envoient). Qui suit les échéances impayées, et qui décide d’une résiliation ?
- Un abonnement supprimé passe les paiements ouverts en échec sans aucun email au client ni au courtier. Est-ce voulu ?
- Chaque rappel ne couvre qu’une fenêtre d’un jour : si la tâche planifiée ne tourne pas un jour, la relance est perdue. Faut-il un rattrapage ?
- Le cabinet peut recevoir deux emails d’échec (contacts de la police et notification du cabinet). Faut-il n’en garder qu’un ?
Règles et détails
Section intitulée « Règles et détails »Les règles des échecs, des litiges, des remboursements et de la reprise de commission sont dans Échecs, avenants et remboursements. Les notifications Stripe sont dans Paiements.
Où dans le code
Section intitulée « Où dans le code »app/Http/Controllers/StripeWebhookController.phpapp/Services/PaymentService.php,app/Console/Commands/RemindPendingPayments.php,RecoverFailedPayments.phpapp/Listeners/Broker/NotifyBrokerOfPaymentFailed.php,SendPaymentFailedNotification.phpapp/Listeners/Stripe/,routes/console.php