Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Record advance payment as a liability #34282

Closed
barredterra opened this issue Mar 2, 2023 · 7 comments
Closed

Record advance payment as a liability #34282

barredterra opened this issue Mar 2, 2023 · 7 comments
Assignees

Comments

@barredterra
Copy link
Collaborator

barredterra commented Mar 2, 2023

It is possible to fetch advances received into a Sales Invoice, reducing the payable amount. For this to work, the incoming advance payment currently has to be recorded as a negative entry on the receivable account. However, the advance payment is a liability for the receiving company, as long as the goods/services are not delivered. Recording the liability as a negative receivable violates the offsetting prohibition:

IFRS: Offsetting of assets and liabilities is only allowed under restrictive conditions.
German GAAP: Offsetting assets and liabilities is only allowed where an entity has a legally enforceable right to offset.
https://www.pwc.com/gx/en/ifrs-reporting/pdf/ifrs-vs-german-gaap-similarities-and-differences_final2.pdf (page 8)

Proposed solution

Advance payments need to be recorded on a separate liability account ("Advances Received"). In the invoice, we can fetch advance payments from this account. On submission of the invoice, the advance payment should be cleared and only the remaining amount left on the "receivable" account.

Example

Sales Order

Sales Order over 200 net total plus 19% VAT equals 238 grand total

Advance Payment Entry

Payment of 50% in advance, Payment Entry against Sales Order. VAT is due on receipt of the payment.

GL Entries:

Type Amount Account Root Type
Debit 119 Bank Asset
Credit 100 Advances Received Liability
Credit 19 VAT Liability

So at this point in time we should have a total liability of 119. (Currently, ERPNext would show only show that our receivables are reduced by 119, which is not correct.)

Sales Invoice

Sales Invoice over 200 net total plus 19% VAT equals 238 grand total.

Deducting 119 advances received. And 119 remain outstanding.

GL Entries:

Type Amount Account Root Type
Credit 200 Revenue Income
Credit 19 VAT Liability
Debit 119 Receivables Asset
Debit 100 Advances Received Liability

Disclaimer: I'm not an accountant and in english it's even harder – the GL Entries might be total nonsense and are only for illustrative purposes.


Similar, but not 100% identical issue: https://blog.prolecto.com/2016/07/08/solved-netsuite-customer-deposits-and-advance-payment-accounting/

@barredterra barredterra changed the title Record advance payments as liability Record advance payment as a liability Mar 2, 2023
@szufisher
Copy link
Contributor

it is a long await feature, it should also apply to purchase. accounts payable and accounts receivable reports needed to be adapted accordingly.

@getroommanagement
Copy link

I've been losing few implementation projects due to this issue in Malaysia, especially in industries like health care and beauty line where they will receive a lot of advance payments from their day-to-day business. This feature should be addressed asap.

@tillmo
Copy link

tillmo commented Mar 29, 2023

👍

GursheenK added a commit that referenced this issue Jun 2, 2023
Ability to let user record advance payments as liability instead of a negative asset.

Issue #34282
@rvbd
Copy link

rvbd commented Jun 6, 2023

This needs to be looked at seriously... lots of lost potential due to this problem.

@tillmo
Copy link

tillmo commented Jun 6, 2023

Here is some previous comment that has been deleted. I think it might be valuable:

"Yes, indeed, advance payments should be booked as liability.
Actually, the Advance Payment Entry section in the ERPNext documentation is not about Advance Payments, it's just about a way to enter a payment in advance (i.e. ahead of time), but it doesn't change how it's booked.

I'm thinking to implement Advance Payments myself:

  • Could be a new DocType or just a new Type of Payment. To add a new Type of Payment, we would need to change the code of the Payment Entry, while a new DocType allows easier migration to future versions of ERPNext.
  • The document would debit the Cash account and credit a Customer Deposit (Liability) account
  • When it comes time to pay the invoice, the advance payment document needs to be associated with the Invoice
  • The biggest problem is that currently a Sales Invoice can only be booked as debiting a single account. This is set in the Accounting Details "Debit To" field and it can only be a Receivable account.
  • If the whole invoice can be associated with advance payments, it would be a relatively easy fix: just allow the invoice to be debited from a Customer Deposit account instead of a Receivable account. But if the invoice is only partially covered by advance payments, we need to debit some of it from a Customer Deposit account, while the remaining amount from AR. This needs significant code change.
  • Another way to do it, would be to first "reverse" the advance payment, meaning to generate a Journal Entry to debit the Customer Deposit account and credit the Cash account, then generate a normal Payment Entry and associate that with the Sales Invoice. The drawback is that there would be no direct link between the Invoice and the advance payment and the dates might not be correct either.
  • Yet another way to do it would be to generate a special Payment Entry (Type could be "Deposit") to debit the Customer Deposit account and credit the Accounts Receivable directly, then associate this Payment with the Sales Invoice. The benefit of this approach (as well as the previous one) is that the booking of the Invoice itself does not need to change. However, we do need to make changes to the Payment doctype.

I'll think I will take the last approach." (end of quote, so the "I" here is someone else, who probably no longer wants to do this)

GursheenK added a commit to GursheenK/erpnext that referenced this issue Jun 12, 2023
deepeshgarg007 added a commit to GursheenK/erpnext that referenced this issue Jun 19, 2023
deepeshgarg007 added a commit to GursheenK/erpnext that referenced this issue Jun 20, 2023
deepeshgarg007 added a commit to GursheenK/erpnext that referenced this issue Jun 20, 2023
deepeshgarg007 added a commit to GursheenK/erpnext that referenced this issue Jun 29, 2023
deepeshgarg007 added a commit to GursheenK/erpnext that referenced this issue Jun 30, 2023
deepeshgarg007 added a commit that referenced this issue Jul 1, 2023
…t-as-a-liability

feat: Record Advance Payment as a liability
@deepeshgarg007
Copy link
Member

Added via #35609

@xhijack
Copy link

xhijack commented Jul 28, 2023

Hallo, is there any information when this feature raise to production?

finesoftke pushed a commit to finesoftke/erpnext that referenced this issue Aug 5, 2023
…vance-payment-as-a-liability

feat: Record Advance Payment as a liability
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 4, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Status: Done
Development

No branches or pull requests

9 participants