Advance Payment to credit Liabilities instead of Receivables

Hi everyone,

My company’s domain is online retail, where most of the customers will make an advance payment before we actually fulfill the order and create an invoice.

So we need to record all payments made as an advance payment or a customer deposit if you will

From what I learned in ERPNext, it seems like if I want to record an advance payment via Journal Voucher, I debit my bank account, and credit my Receivables, mark the receivables line as advance and associate it to the party.

The problem is, as far as we understand it in our accounting standards, advance payment should be recorded as a liability instead of receivables.

But if I do so, the Sales Invoice won’t actually pull the Journal Voucher, since it doesn’t hit the Receivables Account, so the invoice cannot be paid by the advance payment.

Another thing is the Sales Invoice won’t debit a liability account.

While this sounds rather convoluted, we are (that’s to say our accounting team) is sure that this should be the case, as explained in this wikihow article:

In summary this is how we imagined advance payment flow should work:

  1. Sales Order is created (this is actually optional)
  2. Advanced Payment is created with Journal Voucher. Ledger entry : debit on bank (asset) credit on Deposit / Unearned Revenue (liability)
  3. When sales invoice is created the Journal Voucher is pulled in the advance payment if the debit account is Deposit / Unearned Revenue

Another way (perhaps a more flexible one) is to keep the sales invoice debit the Receivables, but instead create another Ledger Entry when we attach the advance payment, therefore we could do mixed payment if a previous balance want to be mixed with a wire transfer to pay an invoice.

In that case:

  1. Sales Order is created (this is actually optional)
  2. Advanced Payment is created with Journal Voucher. Ledger entry : debit on bank (asset) credit on Deposit / Unearned Revenue (liability)
  3. When Sales Invoice is created the Journal Voucher is pulled in the advance payment if the debit account is Receivables
  4. Attaching the Journal Voucher to Sales Invoice will result in another Journal(?) that debits Unearned Revenue / Deposit and credit Receivables.

Has anyone work with this kind of advance payment before? If so how did you do it?

3 Likes

I found the problem.

Turns out it has everything to do with the way ERPNext Filters the Accounts that can be used in the transactions, simply by leaving the “Account Type” field blank for these special accounts enables us to use a root-type Liability account as a debit account in Invoice.

As a result, I could create a Customer Deposit in Journal Voucher that credits a Liability account, and use that same account to be debited in the Sales Invoice

3 Likes

I don’t think this is the proper solution, it is rather a hack. We have the same issue in our company. The Accountants are not happy with the way this system is dealing with advance payments.

This is definitely an issue for me too. The same principle applies in IOLTA trust accounts. In essence you are holding someone else’s money on “trust” i.e. the customer may decide to cancel a part of the order and the deposit needs to be paid back or a second project is started and there are various reasons why the prepayment should be held in a liability account versus an asset account and a separate ledger, or journal as some systems call these separate ledgers. I saw for example an accounting implementation on Odoo at Law & Legal Practice Management App | Odoo Apps Store. In prder ti implement I think that an additional journal debit and credit entry should be made on advance payments. In essence a liability group account should be created initially in the chart of accounts. And then, per customer or per project liability accounts under this group account. Once the prepayment is allocated to a sales or purchase invoice the liability account should be decreased or increased on the submission of the invoice.

1 Like