
A cash on delivery workflow in Pakistan is incomplete until the order, courier statement and bank receipt agree. A delivered parcel is an operational milestone. It is not, by itself, proof that the merchant has received the money owed. Treating these events as interchangeable can hide missing settlements and unresolved deductions.
For Pakistani online sellers, a dependable process separates physical delivery, collection by the courier, settlement allocation and receipt in the business bank account. This guide proposes a practical control framework, not a statement of any courier’s fees, settlement schedule or tax treatment. Verify those details in your current agreement.
Start a cash on delivery reconciliation register
Use one record for each shipment, linked to its store order. Preserve the original order reference and courier consignment number as separate fields. If an order ships in two parcels, a single order row may conceal which parcel was delivered and which payment remains outstanding.
Capture the COD amount expected at dispatch, agreed shipping charges, shipment date, latest delivery event, expected settlement reference, deductions, net amount allocated and verified bank receipt. Record currency explicitly, even when every current shipment uses PKR. Keep the source statement or export available for investigation.
The courier integration guide explains the systems side of moving shipment information. Reconciliation adds a financial control: identifying which source supports each amount and who approves exceptions.
Keep delivery and money states separate
Define a small set of operational statuses such as dispatched, delivered, delivery exception and returned. Maintain separate financial states such as awaiting settlement, statement received, partially matched, bank verified and disputed. This prevents a delivery update from silently closing an unpaid balance.
On Shopify, official manual-payment documentation explains that COD is a manual payment method and that payment must be marked paid after it is received. A courier scan should not automatically be treated as merchant receipt without understanding your integration and accounting policy.
Agree with finance which event changes each system status. Customer payment to a courier, recognition of a courier receivable and cash reaching your bank may need distinct records. Ask your accountant how to reflect those events; the store’s paid flag is not a complete accounting ledger.
- Dispatch team: confirms shipment references and the amount to collect.
- Operations: investigates delivery and return discrepancies.
- Finance: matches settlement statements to bank receipts and ledger entries.
- Approver: authorizes write-offs, adjustments and disputed deductions.

Match statements at shipment and batch level
Import the courier’s settlement statement without overwriting the original file. Match each line by the strongest available identifier, usually the consignment reference, then check the linked order and amount. Names and phone numbers are useful investigation clues but unreliable primary matching keys.
Calculate an expected net settlement from the collection amount and documented adjustments under the agreement. Keep courier fees, returns charges and other deductions in separate columns rather than hiding them inside a net total. Never assume that a deduction is valid simply because the courier supplied it.
Next reconcile the statement batch total against the actual bank credit. One bank deposit can cover many shipments, and an individual shipment can involve later adjustments. Preserve those allocations so a total that matches cannot conceal an incorrectly assigned order.
Handle returns and partial matches explicitly
A returned parcel may involve a failed collection, a delivery charge and a stock movement, depending on the contract and circumstances. Record the return event separately from any refund or courier adjustment. Verify physical receipt and product condition before treating returned stock as available to sell.
If a statement omits a delivered shipment, move it into an exception queue with the supporting delivery event, expected amount, assigned owner and next follow-up date. If the bank receives less than the statement total, investigate the difference at batch level before editing individual orders to force a match.
For a planning example, imagine a settlement containing several orders and one later deduction. The correct response is to trace the deduction to its shipment and agreement, not spread it across every order. This is an illustrative process, not a reported merchant result.
Automate matching without losing the audit trail
Begin with a controlled register if shipment volumes are manageable. When imports become repetitive, automate exact-reference matching while sending missing, duplicated or inconsistent records to human review. Re-running the same import must not create duplicate settlement allocations.
Keep import timestamps, source identifiers and adjustment history. Limit who can change expected collection amounts after dispatch, and require a reason for every manual override. Restrict access to customer contact details and bank documents to people who need them for their role.
Include these operational requirements in the ecommerce development scope. A checkout that accepts COD does not necessarily provide settlement reporting or exception handling.
Close the week with an exceptions review
Review unmatched delivered shipments, overdue batches, disputed deductions and returns awaiting inspection. Define overdue using your courier agreement rather than a generic internet timetable. Assign each open item an owner and retain evidence when the issue is closed.
Track outstanding value and age alongside delivery counts. A healthy dispatch dashboard can coexist with unsettled receivables. The aim is a repeatable chain of evidence from order to shipment to statement to bank, with unresolved differences visible instead of silently written away.


