Your store shows sales. The courier shows delivered parcels. Your bank balance shows a different amount. Which number is right?
For a business selling through cash on delivery, each record answers a different question. COD reconciliation means connecting the order, shipment, courier settlement and bank receipt so every collected rupee has an explanation. Start with those four records, then investigate the exceptions.
Keep four records connected
| Record | What it tells you | Reference to retain |
|---|---|---|
| Store order | What the customer ordered and the amount to collect | Unique order number |
| Courier shipment | What happened to the parcel and what collection is confirmed | Tracking or consignment number |
| Courier settlement | Which collections, deductions and adjustments the courier included | Settlement batch and statement line |
| Bank receipt | What actually reached the business account | Bank transaction reference and date |
Customer names are poor matching keys: spellings change and the same customer can order twice. Preserve the order-to-tracking connection when booking the shipment. If an order needs multiple parcels, record each shipment separately and allocate the expected collection deliberately.
Delivered, paid and settled mean different things
Shopify lists COD as a manual payment method. Manual-payment orders initially appear unpaid or pending; the merchant records payment when it has been received. Shopify also keeps payment, fulfillment and return statuses separately. A fulfilled order indicates that its items have been fulfilled and shipped; it is not proof of a bank deposit.
For your operating record, distinguish parcel delivered, customer payment confirmed and courier remittance matched to the bank. Confirm collection using the evidence your courier provides. Keep the outstanding amount with the courier visible until it is settled.
Update the store’s payment status under a consistent, evidence-based process. Do not mark every order paid simply because it was dispatched, and do not use one batch deposit to mark unrelated orders paid. If an integration already updates payment status, understand its trigger before adding a second automation.
A three-order example in Pakistani rupees
Illustrative example only: these fictional orders demonstrate reconciliation. The deduction below is a made-up statement total, not a published courier charge, tax rate or pricing recommendation.
| Order | COD amount | Confirmed outcome | Settlement position |
|---|---|---|---|
| NX-4101 | PKR 4,200 | Delivered; PKR 4,200 collected | Included in batch B17 |
| NX-4102 | PKR 1,800 | Returned without collection | No customer collection to remit |
| NX-4103 | PKR 3,000 | Delivered; PKR 3,000 collected | Awaiting settlement |
In this example, batch B17 contains the PKR 4,200 collection for NX-4101 and a combined statement deduction of PKR 180. Its expected net receipt is PKR 4,200 − PKR 180 = PKR 4,020. A PKR 4,020 bank receipt with the matching settlement reference closes that batch.
The total order value is PKR 9,000, but customer collection is PKR 7,200. PKR 3,000 remains awaiting settlement. The returned order contributes no collection; its parcel, stock condition and any applicable charges still need checking.
This is why comparing all orders directly with today’s bank deposit creates confusion. The bank receipt is also not profit. Product costs, delivery costs, returns and other business expenses are separate considerations.
Build a reconciliation sheet your team can maintain
Use one row per shipment or collection event, with a separate summary for each settlement batch. A spreadsheet is enough to establish the process before you decide whether to connect it to business management software.
- Order and shipment: order number, tracking number, courier, booking date and expected COD amount.
- Delivery and collection: latest delivery outcome, event date, confirmed amount collected and supporting reference.
- Settlement: batch number, statement date, gross collection, each deduction or adjustment and expected net amount.
- Bank match: transaction reference, receipt date, amount allocated and remaining difference.
- Follow-up: exception reason, responsible person, next action and review date.
Keep the original exports and statement files unchanged. Perform matching in a working copy and record corrections. Retain only customer information needed for the task, and restrict access to financial records.
Reconcile the batch before chasing the difference
- Choose a review cutoff. Record when each report was exported so later updates do not look like missing data.
- Match statement lines to tracking numbers. Then use your saved tracking-to-order link. Investigate missing or repeated references.
- Calculate the expected batch amount. Start with included collections, add supported credits, and subtract the deductions and adjustments shown on the statement.
- Match the bank evidence. Use the reference, amount and date together. If one deposit covers several batches, retain the allocation rather than forcing a one-to-one match.
- Close only explained differences. Store the evidence and keep unresolved amounts in an exception list.
Use the courier’s actual statement and agreement for charges and settlement timing. Do not assume another seller’s rates apply to your account. For example, Leopards’ Shopify app FAQs state that COD settlement details are available in its dashboard; the exact reports and access for your account should be checked with the courier.
Give every exception a next action
| Exception | Next useful check |
|---|---|
| Collected but not settled | Check the agreed settlement terms and whether the shipment appears in a later batch. |
| Unexpected deduction | Compare the statement line with the agreement; retain the query and response. |
| Unmatched bank receipt | Check combined batches, references and receipt dates before allocating money. |
| Returned parcel not received | Trace the physical return; inspect it before restoring sellable stock. |
| Duplicate tracking or collection | Check replacements, rebookings and repeated imports before changing totals. |
Give each open item an owner and follow-up date. “Pending” without a reason is not enough. Distinguish a routine wait within agreed terms from an item that needs a courier query.
Automate the matching, keep review for the exceptions
A useful first automation imports approved exports, checks duplicate references and proposes exact matches. It should preserve the original data and show why it matched each item. Reimporting the same file must not create another collection or receipt.
Keep uncertain matches, unusual deductions, refunds and corrections for a responsible person to review. Test the workflow with a small sample containing deliveries, returns and combined deposits before relying on it. The available integrations and permissions depend on your actual store, courier and systems; a proposed connection should be verified during scoping.
If this process is part of a new store, include it in your Shopify launch checklist. For an existing store, begin with the most recent settlement batch and resolve it fully before expanding the review period.
Make the next settlement easy to explain
A good reconciliation lets your team answer three questions: what was collected, what reached the bank, and what still needs action. Bring a sample order export and courier statement to a discussion about your Shopify store workflow. Remove customer details that are not needed for the discussion.
Discuss your Shopify order and settlement workflow with NexZion Solutions →
Sources
Platform guidance checked on 27 October 2026. The worked example and reconciliation checklist are original operational illustrations.
NexZion Solutions publishes practical guides based on business-software, compliance-workflow, website and automation implementation experience in Pakistan.

