Security Deposits in Zoho Books: Complete Guide

How do I record refundable security deposits in Zoho Books correctly, including GST compliance, refunds, and forfeitures?

How to Record Refundable Security Deposits in Zoho Books: The Complete Guide

How to Record Refundable Security Deposits in Zoho Books: The Complete Guide

Managing refundable security deposits incorrectly is one of the most common accounting mistakes small businesses make — and it can silently distort your financial statements, inflate your AR balance, and create GST compliance headaches.

This guide gives you a verified, step-by-step system for recording, tracking, refunding, and forfeiting security deposits inside Zoho Books — with clean journal entries, the right account structure, and zero AR confusion.

Who this is for: Business owners, accountants, and finance teams using Zoho Books in India who collect refundable deposits from customers (rental businesses, SaaS companies, service providers, equipment lessors, and more).


Why Security Deposits Are Different From Regular Payments

Before touching Zoho Books, you need to understand the accounting principle that governs everything else in this guide:

A refundable security deposit is not income. It is not a customer credit. It is a liability — money you owe back to the customer.

It belongs on your Balance Sheet, not your Profit & Loss statement or your Accounts Receivable ledger.

Correct Journal Entry at Receipt:
DR Bank / Cash Account ₹1,000
CR Security Deposit Liability ₹1,000

