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
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?