Cancel now, but don't send webhook until date of next invoice?
Hey,
So this is a problem I've had for a long time but I've never really thought to ask you guys about it. Maybe I'm missing something. Quite often, clients will ask me to cancel their account mid billing cycle. But I have to tell them to send me another email just before their cycle is up, because if I cancel them now it will be effective immediately. This is because we cancel the plan on our end when we receive a cancellation webhook from Cheddargetter.
Is there a better way to do this? I thought I could delete the payment method, so that when the next bill comes it would fail. But when I tried updating the client's payment information to "No billing method," nothing happened. It just retained the old billing method.
Thanks,
Miles
Discussions are closed to public comments.
If you need help with Cheddar please
start a new discussion.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
1 Posted by Dean on 07 Aug, 2012 01:58 PM
Hi Miles,
It seems you may be using a boolean value in your system to determine whether a customer is active. If this is the case, you might consider using a datetime instead. Use that value to decide whether or not your client is active. Based on your post, it sounds to me that you'd want to use the current invoice billingDatetime as the cancellation date. Below is the data name for billing date/time CheddarGetter uses in its webhook.
subscription[invoice][billingDatetime]
The billable moment for the invoiceHope this helps!
Dean
2 Posted by Miles Richardso... on 08 Aug, 2012 04:19 AM
The problem is that we offer a service that is largely used when the client
is NOT on our website, and we cannot check their cancellation datetime
every time they use their account. Instead, it seems like the only thing we
can do right now is log every cancellation as a new entry in the DB along
with the nextInvoiceDate (is this possible to get from the webhook??). Then
we can run a job every couple minutes to cancel all accounts in the
cancellations table with a nextInvoiceDate prior to now.
While that seems like a viable solution, it also seems to be straying a
little to far into the "implementing it myself" territory. After all, you
guys are the subscription service so I would like to keep as much
subscription related stuff as possible on your end.
What do you think? The most important question here is whether I can get
the next invoice date from the cancellation webhook. If I can do that I
will go ahead and build the cron job.
Miles
Support Staff 3 Posted by Marc Guyer on 08 Aug, 2012 12:42 PM
When I read your previous statement, "This is because we cancel the plan on our end when we receive a cancellation webhook from Cheddargetter.", I assumed that you were storing the cancellation state in your system.
Yes. That what the
subscription[invoice][billingDatetime]
is.That sounds like a solution but I'd like to better understand how an account is canceled in your system. Is it simply flagged as canceled? Is it removed from the system? What indicates a canceled account?
I think there's probably another solution that doesn't include a cron or any changes with how CG behaves.
4 Posted by Miles Richardso... on 09 Aug, 2012 07:03 AM
Hey Marc,
I'll copy and paste this from the email I just sent in my other ticket:
"My service is renting proxy servers. My application is nothing more than a
management application that interfaces with APIs on the proxy servers. It
needs to know exactly when a subscription is activated so that it can hit
the proxy servers' APIs to create the proxy accounts. It needs to know
exactly when the subscription is cancelled so it can hit the proxy server's
APIs to remove the proxy accounts. For this reason, I cannot rely on the
user logging into my management site or not."
Hopefully that clarifies how my system works. If you have any
recommendations for how to deal with cancellation at the end of the billing
period given the constraints above, I would love to hear them. Otherwise, I
think I have a handle on how to do it with cron jobs, but I would really
rather avoid that.
Thanks,
Miles
Support Staff 5 Posted by Marc Guyer on 13 Aug, 2012 02:22 PM
I see. It seems that some sort of scheduled job will be necessary.
Dean closed this discussion on 23 Jan, 2013 03:39 PM.