Cancel now, but don't send webhook until date of next invoice?

Miles Richardson's Avatar

Miles Richardson

03 Aug, 2012 06:38 AM

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

  1. 1 Posted by Dean on 07 Aug, 2012 01:58 PM

    Dean's Avatar

    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 invoice

    Hope this helps!

    Dean

  2. 2 Posted by Miles Richardso... on 08 Aug, 2012 04:19 AM

    Miles Richardson's Avatar

    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

  3. Support Staff 3 Posted by Marc Guyer on 08 Aug, 2012 12:42 PM

    Marc Guyer's Avatar

    we cannot check their cancellation datetime every time they use their account.

    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.

    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??).

    Yes. That what the subscription[invoice][billingDatetime] is.

    Then we can run a job every couple minutes to cancel all accounts in the cancellations table with a nextInvoiceDate prior to now.

    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?

    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.

    I think there's probably another solution that doesn't include a cron or any changes with how CG behaves.

  4. 4 Posted by Miles Richardso... on 09 Aug, 2012 07:03 AM

    Miles Richardson's Avatar

    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

  5. Support Staff 5 Posted by Marc Guyer on 13 Aug, 2012 02:22 PM

    Marc Guyer's Avatar

    I see. It seems that some sort of scheduled job will be necessary.

  6. Dean closed this discussion on 23 Jan, 2013 03:39 PM.

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

Recent Discussions

28 Mar, 2024 10:45 PM
24 Jan, 2024 08:33 AM
11 Jan, 2024 07:13 AM
30 Nov, 2023 02:07 AM
22 Nov, 2023 08:41 AM