Correcting Customer Deposit and Vendor Prepayment Balance Discrepancies in XoroERP

Overview

In certain situations—such as exchange rate differences, credit adjustments, extra card charges, or accounting discrepancies (for example during T2 / CRA filing)—clients may need to correct balances related to:

  • Customer Deposits

  • Vendor Prepayments

A common misunderstanding is that these adjustments should be made directly through Journal Entries using the system-generated Customer Deposit or Vendor Prepayment accounts.

However, these accounts are system-controlled and restricted for transactional use only. Direct Journal Entry postings to these accounts can cause reconciliation and reporting mismatches.

This article explains the correct troubleshooting approach and resolution methods.


Symptoms

You may encounter this issue when:

  • The accounting team identifies discrepancies in Customer Deposit or Vendor Prepayment balances

  • A user attempts to post a Journal Entry directly to the system-generated deposit/prepayment account

  • The Trial Balance or Balance Sheet appears correct

  • The Customer Deposit Centre or Vendor Prepayment Centre totals do not reconcile

  • Exported reports (e.g., Excel) do not match financial statements

  • The client wants to adjust overall liability or asset balances without impacting specific customers or vendors


System Behavior – Customer Deposit Account

A Customer Deposit Account is a Liability Account.

It is used when:

  • A customer pays money in advance

  • Payment is received before an invoice is issued

  • The amount is not yet applied to a specific invoice

This amount does not belong to the company yet. It remains a liability until:

  • It is applied to an invoice, or

  • It is refunded

Customer Deposit accounts are tightly integrated with customer-level transactions and are not standalone general ledger accounts.

They are directly connected to:

  • Customer Profiles

  • Invoices

  • Credit Notes

  • Refunds

  • Payment Applications

The system tracks:

  • Which customer made the payment

  • The amount paid

  • Whether the deposit is applied or unapplied

  • The remaining balance per customer

This ensures:

  • Accurate customer balances

  • Correct Accounts Receivable (AR) aging

  • Proper liability reporting in the Balance Sheet

  • Accurate customer statements

circle-info

Because deposits are customer-specific liabilities, they must always be recorded through customer-linked transactions.


Why You Cannot Select It in a Journal Entry

Journal Entries are general ledger postings. They are not linked to specific customers or vendors.

Customer Deposit and Vendor Prepayment accounts are:

  • Sub-ledger controlled

  • Customer/vendor linked

  • System-restricted

Allowing direct Journal Entry posting would break the linkage between:

  • General Ledger

  • AR/AP Sub-ledger

  • Customer/Vendor-level reporting


Root Cause

Customer Deposit and Vendor Prepayment accounts are system-generated accounts.

Although they appear in the Chart of Accounts, they are:

  • Locked for direct operational use

  • Restricted to system-driven transactions

  • Internally mapped to customer/vendor-level sub-ledgers

Behind the scenes:

  • Vendor Prepayment falls under the Asset primary type

  • Customer Deposit falls under the Liability primary type

If a Journal Entry is created directly (especially via backend support) using these accounts:

  • The Trial Balance or Balance Sheet may reflect the adjustment

  • But the Customer Deposit Centre or Vendor Prepayment Centre totals will not match

  • Exported reports will show discrepancies

This creates reconciliation issues between financial statements and sub-ledger reports.


Resolution

Scenario A: Correcting Overall Asset or Liability (Not Customer/Vendor Specific)

If the goal is to adjust overall balances and not a specific customer or vendor:

Step 1: Create a Placeholder Account

For Customer Deposit correction (Liability side):

  • Create a new account

  • Primary Type: Liability

  • Account Type: Other Current Liability

  • Example name: “Deposit Adjustment Placeholder”

For Vendor Prepayment correction (Asset side):

  • Create a new account

  • Primary Type: Asset

  • Account Type: Other Current Asset

  • Example name: “Prepayment Adjustment Placeholder”

Step 2: Create a Journal Entry

  • Post the differential amount using the placeholder account

  • Adjust the corresponding Asset or Liability account accordingly

This method corrects overall balances without interfering with system-controlled sub-ledger accounts.


Scenario B: Adjusting Customer Deposit for a Specific Customer

To Decrease Customer Deposit:

  • Create an Invoice for the specific customer

  • Apply the existing Customer Deposit against that invoice

To Increase Customer Deposit:

  • Create a new Customer Deposit transaction

  • Assign it to the correct customer

Important: There is no supported way to change Customer Deposit balance without affecting a specific customer. Backend Journal Entries are not recommended.


Scenario C: Adjusting Vendor Prepayment for a Specific Vendor

To Decrease Vendor Prepayment:

  • Create an Expense Bill for the specific vendor

  • Apply the Vendor Prepayment to the bill

To Increase Vendor Prepayment:

  • Create a new Vendor Prepayment transaction

  • Assign it to the correct vendor

There is no supported way to change Vendor Prepayment balance without affecting a specific vendor.


Best Practices

  • Never use system-generated Customer Deposit or Vendor Prepayment accounts in manual Journal Entries

  • Use placeholder accounts under:

    • Other Current Asset (for asset corrections)

    • Other Current Liability (for liability corrections)

  • Always determine whether the correction is:

    • Overall balance level, or

    • Customer/vendor specific

Use transaction-based corrections for all customer/vendor-level adjustments to maintain reconciliation between:

  • General Ledger

  • Sub-ledger reports

  • Financial statements

  • Customer/Vendor centres

Last updated

Was this helpful?