Proposal:
In ERPNext, all Sales Invoice behave like a Partial/Final Invoice, meaning that they sell actual quantities of an item or service at a certain rate.
What we need in addition to Sales Invoice, is something called Invoice on Account. This is basically just a document telling the customer “for all the (unfinished) work I did so far, please pay me a lump sum X in advance.” We cannot bill specific items here because we don't know which specific items correspond to the lump sum and it would be practically impossible to match them exactly. Billing of a percentage of all items also does not make sense here (what does 20% of a window pane even mean, and why do we charge it at this point?).
On the Invoice on Account we need to charge VAT for the advance amount. This is required so the customer can claim input tax. However, we become liable for VAT only at the time of payment, for the actual amount received. Since we did not deliver any finished work, we don't book any receivable at this point.
The receipt of this amount should be recorded as an advance payment against the Sales Order and liability against the customer. Payment Entry against the Sales Order should be created from the Invoice On Account.
After the job (or some clearly separable part of it) is finished, the user crates a Sales Invoice (Partial/Final) and fetches any advance payments to be deducted from the total. This needs to include any VAT paid on advance payments.
So the flow for advance payment could be (optionally): Sales Order > Invoice On Account > Payment Entry
All craftsmen in Germany currently need this.
This can also be fashioned as an Advance Receipt Voucher in India perhaps (https://www.teachoo.com/6361/1947/What-is-Receipt-Voucher-in-GST/category/GST-Invoice-Format/) with regional custom fields for GSTIN, etc.
Ref: https://www.deskera.com/blog/advance-invoice/

Alternatives considered:
Proforma Invoice does not work with Lump Sum amounts (item and qty is required), neither does it show exactly how much advance is being requested
Further Reading
Related issue: #42843
Proposal:
In ERPNext, all Sales Invoice behave like a Partial/Final Invoice, meaning that they sell actual quantities of an item or service at a certain rate.
What we need in addition to Sales Invoice, is something called Invoice on Account. This is basically just a document telling the customer “for all the (unfinished) work I did so far, please pay me a lump sum X in advance.” We cannot bill specific items here because we don't know which specific items correspond to the lump sum and it would be practically impossible to match them exactly. Billing of a percentage of all items also does not make sense here (what does 20% of a window pane even mean, and why do we charge it at this point?).
On the Invoice on Account we need to charge VAT for the advance amount. This is required so the customer can claim input tax. However, we become liable for VAT only at the time of payment, for the actual amount received. Since we did not deliver any finished work, we don't book any receivable at this point.
The receipt of this amount should be recorded as an advance payment against the Sales Order and liability against the customer. Payment Entry against the Sales Order should be created from the Invoice On Account.
After the job (or some clearly separable part of it) is finished, the user crates a Sales Invoice (Partial/Final) and fetches any advance payments to be deducted from the total. This needs to include any VAT paid on advance payments.
So the flow for advance payment could be (optionally): Sales Order > Invoice On Account > Payment Entry
All craftsmen in Germany currently need this.
This can also be fashioned as an Advance Receipt Voucher in India perhaps (https://www.teachoo.com/6361/1947/What-is-Receipt-Voucher-in-GST/category/GST-Invoice-Format/) with regional custom fields for GSTIN, etc.
Ref: https://www.deskera.com/blog/advance-invoice/
Alternatives considered:
Proforma Invoice does not work with Lump Sum amounts (item and qty is required), neither does it show exactly how much advance is being requested
Further Reading
Related issue: #42843