If the purpose of the function is to calculate the account balance of the customer, I am going to assume that the customer is already created and contains an account balance. I am also going to assume that customerId is unique for each customer, so the account balance can be calculated (retrieved) by just using the customerId. Having said all this, if all you need is the customerId to create the balance, then just passing the id in is fine, but if you need other properties on the customer object, then passing in the whole customer may be a better idea or you may pass in multiple parameters instead.
As an example, if you were to create the balance solely based on the customerId, you might do something like this in your Balance() method (this looks more like a retrieval than a calculation though):
decimal balance = from c in Customers
where c.CustomerId == customerId
select c.Balance;
As shown above in the linq query, if all you need is customerId, then go ahead and just pass that in, but if you need other properties, pass in the whole customer or pass in more parameters. Looking at it further, you mentioned that this is for calculating the balance, so that would tell me that you might need more than just the customerId, so maybe passing more parameters or the whole object would be better in that case.