Journal Entry for COD Sales (Cash on Delivery) — E-Commerce
The complete accounting guide for Cash on Delivery (COD) e-commerce sales — covering dispatch entry, courier remittance, COD handling fees, GST on COD sales, failed deliveries, partial collections, and month-end COD reconciliation. With fully worked entries and an interactive classroom.
In Cash on Delivery (COD) sales, the customer pays cash to the delivery executive at the door — not online at checkout. This creates a unique 3-party chain: seller dispatches goods → logistics partner collects cash → logistics partner remits net amount to seller after deducting COD handling charges. Unlike prepaid/gateway sales where revenue and cash arrive close together, COD introduces a delivery risk (customer may refuse) and a cash transit risk (money sits with courier for 3–10 days). Both must be reflected in accounting entries correctly.
📌 The Core Accounting Principle: Revenue for COD sales is recognised at the point of delivery confirmation — when the courier collects cash and the goods transfer to the customer — NOT at dispatch. This follows the Revenue Recognition Principle (Ind AS 115 / AS 9). Between dispatch and delivery, the goods are still in transit and a Logistics/COD Receivable account (current asset) holds the expected receipt. If delivery fails, this receivable is reversed — no revenue is booked.
✅ Two-Step COD Accounting: Step 1 — At dispatch/delivery confirmation: Dr Logistics/COD Receivable A/c | Cr Sales A/c + GST Payable A/c. Step 2 — On COD remittance from courier: Dr Bank A/c + Dr COD Handling Fee Expense + Dr ITC | Cr Logistics/COD Receivable A/c. If delivery is refused: simply reverse Step 1 entirely. No cash movement.
02 — COD Money Flow
The COD Money Flow — 5 Stages
Unlike prepaid sales, COD money doesn't go through a payment gateway — it travels physically from customer → delivery executive → logistics company → your bank account. Understanding this flow is essential for correct entry timing.
→
STAGE 01
Order Confirmed
Customer places COD order. No payment collected yet. Seller prepares goods for dispatch. No accounting entry yet (optional: create a sales order note for tracking).
→
STAGE 02
Dispatch / Handover
Goods handed to logistics partner (Delhivery, BlueDart, DTDC, Ekart). Revenue recognised at delivery confirmation. Dr Logistics/COD Receivable A/c | Cr Sales A/c + GST Payable A/c.
→
STAGE 03
Delivery Attempt
Courier attempts delivery. Customer pays cash to delivery executive. If accepted → delivery confirmed. If refused → goods returned to origin, entry reversed.
→
STAGE 04
Courier Remits
Courier remits collected cash — net of COD handling fee — to your bank (T+3 to T+7). Dr Bank A/c + Dr COD Fee | Cr Logistics/COD Receivable A/c. COD Receivable cleared.
STAGE 05
GST Filing
Declare COD sales in GSTR-1. COD sales attract same GST as prepaid. Issue tax invoice at delivery. Report as B2C or B2B per buyer registration status. ITC on COD handling fee if courier provides GST invoice.
03 — Case Study: Basic COD Sale
Case Study 1: Standard COD Sale via Delhivery
This is the most common COD scenario — you ship directly to a customer using a third-party logistics (3PL) partner like Delhivery, BlueDart, or Ekart. The customer pays cash at delivery, and the courier remits the collected amount (net of their COD handling charge) within a week.
FACTS OF THE CASE
Zerolev Fashion — COD Sale via Delhivery
Zerolev Fashion sells a kurta set for ₹1,200 + GST @5% = ₹60. Customer pays ₹1,260 in cash to the Delhivery delivery executive. Delhivery charges a COD handling fee of ₹40 + GST @18% = ₹7.20 on the handling fee. Delhivery remits ₹1,212.80 (₹1,260 − ₹40 − ₹7.20) to the seller's bank on Day 5.
Entry 1A: At Delivery Confirmation — Record COD Sale & Logistics ReceivableRevenue Recognition (Ind AS 115)
Account
Dr/Cr
Debit (₹)
Credit (₹)
Logistics / COD Receivable A/c (Delhivery)
Dr
1,260
—
To Sales / Revenue A/c
Cr
—
1,200
To GST Payable A/c (CGST + SGST / IGST)
Cr
—
60
Total
1,260
1,260
Being COD sale of kurta set recorded on delivery confirmation date. Revenue (₹1,200) and GST liability (₹60 @5%) recognised. Logistics/COD Receivable A/c is a current asset — it represents the full invoice amount the courier must remit to you. The receivable stays open until courier pays.
Entry 1B: On COD Remittance from Delhivery (Day 5) — Net SettlementCOD Bank Settlement — Gross Method
Account
Dr/Cr
Debit (₹)
Credit (₹)
Bank A/c
Dr
1,212.80
—
COD Handling Fee Expense A/c
Dr
40.00
—
Input Tax Credit A/c (GST on COD Handling Fee)
Dr
7.20
—
To Logistics / COD Receivable A/c (Delhivery)
Cr
—
1,260.00
Total
1,260.00
1,260.00
Being COD remittance received from Delhivery. Net ₹1,212.80 credited to Bank. COD handling fee ₹40 = expense (debited). GST on handling fee ₹7.20 = ITC claimable in GSTR-3B (Delhivery must provide a GST invoice). Logistics/COD Receivable A/c = ₹0 (fully cleared).
🔑 Why Use the Gross Method? Always record full COD value (₹1,260) as the receivable and show the COD handling fee separately as an expense. Netting it (recording only ₹1,212.80 as revenue) would understate your gross sales in GSTR-1 and income tax returns, and would prevent you from claiming ITC on the courier's GST invoice. The Gross Method gives you accurate revenue reporting and full ITC capture.
04 — Courier Partner Accounting Scenarios
COD Accounting by Courier / Logistics Scenario
Different logistics partners have different COD handling fee structures and remittance cycles. Here are the four most common scenarios Indian e-commerce sellers encounter.
01
DELHIVERY / EKART
Flat COD Handling Fee
Charge ₹20–₹60 flat per shipment or a small % of COD value. Weekly remittance cycle. Maintain separate Delhivery COD Receivable ledger. Reconcile against Delhivery settlement statement each week.
02
BLUEDART / DTDC
Percentage-Based COD Fee
Typically 1–1.5% of COD value + 18% GST. Higher ticket value = higher fee. Track fee as percentage in your COD reconciliation sheet. Always verify fee against the courier's remittance advice statement.
03
AMAZON / FLIPKART
Marketplace COD via Platform
Marketplace collects COD, deducts commission + TCS + COD fee, and remits net to seller. Treat same as marketplace prepaid settlement but with COD Receivable instead of Gateway Receivable. TCS still applies on COD sales via marketplace.
04
OWN DELIVERY
In-House Delivery Executive
If using own delivery staff: cash collected by employee → Dr Cash in Hand A/c | Cr Sales A/c + GST. On deposit to bank: Dr Bank A/c | Cr Cash in Hand A/c. No COD handling fee. Petty cash reconciliation required daily.
05 — Case Study: Failed / Refused COD Delivery
Case Study 2: Customer Refuses COD Delivery
COD refusals are a major challenge — industry-wide refusal rates average 15–25%, rising to 30–40% in fashion. When a customer refuses delivery, the courier returns the goods unsold. The accounting entry is simply a reversal of the dispatch entry. No cash has exchanged hands, so no cash entry is needed.
Zerolev Electronics dispatched a ₹3,000 power bank + GST @18% (₹540) = ₹3,540 COD order. On delivery attempt, the customer refused to accept the package. The courier returns the goods to the seller's warehouse. No cash collected. No revenue to be recognised.
Entry 2A: At Dispatch — Record Logistics Receivable (made earlier)Original Dispatch Entry
Account
Dr/Cr
Debit (₹)
Credit (₹)
Logistics / COD Receivable A/c
Dr
3,540
—
To Sales / Revenue A/c
Cr
—
3,000
To GST Payable A/c (IGST @18%)
Cr
—
540
Total
3,540
3,540
This was the entry at the time of dispatch. Now that the delivery has failed and goods are returned, this entry must be reversed completely.
Entry 2B: On Customer Refusal — Reverse the Dispatch EntryCOD Refusal — Revenue Reversal
Account
Dr/Cr
Debit (₹)
Credit (₹)
Sales Returns A/c (Refused Delivery)
Dr
3,000
—
GST Payable A/c (Reverse Output Tax)
Dr
540
—
To Logistics / COD Receivable A/c
Cr
—
3,540
Total
3,540
3,540
Being reversal of COD dispatch entry on customer refusal. No cash collected — no bank entry needed. GST Payable reversed (₹540) — report as nil taxable supply in GSTR-1 or issue credit note if tax invoice was already issued. Sales Returns A/c records the refused order for management reporting. Goods returned to stock (see Entry 2C below).
Entry 2C: Goods Returned to Inventory (Optional but Recommended)Inventory Reinstatement
Account
Dr/Cr
Debit (₹)
Credit (₹)
Inventory / Stock A/c
Dr
2,200
—
To Cost of Goods Sold A/c
Cr
—
2,200
Total
2,200
2,200
Being reinstatement of returned goods at cost (₹2,200 = cost of power bank). Reverses the COGS entry made at dispatch. After reinstatement, inspect the goods for damage before returning to saleable inventory. If goods are damaged in transit, write off damage separately: Dr Damage/Loss A/c | Cr Inventory A/c.
⚠️ Return Shipping Cost — Who Bears It? The courier typically charges a Return to Origin (RTO) fee for failed COD deliveries. This is a real expense: Dr RTO / Return Freight Expense A/c | Cr Bank A/c (or Cr Courier Payable A/c). The RTO fee is separate from the original delivery charge and is not recovered from the customer since they refused the order. Track RTO costs by SKU to identify high-refusal products.
06 — Case Study: Partial COD / Underpayment
Case Study 3: Partial COD Collection
In rare cases, a customer may pay only part of the COD amount — for example, they don't have exact change, or the delivery executive accepts partial payment due to pressure. This creates a shortfall in the COD remittance that must be separately tracked and recovered.
FACTS OF THE CASE
Zerolev Home — Partial COD Collection
A customer orders curtains for ₹2,500 + GST @12% = ₹300. Total payable: ₹2,800. Customer pays only ₹2,500 at delivery (short by ₹300). Courier remits ₹2,500 and reports a ₹300 shortfall. COD handling fee = ₹50 + GST ₹9. Net bank receipt = ₹2,441.
Entry 3A: On Partial Delivery — Record Full Revenue, Flag ShortfallPartial COD — Revenue at Full Value
Account
Dr/Cr
Debit (₹)
Credit (₹)
Logistics / COD Receivable A/c
Dr
2,800
—
To Sales / Revenue A/c
Cr
—
2,500
To GST Payable A/c
Cr
—
300
Total
2,800
2,800
Revenue recognised at full invoice value. The shortfall (₹300) will appear as an outstanding balance in the COD Receivable A/c after remittance. It must be recovered from the courier or written off.
COD Shortfall Receivable A/c (₹300) is a current asset — claim from courier per the SLA agreement. Most logistics companies indemnify sellers for collection shortfalls under their COD guarantee policy. If unrecovered: Dr Bad Debt Expense A/c | Cr COD Shortfall Receivable A/c.
07 — GST on COD Sales
GST Treatment for COD Sales in India
GST on COD sales works identically to prepaid online sales — the same rates, same place of supply rules, and same GSTR-1 reporting obligations apply. The only operational difference is the timing of tax invoice issuance.
Aspect
COD Sales Treatment
Key Note
GST Rate
Same as product category (5%, 12%, 18%, 28%)
No special rate for COD — product determines rate
Place of Supply
Delivery address of customer
Same state = CGST+SGST; Different state = IGST
Time of Supply
Date of delivery / receipt of payment (whichever is earlier under CGST Act)
Typically delivery date for COD
Tax Invoice
Issue at time of dispatch or delivery — must accompany goods
Mandatory — also serves as delivery challan for COD
GSTR-1 Reporting
Report in GSTR-1 — B2C or B2B depending on buyer registration
COD sales usually B2C — state-wise aggregated in Table 7
COD Handling Fee GST
Courier charges 18% GST on handling fee — claimable as ITC
Courier must provide a valid GST invoice for ITC
Failed COD — GST
Reverse GST Payable if no delivery occurs
Issue credit note in GSTR-1 if invoice was already issued
✅ COD Tax Invoice Best Practice: Always include the tax invoice with the package physically — it acts as both the GST-compliant invoice and the delivery challan. In digital-first operations, send the invoice via email/SMS at dispatch and carry a physical copy with the parcel. The invoice date should be the dispatch date, not the order date. If using Amazon/Flipkart for COD, the platform generates the invoice on your behalf.
08 — COD Month-End Reconciliation
Month-End COD Reconciliation Framework
COD reconciliation is more complex than gateway reconciliation because you must track individual shipments across multiple statuses — in-transit, delivered, refused, in-return, and remitted. Use a 4-checkpoint reconciliation every month.
R1
DISPATCH RECON
AWBs Dispatched vs Receivable
Total Airway Bills (AWBs) dispatched in the month × invoice value = Opening COD Receivable. Match against courier's manifest. Any unregistered AWBs = entries missing in books.
R2
DELIVERY RECON
Delivered AWBs vs Revenue
COD delivered count × invoice value = Revenue in books. Match against courier's Proof of Delivery (POD) report. Refused AWBs = reversed entries. Undelivered in transit = still in COD Receivable.
R3
REMITTANCE RECON
Bank Credits vs Remittance Advice
Each bank credit from courier must match a remittance advice. Gross remittance = delivered AWB value. Net = after COD fee deduction. Any unexplained deductions = query with logistics partner.
R4
GST RECON
GSTR-1 vs COD Delivery Data
GST declared in GSTR-1 = GST on successfully delivered COD orders only. Refused/returned orders must be credit-noted. Verify place of supply split (IGST vs CGST+SGST) using customer pin codes.
Summary — All COD Journal Entries
Quick Reference — All COD Sales Journal Entries
Transaction
Debit
Credit
Key Note
COD sale at delivery confirmation
Logistics / COD Receivable A/c
Sales A/c + GST Payable A/c
Full invoice value as Dr — revenue at delivery
COD remittance from courier (net receipt)
Bank A/c + COD Handling Fee + ITC on Fee
Logistics / COD Receivable A/c
Gross Method — ITC claimable on courier's GST invoice
Customer refuses COD delivery
Sales Returns A/c + GST Payable A/c
Logistics / COD Receivable A/c
No cash movement — full reversal of dispatch entry
Goods returned to inventory (after refusal)
Inventory / Stock A/c
Cost of Goods Sold A/c
At cost; inspect for transit damage before restocking
Return to Origin (RTO) shipping charge
RTO / Return Freight Expense A/c
Bank A/c / Courier Payable A/c
Additional expense — deducted by courier on settlement
Shortfall = current asset; claim from courier per SLA
COD shortfall written off (unrecovered)
Bad Debt / COD Loss Expense A/c
COD Shortfall Receivable A/c
Write off if courier refuses liability
In-house delivery — cash collected by staff
Cash in Hand A/c
Sales A/c + GST Payable A/c
No logistics partner — direct cash collection
Staff deposits COD cash to bank
Bank A/c
Cash in Hand A/c
Daily cash-to-bank transfer; match petty cash register
COD via Amazon/Flipkart marketplace
Bank A/c + Commission + ITC + TCS Receivable
Marketplace / COD Receivable A/c
Marketplace handles collection; TCS still deducted @1%
09 — Interactive Classroom
Accounts School — COD Sales Accounting Interactive Classroom
Step into the virtual accounting classroom. Navigate through 6 animated lessons covering COD accounting — from the basic dispatch entry to partial collections, failed deliveries, and month-end reconciliation — with live quizzes, teacher narration, and interactive notes.
📦
Accounts School
COD SALES ACCOUNTING · CASH ON DELIVERY · ZEROLEV
Step into a virtual classroom! Learn COD journal entries, logistics receivable accounting, failed delivery reversals, partial COD, and reconciliation with an animated teacher, interactive blackboard, live quizzes, and voice narration.
📦
Accounts School
COD SALES ACCOUNTING
Beginner – Intermediate
LESSON 1 / 6
📌 Today
COD Accounting
00:00
⭐ Stars
0 stars
Welcome class! Let's master COD Accounting! 📦
📚 Lessons
📝 Notes
🎯 Quiz
LESSON 1 OF 6
🎓
Class Dismissed!
Excellent! You completed all 6 lessons on COD Sales Accounting. You now understand dispatch entries, failed deliveries, partial COD, shortfall handling, and reconciliation. Go master your COD books! 📦
6
LESSONS
0
QUIZ SCORE
10 — FAQ
Frequently Asked Questions — COD Sales Accounting
What is the journal entry for a COD (Cash on Delivery) sale?
There are two entries. At delivery confirmation: Dr Logistics/COD Receivable A/c (full invoice value including GST) | Cr Sales A/c (net of GST) | Cr GST Payable A/c (GST amount). On COD remittance from courier: Dr Bank A/c (net amount) | Dr COD Handling Fee Expense A/c (courier's fee) | Dr ITC A/c (GST on handling fee) | Cr Logistics/COD Receivable A/c (full amount). This is the Gross Method — always preferred over netting.
When should revenue be recognised for COD sales — at dispatch or delivery?
Revenue should be recognised at delivery confirmation — when the courier hands over goods and collects cash from the customer. Under Ind AS 115, revenue recognition requires transfer of control of goods to the buyer AND receipt (or reasonable certainty of receipt) of consideration. For COD, both conditions are met at delivery — not at dispatch, since the customer hasn't paid and could refuse at the door. Some sellers recognise at dispatch for simplicity, but delivery date is the more conservative and technically correct approach.
How do I account for a refused / failed COD delivery?
When a customer refuses COD delivery: Step 1 — Reverse Revenue: Dr Sales Returns A/c (net value) | Dr GST Payable A/c (reverse the GST) | Cr Logistics/COD Receivable A/c (full invoice value). No cash entry since no cash was collected. Step 2 — Reinstate Inventory: Dr Inventory/Stock A/c (at cost) | Cr Cost of Goods Sold A/c. Step 3 — RTO Freight: Dr Return Freight Expense A/c | Cr Bank/Courier Payable A/c (for the Return to Origin charge). If a tax invoice was already issued, issue a credit note in GSTR-1.
Is GST applicable on COD sales? Is the treatment different from prepaid?
Yes, GST is fully applicable on COD sales at the same rates as prepaid online sales (5%, 12%, 18%, or 28% depending on the product). The place of supply rules are identical — if seller and buyer are in the same state, CGST+SGST applies; different states = IGST. The only differences for COD are: (a) time of supply is delivery date (not payment date); (b) tax invoice must physically accompany the shipment; (c) for refused deliveries, issue a credit note in GSTR-1 to reverse output GST. There is no special GST rate or exemption for COD mode.
What is the COD handling fee and can I claim ITC on it?
COD Handling Fee (also called COD Remittance Charge or COD Collection Charge) is a fee charged by the logistics partner for collecting cash from the customer and remitting it to you. Typical rates are ₹20–₹60 per shipment flat, or 0.75–1.5% of the COD amount, plus 18% GST. Yes, you can claim ITC on the GST component — provided the courier gives you a valid GST tax invoice with your GSTIN. Always insist on a proper invoice from your logistics partner. ITC on COD fees is claimable in GSTR-3B as input on services.
How do I handle COD sales on Amazon or Flipkart — does TCS apply?
Yes — GST TCS under Section 52 of the CGST Act applies to all sales through e-commerce operators, including COD orders. Amazon and Flipkart collect 1% TCS on the taxable value of COD sales and deposit it with the government. For the seller: At COD settlement from Amazon: Dr Bank A/c | Dr Commission Expense | Dr ITC (on commission) | Dr GST TCS Receivable A/c | Cr Amazon Marketplace Receivable A/c. TCS is a current asset — claim it in GSTR-3B after Amazon files GSTR-8. Do not confuse GST TCS with Income Tax TDS (Section 194-O).
How do I reconcile COD accounts at month-end?
Month-end COD reconciliation requires four parallel reconciliations: R1 — AWB Reconciliation: Total shipments dispatched × invoice value = opening COD Receivable. R2 — Delivery Reconciliation: Delivered AWBs (per courier POD report) × invoice value = COD revenue booked. Refused AWBs = reversed entries. In-transit = still in receivable. R3 — Remittance Reconciliation: Sum of bank credits from courier = sum of remittance advice amounts. Any gap = COD shortfall or timing difference. R4 — GST Reconciliation: GSTR-1 output tax on delivered COD orders must match books. Refused orders = credit notes. All 4 must agree before filing GSTR-1.
Should I maintain separate ledger accounts for each courier in COD accounting?
Yes — always maintain separate COD Receivable ledger accounts per logistics partner (e.g., Delhivery COD Receivable, BlueDart COD Receivable, Ekart COD Receivable). This makes it far easier to: (a) match each courier's remittance statement against the outstanding balance; (b) identify overdue remittances; (c) track COD shortfalls by partner; (d) calculate courier-specific refusal rates. In Tally Prime, create sub-ledgers under a group "COD / Logistics Receivables" (Current Assets). Reconcile each partner separately every week using their settlement reports.