Getting this wrong — even slightly — leads to:

  • Inflated revenue (if posted to income)
  • Distorted AR balances (if left in the customer ledger)
  • Incorrect GST filings (if tax is applied to a non-taxable deposit)
  • Audit trail gaps (if there's no clear path from receipt to refund)

The good news: Zoho Books gives you everything you need to handle this correctly. There's no dedicated "security deposit" module, but the combination of a custom liability account, journal entries, and optional invoice workflows creates a clean, auditable system.


The Problem Breakdown at a Glance

Component The Issue The Fix
Deposit Classification Must be a liability, not revenue Create a Current Liability account
Invoice Separation Deposit must not inflate AR Use a separate invoice or direct JE
Credit Confusion Excess payments create "unused credits" Reclassify via journal entry
Lifecycle Management Need clean paths for refund AND forfeiture Follow the phase-by-phase workflow below
GST Compliance Deposit is not a supply — GST should not apply Set item tax to "None / Exempt"

Phase 1: One-Time Setup in Zoho Books

Do this once. Every deposit transaction you record from this point forward will flow correctly.

Step 1.1 — Create a Dedicated Liability Account

Navigation (two valid paths depending on your UI version):

  • Left Sidebar → Accountant → Chart of Accounts → + New Account
  • Left Sidebar → Settings → Chart of Accounts → + New Account

Both paths lead to the same screen. Use whichever appears in your Zoho Books interface.

Account Settings:
├── Account Type : Current Liability
├── Account Name : Security Deposits Received
├── Account Code : 2300 (or your preferred code)
├── Description : Refundable deposits held from customers
└── Save

⚠️ Critical: Do NOT use "Other Income" or any revenue account type. The moment a deposit touches your P&L, your financial statements are incorrect. This account must be a Current Liability — it represents money you owe back.


This step makes invoicing faster and ensures the deposit always posts to the right account automatically.

Navigation: Items → + New Item

Item Settings:
├── Item Type : Service
├── Item Name : Security Deposit (Refundable)
├── Account : Security Deposits Received ← your new liability account
├── Tax : None / Exempt
└── Save

GST Note for India: Under Indian GST law, a refundable security deposit is not "consideration for a supply" under Section 2(31) of the CGST Act, 2017. It is therefore not taxable at the time of receipt. Set the tax field to None or Exempt. GST only becomes relevant if the deposit is later adjusted against a taxable supply — in which case, raise a proper GST invoice for that supply separately.


Phase 2: Recording the Deposit — Three Verified Methods

Choose the method that best fits how your customer pays.


Method A: Separate Invoice for the Deposit (Cleanest for Documentation)

Best for: Businesses that want a formal invoice document for the deposit, or where the customer pays the deposit and service fee separately.

Why it works: The deposit invoice posts directly to the liability account, keeping it completely isolated from your service invoice AR.

Step A1 — Create the Service Invoice Normally

New Invoice:
├── Customer : [Customer Name]
├── Item : Your Service / Product
├── Amount : ₹10,000
├── GST : ₹1,800 (18% example)
└── Total Due : ₹11,800

Step A2 — Create a Separate Deposit Invoice

New Invoice:
├── Customer : [Customer Name]
├── Item : Security Deposit (Refundable) ← item from Step 1.2
├── Amount : ₹1,000
├── Tax : NONE
└── Total Due : ₹1,000

Step A3 — Record the Customer Payment

When the customer pays ₹12,800 total:

Payment 1: Apply ₹11,800 → Service Invoice     → PAID ✓
Payment 2: Apply ₹1,000 → Deposit Invoice → PAID ✓ → Posts to Liability

Result:
├── Service Invoice : PAID ✓
├── Deposit Invoice : PAID ✓
├── Customer AR Balance : ₹0 ✓
└── Liability Account : ₹1,000 CR ✓

Note: The deposit invoice will appear in the customer's AR balance until it is paid — this is correct behavior. The customer does owe you ₹1,000 until they transfer it.


Method B: Direct Journal Entry (Most Practical — Recommended as Standard)

Best for: When the customer pays a single lump sum and you want zero impact on the customer's AR ledger.

Why it works: You record the service invoice and payment normally, then handle the deposit entirely through a journal entry — no AR involvement, no unused credits, no confusion.

Step B1 — Invoice and Receive Payment for the Service Only

Service Invoice : ₹11,800 (₹10,000 + GST)
Record Payment : ₹11,800 → Invoice marked PAID ✓

Step B2 — Record the Deposit via Journal Entry

Navigation: Quick Create (top-right icon) → Journal Entry
(Alternative: Accountant → Journal → + New Journal)

⚠️ Important: When your journal entry involves a bank or cash account, set the Journal Type to "Cash Based Journal" — otherwise Zoho Books will not allow cash/bank account lines in the entry.

┌─────────────────────────────────┬──────────┬──────────┐
│ Account │ Debit │ Credit │
├─────────────────────────────────┼──────────┼──────────┤
│ Bank / Cash Account │ ₹1,000 │ │
│ Security Deposits Received │ │ ₹1,000 │
└─────────────────────────────────┴──────────┴──────────┘

Notes : "Refundable security deposit – [Customer Name] – [Date]"
Reference : Customer name + Invoice number
Result:
├── Customer AR Balance : ₹0 (completely untouched) ✓
├── No unused credits : ✓
├── Bank Account : +₹1,000 ✓
└── Liability Account : ₹1,000 CR ✓

This is the recommended standard operating procedure. One journal entry, zero AR confusion, clean balance sheet, clear audit trail.


Method C: Customer Advance with Reclassification

Best for: When the customer insists on a single receipt document for the full amount paid.

Limitation: Requires an extra reclassification step and may temporarily show an AR debit. Use Method B where possible.

Step C1 — Record Full Receipt as Customer Advance

+ New → Customer Payment (without applying to any invoice)
Amount: ₹12,800
Creates: Advance / Unused Credit of ₹12,800

Step C2 — Apply ₹11,800 to the Service Invoice

Open the advance payment → Apply to Invoice
Apply: ₹11,800 → Service Invoice marked PAID ✓
Remaining advance: ₹1,000 (shows as unused credit ← needs reclassification)

Step C3 — Journal Entry to Reclassify the Remaining ₹1,000

┌─────────────────────────────────┬──────────┬──────────┐
│ Account │ Debit │ Credit │
├─────────────────────────────────┼──────────┼──────────┤
│ Accounts Receivable (Customer) │ ₹1,000 │ │
│ Security Deposits Received │ │ ₹1,000 │
└─────────────────────────────────┴──────────┴──────────┘

⚠️ This requires careful reconciliation. Method B is preferred.


Phase 3: Returning the Deposit to the Customer

When the customer relationship ends and the deposit is refunded in full (or in part):

Option A — Via Journal Entry (Recommended)

Navigation: Quick Create → Journal Entry (set type to Cash Based Journal)

┌─────────────────────────────────┬──────────┬──────────┐
│ Account │ Debit │ Credit │
├─────────────────────────────────┼──────────┼──────────┤
│ Security Deposits Received │ ₹1,000 │ │
│ Bank / Cash Account │ │ ₹1,000 │
└─────────────────────────────────┴──────────┴──────────┘

Notes: "Refund of security deposit – [Customer Name] – [Date]"
Result:
├── Liability Account : ₹0 (fully cleared) ✓
├── Bank Account : -₹1,000 ✓
├── Customer AR : Unaffected ✓
└── P&L Impact : None ✓

Option B — Via Zoho Books Expense (Alternative)

Navigation: + New → Expense

├── Paid Through    : Bank Account
├── Account : Security Deposits Received (Liability)
├── Amount : ₹1,000
├── Customer : [Customer Name] (for reference)
└── Notes : Security deposit refund – [Date]

Phase 4: Converting a Forfeited Deposit Into Income

When a customer breaches a contract, causes damage, or otherwise forfeits their deposit, the liability must be converted to income — but this must be done correctly.

Step 4.1 — Create an Income Account for Forfeited Deposits

Navigation: Accountant → Chart of Accounts → + New Account

├── Account Type    : Other Income
├── Account Name : Forfeited Security Deposits
├── Account Code : 7100 (or preferred)
└── Description : Security deposits forfeited by customers

Step 4.2 — Journal Entry to Transfer Liability to Income

┌─────────────────────────────────┬──────────┬──────────┐
│ Account │ Debit │ Credit │
├─────────────────────────────────┼──────────┼──────────┤
│ Security Deposits Received │ ₹1,000 │ │
│ Forfeited Security Deposits │ │ ₹1,000 │
└─────────────────────────────────┴──────────┴──────────┘

Notes: "Deposit forfeited – [Customer Name] – [Reason] – [Date]"
Result:
├── Liability Account : ₹0 (cleared) ✓
├── Other Income : +₹1,000 ✓ (appears correctly in P&L)
├── Customer AR : Unaffected ✓

⚠️ GST Advisory on Forfeiture: CBIC has indicated that forfeited deposits may be treated as consideration for a supply in certain circumstances, making them potentially taxable. Do not treat forfeited deposits as GST-exempt income without consulting your Chartered Accountant. Reference: Various AAR rulings post-2018 and CBIC guidance on Section 2(31) of the CGST Act.


Phase 5: Tracking Multiple Customer Deposits

As your deposit volume grows, you need a system to track which deposit belongs to which customer.

Option A — Sub-Accounts Per Customer (Small Volume)

Security Deposits Received (Parent)
├── Security Deposit – Customer A
├── Security Deposit – Customer B
└── Security Deposit – Customer C

Create each as a sub-account under "Security Deposits Received" in your Chart of Accounts.

Option B — Custom Fields on Journal Entries (Medium Volume)

Add a custom field called "Deposit Reference" or "Customer Name" to your Journal Entry template. Filter the liability account register by this field to see all deposits by customer.

Tag each deposit journal entry with the customer name or a deposit reference code. Run reports filtered by tag to see outstanding deposits at any time.


Complete Decision Tree

Customer pays a deposit


Is it mixed with a service payment?

YES │ NO
│ └──→ Method A (Separate Invoice)

Use Method B (Direct JE to Liability)


Deposit lifecycle event occurs?

┌────┴────┐
│ │
REFUND FORFEIT
│ │
▼ ▼
DR Liability DR Liability
CR Bank CR Other Income (+ consult CA re: GST)

Quick Reference: Account Mapping

Transaction Debit Credit
Deposit received Bank / Cash Security Deposits Received (Liability)
Deposit refunded in full Security Deposits Received Bank / Cash
Deposit forfeited Security Deposits Received Forfeited Deposits (Other Income)
Partial refund Security Deposits Received Bank / Cash (partial amount)
Deposit adjusted against invoice Security Deposits Received Accounts Receivable / Invoice

Common Mistakes — and How to Avoid Them

❌ Wrong Approach ✅ Correct Approach Why It Matters
Recording as excess payment / unused credit Direct JE to liability account Unused credits distort AR and confuse reconciliation
Using "Other Income" account Use "Current Liability" account Income classification inflates revenue incorrectly
Applying GST to the deposit No GST — it's not a supply Incorrect GST filings create compliance risk