A customer hands you money before you've delivered anything. That's great for cash flow, but it creates a real accounting question. Where does that cash sit on your books? You can't call it revenue yet, because you haven't earned it. And if you record it wrong, your financial statements will overstate income, mislead investors, and potentially trigger compliance headaches during your next audit or fundraise.
For early-stage companies, this situation comes up more often than you'd expect. Annual subscriptions paid upfront, retainers for consulting work, deposits on custom hardware builds: these are all variations of the same problem. The cash is yours to hold, but the obligation attached to it changes everything about how you record it.
Getting this right from day one saves you from messy restatements later. If you're a startup founder or an early-stage finance lead, understanding how to properly account for customer deposits is one of those foundational skills that pays off every quarter. This guide walks you through the correct treatment, common pitfalls, and what happens as the transaction evolves over time.
A customer deposit is cash received before goods or services are delivered. It's tricky because the money hits your bank account immediately, but you haven't fulfilled your side of the deal yet. That means it's not revenue: it's a liability.
Startups encounter this whenever a customer prepays. Think annual SaaS contracts, pre-orders for a product still in development, or security deposits on equipment rentals. Any time cash arrives before the performance obligation is satisfied, you're dealing with a deposit.
Here's the high-level process. First, record the cash received as a debit to your cash account. Second, create a corresponding credit to a liability account, typically called "Customer Deposits" or "Deferred Revenue." Third, as you deliver the product or service, you recognize portions of that liability as revenue. Fourth, once the obligation is fully met, the liability balance hits zero and revenue is fully recognized.
The key insight is simple: cash in hand doesn't equal earned income. Your balance sheet carries the obligation until you deliver. If you remember nothing else from this guide, remember that distinction. It will keep your books clean and your investors confident.
The correct treatment classifies a customer deposit as a current liability on your balance sheet. It's not an asset to you (even though cash is), because you owe the customer something in return. Under ASC 606 (Revenue from Contracts with Customers), you can only recognize revenue when you satisfy a performance obligation. Until that happens, the deposit stays parked as a liability.
Two accounts are affected when you first receive the deposit:
Here's what the journal entry looks like:
| Account | Debit | Credit |
|---|---|---|
| Cash | $X,XXX | |
| Customer Deposits (Liability) | $X,XXX |
This entry reflects the economic reality. You have more cash, but you also have a new obligation. Your net position hasn't changed: no revenue, no expense, just a swap between asset types and a new liability.
When you deliver the goods or complete the service, you make a second entry. You debit Customer Deposits (reducing the liability) and credit Revenue (recognizing the income you've now earned). That second entry is where the P&L impact actually happens.
One critical point for startups: if the deposit is refundable and the customer can cancel at any time, it stays a liability until the refund window closes or delivery occurs. Don't rush to recognize revenue just because the cash feels permanent.
Recording deposits as immediate revenue. This is the most frequent error. You book the full amount as income the moment cash arrives. Your top line looks inflated, but you haven't earned it yet. This violates ASC 606 and will require a restatement if caught during audit.
Using the wrong account type. Some founders dump deposits into a generic "Other Income" or miscellaneous account. This buries the liability and makes it invisible on your balance sheet. Your accountant or auditor won't be able to track outstanding obligations, and your financial statements lose reliability.
Failing to reverse the liability upon delivery. You correctly record the deposit as a liability upfront, then forget to reclassify it as revenue once you've fulfilled the obligation. The result is understated revenue and an overstated liability. Your income statement looks worse than reality, and your balance sheet carries phantom obligations.
Each of these mistakes distorts your financial picture. For startups seeking funding, that distortion can erode investor trust or complicate due diligence. Clean books start with getting deposits right.
The liability classification of a customer deposit isn't permanent. It shifts once you satisfy the performance obligation tied to it. For a SaaS company, that trigger might be each month of service delivered under an annual prepaid contract. For a hardware startup, it's when the product ships.
If the customer cancels before delivery, the deposit converts from a liability into a refund payable (still a liability, but a different one) or, if your contract allows, into recognized revenue for a non-refundable cancellation fee. The terms of your agreement dictate which path applies.
Partial delivery creates a split. Say a customer deposits $12,000 for a twelve-month engagement. After three months, $3,000 moves from Customer Deposits to Revenue, and $9,000 remains as a liability. You recognize revenue ratably as you perform.
Watch for contract modifications too. If the scope of work changes mid-engagement, you may need to reassess how much of the deposit maps to remaining obligations under ASC 606's modification guidance.
Not all accounting tools treat deposits correctly out of the box. Here's what to look for when choosing software as a startup:
Automatic liability classification. Good software recognizes a deposit as a liability by default, not revenue. It should prompt you to tag incoming cash against an unearned revenue or customer deposit account without manual overrides.
Revenue recognition scheduling. The best tools let you set a delivery timeline so the system automatically moves portions of the deposit from liability to revenue on a defined schedule. This is essential for SaaS startups with monthly recognition on annual contracts.
Audit trail and documentation. Your software should link the original deposit entry, any partial recognitions, and the final revenue entry into a single traceable chain. When your accountant reviews the books, they should see the full lifecycle of each deposit without digging through spreadsheets.
These features save hours of manual journal entry work and reduce the risk of the mistakes described above. If your current tool can't handle deferred revenue workflows, you're likely making errors you don't even know about.
Is a customer deposit a debit or a credit?
A customer deposit creates both. You debit your cash account because your bank balance goes up. You credit a liability account (Customer Deposits or Deferred Revenue) because you now owe the customer a product or service. The deposit itself sits as a credit on your balance sheet until you fulfill the obligation. It's a liability, not income, until delivery happens.
Is a customer deposit an asset or a liability?
It's a liability. Even though you received cash (which is an asset), the deposit represents an obligation you owe. You must either deliver the promised goods or services, or return the money. Under ASC 606, you can't treat it as revenue until the performance obligation is satisfied. On your balance sheet, it appears under current liabilities.
When does a customer deposit become revenue?
A deposit converts to revenue when you satisfy the related performance obligation. For product companies, that's typically upon shipment or delivery. For service businesses, it happens as you perform the work, often on a monthly or milestone basis. The timing depends entirely on your contract terms and the nature of what you're delivering to the customer.
Can a customer deposit be non-refundable?
Yes, but that doesn't automatically make it revenue. Even non-refundable deposits remain liabilities if you still owe the customer something. The non-refundable nature only matters if the customer cancels: at that point, you may recognize the deposit as revenue because your obligation is extinguished. Check your contract language carefully and consult ASC 606 guidance on cancellation terms.
What happens if a customer requests a refund before delivery?
You reverse the original entry. Debit the Customer Deposits liability account (reducing it) and credit cash (reducing your bank balance). No revenue is recognized because no performance obligation was satisfied. If only a partial refund is owed, you split the entry: refund the appropriate portion and recognize any earned amount as revenue based on work completed.
Puzzle is the AI-native accounting platform built for startups and the firms that serve them. From SAFEs to stock comp, Puzzle categorizes complex transactions correctly the first time, with a clean audit trail your accountant will actually trust. Spend less time second-guessing journal entries and more time on the work that matters.





