I've been reading about accounting patterns described by Martin Fowler in his book "Analysis Patterns - Reusable Object Models". I understood the basic concepts: account, entry, transaction, etc; but I am not quite clear when it comes to the money flow when external funds flow into the system. To make sure that no money is created or destroyed, I use transactions (2 legged) so that each entry in the transaction is the opposite of the other. Say I am a contractor, when a customer pays me $1000, how should I record this transaction?
What I can think of now is that I set up income accounts for customers: one customer will have one income account; I will have my balance account. When a customer pays me $1000, the transaction will have two entries: one with -$1000 on the customer income account, the other with +$1000 on my balance account. This way, it mimics the cash flow from the customer to me (the contractor). The customer income account will be decreased as the customer makes more payments, e.g. -$1000, -$2000, -$3000, etc. Does this make sense? Is there any better way to model this cash flow?
Thanks in advance for your help/advice.