I modelled our subscriptions as a single subscription with a billing period plan such as "wizenoze monthly plan" and recurring addons for some products "editor subscription" and non-recurring addons with a quantity for other products "site search 1000 credit package". I can create a credit note to reverse the charge for the non-recurring addon, but there doesn't seem to be a way to remove it from the subscription completely without cancelling the entire subscription. What's the correct method to handle this?
Quick question, are you looking to remove the non-recurring addon listed under "Non Recurring Items (till date)" section in the subscriptions details page?
Though the addon will continue to be listed in this section, since it is non-recurring, it will only be included in the subscription invoice once.
Alternatively, are you looking to remove the addon from the invoice? If yes, you can use the "switch to line item mode" option in the Create Credit Note action and "remove" the non-recurring addon line item.
I found the way to remove it from the invoice, but the problem is that it still appears on the subscription. So even though after reversing the charge the customer has effectively not paid for the non-recurring addon, they still get access to it (unless I do the same reversal in our system and don't do a full sync with the Chargebee subscription).
Ideally I'd like to remove the non-recurring addon from the subscription completely.
Could you tell us how you're syncing the subscription details to your system? When you remove the non-recurring addon, how are you looking to disable access to it for the customers at your end?
At the moment I'm just using the webhook events to stay in sync. And an api call to link our accounts to a customer in Chargebee.
I create a subscription in CB with addons which map to our products, e.g.
- site_search_credits 1000 (non-recurring)
- wizenote basic (recurring)
- admin fee (recurring)
So in this case when I get the addons as invoice line items, I give our user access. If I get a credit note for a non-recurring addon I'll remove access, but it still appears on the subscription. Recurring addons I can sync via the result.addons object to check for addition/removal. If I add code to re-sync using the API then I'll see the non-recurring addon as valid, unless I go through all the credit notes too. So I'll just have to avoid using a re-sync.
Technically I can handle things correctly, but our sales people are going to get confused if they've removed a non-recurring addon but it still shows on the subscription.
Since you're listening to webhook events to sync your site, you can listen to the invoice_updated and the credit_note_created" events that are triggered when you create the credit note for the non-recurring addon on the invoice.
Note that the non-recurring addon will not be present in the subscription object since it is not a recurring item. However, it will be present with the invoice object in the line_items block. Even after you remove the non-recurring addon(by creating a credit note), it will still be listed under the invoice line items.
But the "invoice_updated" event will also contain the "adjustment_credit_notes" details that you can use to disable access for the non-recurring addon service at your end.
So when you say "but it still appears on the subscription", do you mean on the subscription page on the web interface? If yes, I understand that we need to add some additional details stating the duration for which the addon was applied or if it has been removed. I will pass this as a feedback to our team so they can take it up during our UI revamp.
Now that the consolidated invoicing is available, it looks like my addons workaround to get a single invoice is unnecessary. So I'll just have separate subscriptions for each of our products. Much easier to manage.
Just waiting on Meena to turn the features on for us.
Ok, I have consolidated invoicing now, but I still have issues trying to reverse or change non-recurring addons.
With consolidated invoicing I can at least keep the credit package subscriptions separate. And add non-recurring addons as users top up their credits. So I have a subscription wizenote_credit_nl with non-recurring addon wizenote_credit_large_nl added with different amounts throughout the subscription lifespan.
If the invoice isn't paid, then it's just a case of deleting the invoice and adding the addon again. This removes the non-recurring addon from our system and Chargebee's. Voiding the invoice doesn't work because I still see 'wizenoze_credit_large_nl' under 'Non Recurring Items (till date)' on the subscription.
If the invoice has been paid it's a problem, because I can't delete it. And if I refund the invoice, then I get a credit note and end up with two of the non-recurring addons showing under 'Non Recurring Items' on the subscription (as shown in screenshot). My end goal is that if an invoice has been paid and the user wants a refund, that I can refund the money and remove wizenote_credit_large_nl x 770 from the subscription completely, while leaving any other non-recurring addons intact. What's the proper workflow for this?
Sorry for the delay in responding. We'll check this and get back to you.
We've identified a bug at our end due to which the Addon appears twice under the 'Non Recurring Items' section when you refund the invoice. Our team is working on fixing this at the earliest, we'll notify you once the fix is rolled out. Sorry about the trouble!
As for removing the refunded Addons from the 'Non Recurring Items' section, I'm afraid this wouldn't be possible. This section is only for reference and contains the list of all the non-recurring addons that were applied to the subscription till date.
We would recommend you to refer to the invoices list to understand which Addons are applicable for the current subscription and to infer the list of services the customer is eligible for.
Thanks Vaishnavi! We can deal with a single non-recurring addon appearing after a refund, and I'll use the webhook to remove it on our side. Would be better if the subscription in Chargebee matched the one in our system, but it'll do for now.
Thanks for understanding.
I'll certainly pass this as a feedback for our team to consider during future revamps!