Not receiving webhook notification for cancelled subscriptions


I am working with the Flutterwave subscription endpoints, but I am facing some issues related to webhook notifications.

if I subscribe a user to a payment plan I get a webhook notification about the status of that action but when I cancel the subscription I am not getting any notification.

Can somebody tell me what I am missing? :pray:

Hi @Oluwatosin_Ojo

Thank you for sharing this experience,

Webhooks for cancelled Subscriptions are only sent when a customer cancels a subscription via the cancellation link in our email reminders.

@Adekunle Why is this the case? How are we supposed to handle scenarios where a user cancels their subscription (or we do it via the dashboard) partway through the period. Generally in these cases you give the user access to whatever they are subscribing to until the end of the period. But it seems the best we have is the status of the subscription, which will already be set to cancelled. How do we know when it would have been time to charge the user again, so that we can stop giving them access to whatever they are subscribed to?

Hi @Scott_Morgan

Thank you for raising your concerns.

Currently, we only send webhooks for cancelled subscriptions when a customer cancels their subscription using the cancellation link provided in our email reminders. However, after carefully considering feedback from both our team and community members, we understand the importance of having consistent behavior for webhooks, regardless of whether a customer cancels their subscription via API call or the cancellation link in the email reminders. This consistency will provide merchants with a complete and up-to-date view of their customers’ subscription statuses.

Rest assured, we are actively working on implementing this improvement. I will make sure to keep you updated on the progress here.

If you have any further questions or suggestions, please don’t hesitate to let us know.


Thanks, @Adekunle. Is there a way to know when the user has paid through? As an example, say we have a monthly subscription where the user signs up on 2 July and makes their first payment. This pays them until 2 August, single the frequency is monthly. You then automatically charge them again on 2 August, which is their payment until 2 September. Now suppose they cancel on 27 August. The status of the subscription will be set to cancelled, but they have already paid through 2 September. Is there a way to know this from the API?

My only solution is to infer from the webhooks for successful payment when the next payment should occur, store this value, and consider them paid up until then, regardless of wether they cancel or not. This seems like information better tracked on your end, though.

There doesn’t even seem to be a clean way to get all payments made for a given subscription id, so we would be 100% reliant on the webhooks without a good way to reconstruct the data if a message gets dropped.