In my earlier 3-part blog series on Reserved Instances (RI), I had talked so far about estimations, savings and the bill tracking. Another point for completeness of this series is a discussion on refunds.
If at any point during the usage of RI, you conclude that RI isn’t effective, or the business need itself is over, then you can cancel the RI. Based on pro-rated consumption (from start till date) and some % as early terminations fees, Microsoft (MS) will calculate the cost consumed so far and refund the balance amount.
On cancellation, you (Organization Admin) will receive a mail with the subject line as something like – “Azure Virtual Machines Reserved Instance <reservation name> was canceled”. The mail contains details like the purchase date, reservation order ID, reservation name and some other data points. The important item to note here is the purchase date and reservation order id. Since the RI is a one-time payment, applied on the purchase date, any refunds that are applicable on cancellation are also applied back to the same date.
To find the exact refund amount (if any), you can call the RI API, set the startDate as the purchase date (endDate can be any later date). In the response you obtain, you can track the specific refund entry by referring to the reservation order ID and the field ‘eventType’.
The eventType field can be any of purchase/cancel/refund. Purchase is probably the most seen value, as it happens when a new purchase is made. Cancel is more for incorrect purchases made. Refund is the case where in you start to use the RI, but somewhere later, need to cancel it for whatever reasons.
I would have personally liked MS to provide the refund price in the email on cancellation itself, so that it avoids one additional step on our side to query and get back the refund amount. Till that happens and if that happens, querying using the APIs is the way to get to know the $ refund value and make internal adjustments required for your organization.
Hope this helps, and as always, I would be open to have any discussions on this topic.