COD reconciliation, parcel by parcel
The most painful manual job in Pakistani e-commerce is checking whether the courier actually paid you for every parcel it delivered. It is done in a spreadsheet, monthly, by eye, and it is where money quietly goes missing.
Why the monthly check misses money
- A remittance is a lump sum. It covers parcels delivered across several days, minus the courier's charges and 4% withholding tax, sometimes plus an adjustment. A total that roughly agrees with a date range feels reconciled and proves nothing.
- Most parcels settle fast, and the slow ones are the problem. On real parcels we measured a median of 2 days from delivery to settlement, but a 90th percentile of 8 days (our benchmark, n = 11,193). The parcels in that tail are the ones a monthly total hides.
- Returns change what "delivered" means. About 27.5% of COD parcels come back. A parcel that is expected in a payout and never paid is a loss nobody notices.
- Some payout lines aren't income. Claim settlements and balance adjustments arrive in the same transfer as your COD. Counted as sales, they overstate the month.
Matched on the shipment, not on the date
Kaarobar keys each remittance line to its shipment ID, the identifier that follows the physical parcel, so a payout is matched to the exact order it settles. When a total does not agree, the app can say which parcels are responsible instead of only that the month is short.
How it works
- Connect your courier account. Kaarobar reads your parcels from the courier's merchant API, including ones booked in the courier's own portal.
- Each delivered parcel is checked for payment. For PostEx that is the courier's per-parcel payment status; for Trax it is the settlement data Trax sends. A parcel is only marked settled when the courier says it has paid for it, never inferred from a bank line.
- The transfer reference is stored per parcel. PostEx's CPR number or Trax's payment ID sits next to the order, so you can find the exact transfer a parcel was paid in.
- Unpaid parcels are aged. Delivered-but-unsettled COD is bucketed into 0–7, 8–14, 15–30 and 31+ days since delivery. Anything in 31+ is overdue and shown as an exception.
- Shopify is told. Orders are tagged Payment Settled or Payment Pending in your Shopify admin, so your team can see the status without opening Kaarobar.
The four states a COD order can be in
Payout lines that are not income
A courier payout is not a single kind of money. Alongside the COD it collected on your behalf, it can contain adjustments, claim settlements and balance payments: money being returned to you rather than earned. Add the payout up as revenue and every month is overstated by exactly the amount you were refunded.
Kaarobar classifies those lines as recoveries. They restore cash without inflating sales.
Damage and loss claims
When a parcel is lost or destroyed in the network, the courier owes you for it. Kaarobar keeps claims in their own ledger, with the amount asked for, the amount recovered and a deadline, so an unpaid claim stays visible instead of quietly becoming a write-off.
What you get
- A receivable you can trust: what each courier still holds today, with its age.
- The short-paid parcel by name, with its order, shipment ID and the transfer it should have been in, ready to raise with the courier.
- Sales that aren't inflated by refunds and claim money arriving in the same transfer.
- A settlement CSV of the rows you're looking at, filtered by date range and settlement status, for your accountant or a dispute.
- Profit on settled cash. Reconciliation feeds true net profit and cash flow, so neither counts money that hasn't arrived.
Want to see the size of the gap before installing? The COD profit calculator shows how much of a month's sales reaches your account after returns, courier charges and withholding tax. For the manual method, read how to reconcile a courier remittance, step by step.
Reconcile your last month — install freeQuestions merchants actually ask
- Which couriers can be reconciled?
- PostEx and Trax are live. The reconciliation itself is courier-independent — it works from shipment IDs and payment statuses that every courier exposes in some form — so a new courier adapter brings reconciliation with it.
- What happens when a remittance line matches no order?
- It is surfaced rather than dropped. An unmatched line is usually an adjustment or a parcel booked outside the app, and both are worth seeing.
- Are parcels I booked in the courier portal reconciled too?
- Yes. Kaarobar reads parcels from your courier account, not only the ones it booked, and links them to their Shopify orders by tracking number.
- How do I know which transfer paid for a parcel?
- The transfer reference is stored against the parcel: the CPR number for PostEx and the payment ID for Trax. Filter the settlement list or open the order and it is there.
- When is a delivered parcel counted as overdue?
- Unpaid COD is aged from the delivery date into 0–7, 8–14, 15–30 and 31+ day buckets, and 31+ days is shown as overdue. Most parcels settle within days, so anything past a month is worth raising with the courier.
- Courier se COD ki payment kab aayegi, ye kaise pata chalega?
- Kaarobar har delivered parcel ki payment status courier se check karta hai. Jo parcel settle ho gaya us ke saath transfer reference dikhta hai, aur jo abhi pending hai woh 0–7, 8–14, 15–30 aur 31+ din ke hisaab se dikhta hai.
- Do I still need to check the courier portal?
- For the day-to-day, no — booking, tracking and remittances are in one place. The portal remains the source of truth for disputes, and Kaarobar keeps the shipment IDs you need to raise one.