A: 

What's wrong with negative amounts?

It's fine to have a record of transaction types, but if you insist on all amounts being positive, you're up for a world of pain when trying to calculate totals. Simply store payments and other money-coming-in transaction types as positive amounts, and refunds, etc. as negative amounts. This also lets you do things like record a charge-back due to a mistake (e.g., charging the wrong account on the customer's card) as a negative payment, which is different to a refund.

Marcelo Cantos
A: 

Do different types of leases have different features? If not, then separating them out into separate tables accomplishes nothing, and adds to the complexity of both the database and the programmed application.

Having a single transaction table for all types of leases is almost certainly going to save you trouble later on.

I suggest you take a look at some of the solutions presented in Database Answers. There are lots of financial databases there. You might get a few hints.

Walter Mitty