Check following screenshots to get an idea what sorts of details required to capture
FreshBook
MakeLeap
InvoiceBerry
Few points to keep in mind
Every invoice needs a unique autogenerated number which should be incremental. However user should be able to change it at the time of create/edit. Make sure the number is unique across application per business.
Don’t regenerate invoices when details such as the address change: Invoices should be immutable. So if client changes to new address, old invoice should must not reflect this change.
Check following screenshots to get an idea what sorts of details required to capture
FreshBook
MakeLeap
InvoiceBerry
Few points to keep in mind
Check http://www.davidverhasselt.com/2013/09/04/3-invoicing-tips-for-saas-businesses/ for more details for above points