use consistent response structures
The addition of reporting a contact's balances was a great addition, however I feel the response structure should be consistent, regardless of balances. Where any balances are $0, this should be reported as $0, instead of being removed. By removing the key, we are left only being able to test for the absence of data, which creates an assumptive logic.
I understand that removing keys for null values might be part of your api design (ie no email address entered doesn't return an empty <EmailAddress>, but technically, a customer always has a balance so there for the Balances data should always be returned, be it $200 or $0.