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.

New to COD?

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.

This screen only handles the tail end of a lot's life

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

ColumnShows
referenceThe lot's identifying reference, shown as a badge. Searchable.
Carriercarrier.name — the carrier whose COD collections this lot covers.
StateA coloured badge — see the diagram above for the colour key.
total_packagesNumeric count of packages included in the lot.
total_expected_amountThe sum, in ₹, of what all the lot's packages were expected to collect on delivery.
total_received_amountThe sum, in ₹, actually banked for the lot (entered when you Deposit it).
DiscrepancyComputed 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.

Screenshot placeholderThe COD Payment Lots list: Reference, Carrier, State, Total Packages, Total Expected Amount, Total Received Amount and Discrepancy columns, with a lot in the "Deposited" state showing its Clear action.

Actions

Permissions

All three actions below need cod_payment.reconcile, in addition to cod_payment.view to see the list.

  1. Deposit — Draft or SubmittedDeposited

    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:

    FieldTypeRequiredNotes
    total_received_amountNumber (₹)YesThe amount actually banked for this lot — may differ from total_expected_amount, which is what feeds the Discrepancy column.
    bank_nameTextNo
    bank_branchTextNo
    deposit_dateDateYesThe date the cash was deposited.
    deposit_referenceTextNoBank slip / reference number, if available.
    Blocked if the lot is empty

    Depositing 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.

  2. Clear — DepositedCleared

    Record that the bank has confirmed the deposit has cleared. Again, no separate confirmation dialog — the form's required field is the only gate:

    FieldTypeRequiredNotes
    clearing_dateDateYesThe date the bank confirmed clearance.
  3. Reconcile — ClearedReconciled 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.