Billing Module (Fee) for School Management System
In addition to seconding Joel Brown's comment I would like to suggest a couple things to help.


If this is for internal use only start with open source accounting and ERP db's.  For example, LedgerSMB or Adempiere.  Also do this if you are releasing open source.  If you are not releasing open source, consider interoperating with such software for billing.  I would be happy to help (conflict of interest alert).
Look specifically at batch processing and review requirements.  This allows human review as to how much money is owed before the money hits the books.


One thing we are doing in LedgerSMB is to have the possibility of "template transactions" which can then be copied out and filled in (possibly by automatic processes).

Accounting is a large field but if you are handling billing you really need to know it.

Along these lines, I don't really see anything wrong with what you have posted but it is quite incomplete.  You need line items for the invoices, and you need line items for the payments.  In this way it becomes a lot simpler to track how much is owed.  You may also want to separate out students from customers in case one parent has multiple children enrolled in the school.