En fin de période (défaut)
cancelAtest posé àcurrentPeriodEnd. Le statut ne change pas : le client a payé jusque-là, il garde l’accès.- Un cron quotidien (3 h UTC) passe l’abonnement
canceledune fois la date atteinte, quel que soit son statut à ce moment — y comprispausedoupast_due. - Plus aucune facture ni rappel ne part pour le cycle suivant. Si sa facture anticipée avait déjà
été émise à J-3, elle est annulée (
void) au moment où l’annulation s’exécute.
200
Il n’existe pas de route pour révoquer une annulation programmée. Un second
cancel la
reprogramme (même date), il ne l’annule pas. Pour garder le client, il faudra recréer un
abonnement à l’échéance.Immédiatement
status: "canceled",canceledAtposé,cancelAtremis ànull.- La facture anticipée du cycle suivant est annulée dans la même transaction : si cette annulation échoue, rien n’est annulé et l’appel rend 500 — réessayez.
- Aucun remboursement n’est déclenché.
L’événement subscription.canceled part deux fois
C’est le piège de cette route. Sur une annulation programmée :
Une annulation immédiate n’en émet qu’un, avec
status: "canceled".
Pendant un essai
PréférezcancelImmediately: true : voir Essais.