Track billing and payments easily in Asana with a numeric dollar amount custom field (requires any paid plan). You can also use this for loans and repayments. Use a positive number for the amount billed, a negative number for each payment, and see the current balance automatically at the foot of each section. See Customer 1 - Project 1 below for a simple example.
Recurring (weekly, monthly) payments are a breeze by setting the Due date to repeat; marking complete will add the next recurrence below the prior one. See Customer 2 - Project 1 below:
If you need to track engagements and hours, a similar approach with a simple hours numeric custom field works. Here I enter the total hours as a negative number to permit the many subsequent individual entries to be logged a little more easily as positive numbers. This shows there are 48 hours left to complete the engagement:
It’s not QuickBooks, and there are many constraints, but if all you need is something like this, I find it easier to use Asana and contribute to the economies of scale with widespread Asana usage–where applicable.
Larry