As of June 7, 2017, we have changed the behavior when a subscription is resumed after being on hold.
We discovered a problem when automatically resuming a subscription. If a payment was due and it failed, the subscription would attempt to resume every hour, increasing the balance and re-trying the card on file.
Going forward, a subscription will only attempt to resume once, after which it will either transition to Active, or, if a payment is due and the payment fails, it will follow the dunning strategy configured for the site. (It is also possible for the subscription to transition to canceled or expired, depending on the dunning strategy, product settings, or whether there was a pending cancellation.)
In addition, the API will now respond with a 402 Payment Required if a payment fails when you attempt to resume a subscription from the on_hold status. The errors in the response will show the memo from the failed payment. You will need to make another API call to retrieve the subscription to find out more information such as its new state and its amount due.