COD Payment Lots
A COD payment lot batches together the Cash-on-Delivery packages whose collected cash is being banked and reconciled as a single deposit.
Cash on Delivery (COD) means the customer pays for the goods in cash to the delivery agent — the postman on an India Post despatch, the courier rider otherwise — rather than in advance. See "Understanding COD" on the Packages page for the full explanation. This page is where the cash that has accumulated across many COD packages is banked and confirmed back into AIR's accounts.
Where to find it & who can see it
Open Despatch › COD Payment Lots in the left navigation (it lives in the Despatch group even though it is payment-related). The list is visible to anyone holding cod_payment.view (or a super administrator). It is index-only — no create or edit form.
There is no button anywhere in the console to create a lot, add packages to a lot, or record the amount received for an individual package within a lot. Those capabilities exist only as service methods (CodPaymentService::recordItem() and addPackages()) with no wired action — meaning a lot arrives here already built, with its packages and expected amounts already attached, via the API or another backend process. What you do on this page is drive the lot through its final three steps: depositing the cash, marking it cleared, and reconciling it.
The lot lifecycle
A lot moves through five states, but only four of them are ever reached. Lots are created as Draft outside this console; everything from Deposited onward is driven from this list. Submitted is defined in the system but nothing ever writes it — no screen, no API call and no background job produces it, so in practice every lot goes straight from Draft to Deposited. It is accepted as a starting point by Deposit purely so that nothing breaks if it is ever brought into use.
Columns
| Column | Shows |
|---|---|
reference | The lot's identifying reference, shown as a badge. Searchable. |
| Carrier | carrier.name — the carrier whose COD collections this lot covers. |
| State | A coloured badge — see the diagram above for the colour key. |
total_packages | Numeric count of packages included in the lot. |
total_expected_amount | The sum, in ₹, of what all the lot's packages were expected to collect on delivery. |
total_received_amount | The sum, in ₹, actually banked for the lot (entered when you Deposit it). |
| Discrepancy | Computed as expected − received. A positive number means a shortfall (less was collected/banked than expected); this column is not stored, it is calculated for display. |
Filter
Select Filters for a State drop-down covering all five CodLotState values: Draft, Submitted, Deposited, Cleared, Reconciled.
Actions
- Deposit — Draft or Submitted → Deposited
Record that the lot's cash has been physically banked. There is no separate confirmation dialog — the required fields on the form act as the confirmation step:
Field Type Required Notes total_received_amountNumber (₹) Yes The amount actually banked for this lot — may differ from total_expected_amount, which is what feeds the Discrepancy column.bank_nameText No bank_branchText No deposit_dateDate Yes The date the cash was deposited. deposit_referenceText No Bank slip / reference number, if available. Blocked if the lot is emptyDepositing is refused if the lot has zero items attached. Since there is no console action to add packages to a lot, this can only happen for a lot that was built incorrectly upstream — check with whoever/whatever created it.
- Clear — Deposited → Cleared
Record that the bank has confirmed the deposit has cleared. Again, no separate confirmation dialog — the form's required field is the only gate:
Field Type Required Notes clearing_dateDate Yes The date the bank confirmed clearance. - Reconcile — Cleared → Reconciled Confirmation required
The final step. A plain confirmation dialog is shown — there is no form. Confirming reviews every item in the lot and flags the underlying package of every item marked Matched or Over as
cod_received = true(the same flag you would otherwise set one-by-one with Mark COD received on the Packages page). This is the state where a lot's job is done.
Bulk actions
There are none — lots are actioned one at a time.
Related pages
See Packages for how individual COD packages are flagged and tracked, and Sale Orders for the order-level view of the customer this collection ultimately belongs to.