0

This question is in accordance with the details provided about user subscriptions in the Microsoft Store's Get subscriptions for User API.

enter image description here Referring to the image above, the user purchases a monthly auto renewing subscription plan on Day 0 which is expected to be renewed by the store on Day 30. We have renewal jobs running every six hours that pick the candidates nearing expiration in the next 6 hours or so.

So, somewhere on the 29th day our renewal job will run to check if the store has already charged the user for renewal. Different scenario states may occur at the time the job runs:

  1. User's subscription had been already renewed for the next cycle.
  2. User's subscription is yet to be attempted for renewal by the Store (unlikely).
  3. User has opted to turn off the renewal for the next cycle.
  4. Store was unable to charge the user and is retrying the billing.
  5. User's subscription was canceled by the developer (with or without refund).

Based on the documentation, there are two properties of interest which can help us identifying the scenarios above:

  1. recurrenceState
  2. expirationTime

Based on our understanding we have come up with this table for the above scenarios:

Case #             Recurrence State           Expiration Time

   1                  Active                     Day 60

   2                  Active                     Day 30

   3                  Active                     Day 30

   4                  InDunning                  Day 30

   5                  Canceled                   Less than day 30

Questions

  1. Is there a way we can distinguish between case 2 and 3?

  2. Also, we may choose to ignore case 2 because it is highly unlikely. But we would still require date calculations to be done to distinguish between Case 1 and 3, since both dates are future dates from the current date. Is there a better way for that rather than relying on date calculations?

  3. Case 2 is unlikely because Microsoft Store starts charging the user 14 days in advance of the renewal date. If the billing fails, it falls into state 4. Now let's say Store charges the user on day 14 and he turns off the subscription on Day 20 (for the next cycle), will the user be refunded by Microsoft and how would that state reflect in the API response.

P.S:

  1. We are still good if we have to check date is past or future from the current date.

  2. It wouldn't be possible for the renewal job running after the 30th day to pick the candidates since our downstream system would automatically cancel the subscription if it is not renewed till day 30 and we do not have the control to change that logic in the downstream system.

mickeymoon
  • 4,820
  • 5
  • 31
  • 56
  • For your question 3, the customer may be not refunded by Microsoft.The customer can cancel the subscription at any time to avoid further charges, they do not get a refund for any part of the current billing period. You can see this in [Cancellations](https://learn.microsoft.com/en-us/windows/uwp/monetize/enable-subscription-add-ons-for-your-app#cancellations). – DasiyTian_1203 Sep 25 '19 at 03:04
  • Which means that if a customer chooses to cancel the subscription renewal on day 20 when the store has already charged them on day 15, the customer will be bound to use (and pay) the subscription for another month. That's nasty. The link mentions that refund is not provided for current billing period. My concern is about the upcoming period. – mickeymoon Sep 25 '19 at 11:30
  • Are you sure your customer will pay immediately when he subscribe on 15th? – DasiyTian_1203 Sep 30 '19 at 01:20
  • I'm not sure. This section of the link (https://learn.microsoft.com/en-us/windows/uwp/monetize/enable-subscription-add-ons-for-your-app#subscription-renewals-and-grace-periods) says: `At some point during each billing period, we will attempt to charge the customer's credit card for the next billing period. If the charge fails, the customer's subscription enters the dunning state.` – mickeymoon Sep 30 '19 at 07:17
  • And, this one: `This state can last up to two weeks, until the end of the current billing period and the renew date for the next billing period.` I make that inference from the two statements above. – mickeymoon Sep 30 '19 at 07:21
  • Microsoft may bill users (a) in advance; (b) at the time of purchase; (c) shortly after purchase; or (d) on a recurring basis for subscriptions. So you need to know which method your customers paid and determine if your subscription the to the return policy. you could go to [MICROSOFT TERMS OF SALE](https://www.microsoft.com/en-us/storedocs/terms-of-sale) for more details. – DasiyTian_1203 Oct 04 '19 at 02:25

0 Answers0