CS ComplyStream
Toggle menu
MOFU P2

FBR Invoicing for Cash-on-Delivery Shopify Orders

COD makes invoice timing operationally difficult because order creation, dispatch, delivery and payment happen at different times. There is no safe universal trigger copied from another store.

The timing problem

A COD order may be created today, dispatched tomorrow, delivered next week and remitted later. It may also be refused. FBR’s FAQ describes digital invoices at time of supply—receipt of payment or delivery, whichever is earlier—by reference to section 2(44) of the Sales Tax Act, 1990. Get advice on your exact flow.

Option 1: at order

Order creation is easy to automate but may precede supply, payment and dispatch, and cancellations are common. Use this only if your adviser concludes it reflects the legal timing for your facts.

Option 2: at dispatch

Dispatch is operationally observable and filters abandoned orders, but it may still precede delivery and payment. Define what event counts as dispatch across each courier.

Option 3: at delivery or collection

Delivery or courier collection can align closely with completion but webhooks and remittance files may be delayed or corrected. Define evidence, cut-offs and outage handling.

Returns and withholding

Document refused parcels, partial deliveries and later returns. Separately reconcile the courier’s COD withholding under the current S.R.O. 1429(I)/2025 regime. Do not use cancellation as a generic return workflow; STGO 01 of 2026 and section 9 note rules may lead to different processes.

Build one courier event model

Courier statuses are inconsistent: “delivered,” “settled,” “returned,” “return in transit” and “lost” can arrive through webhooks, portals or spreadsheets. Map each provider’s statuses to a small internal set and preserve the original event and timestamp. Do not let a corrected courier scan silently rewrite the invoice history.

Set an exception queue for orders that remain dispatched too long, show delivery without collection, receive partial settlement or move from delivered to returned. Accounts and operations should review the same record instead of maintaining separate spreadsheets.

Reconcile COD by value and event

Match the Shopify order, courier tracking number, FBR invoice where issued, amount collected, withholding, courier fee, net remittance, return charge and bank deposit. A count match can hide partial delivery or an incorrect collected amount.

Run the reconciliation frequently enough to act within any applicable correction process, but do not assume an internal courier update changes the legal invoice automatically. Ask the adviser how each exception should be documented and reflected.

Write the trigger as a rule

The approved policy should name the exact system event, time zone, source of truth, fallback when a courier feed is late and owner for manual exceptions. Revisit it when adding a courier, offering partial payments or changing fulfilment locations.

Last updated: 2026-08-04

Not tax advice. Confirm registration scope, rates, deadlines, and filing obligations with a Pakistani tax practitioner against current FBR SROs and the Sales Tax Act. ComplyStream is not affiliated with FBR or PRAL.

See the complete Shopify invoicing workflow

Learn how order data, approved tax mappings, FBR responses and reconciliation fit together.

Related guides