The docs about Subscription.getBalance()
say
The amount of outstanding charges associated with a subscription.
I noticed that I can achive a negative balance as well by granting a credit voucher in form of a discount but this is unfortuntely not mentioned in the docs.
A few quetions come to mind:
Full disclosure: I work at Braintree. If you have any further questions, feel free to contact support.
The ability to have a negative balance on a subscription is intended functionality. Some merchants may give several months "free" by creating a discount that will show as a negative balance. When a subscription has a negative balance and is then charged for the next billing cycle, the negative balance will be used in place of charging them. For example, a customer has a negative balance of $20 on their subscription on a $30 per month subscription. On the next billing cycle they will be charged $10 (with $20 covering the negative balance).
If a subscription with a negative balance is cancelled that will be up to the merchant to determine how to handle. Refunding customers for transactions is certainly allowed and if you need to issue a refund to a customer you are able to do so.
For more information about negative balances and what refunds may pose problems I would recommend reaching out to support for more information. They will be able to walk through specific scenarios with you in greater detail.