How Malaysian F&B Teams Should Reconcile POS, QR, and Delivery Orders in 2026
A Malaysian cafe can have a modern POS and still close the day badly. The cashier report says RM8,420. DuitNow QR receipts show RM3,180. Delivery orders from Grab, Beep, or a direct ordering page show another number. Staff meals, voids, refunds, cash drawer variance, and stock wastage sit in different notes. By the time the owner checks the numbers, nobody remembers which order was cancelled.
Here is the short answer for a Malaysian outlet manager: close each day by service channel first, payment method second, and stock movement third. Do not start from the bank statement. Start from the POS order log, then tie QR, card, cash, delivery, refunds, staff meals, wastage, and settlement batches back to that log before the next trading day starts.
This playbook is for cafes, QSRs, dessert shops, salons with retail counters, pharmacies, grocers, and small chains using StoreHub, HitPay, Oddle, EasyStore, EasyParcel, or similar Malaysian operating tools.
The daily close model
Use one daily close file or dashboard per outlet. The exact software can differ, but the structure should not.
| Close section | What it controls | Owner |
|---|---|---|
| POS orders | Gross sales, voids, refunds, discounts, staff meals | Outlet manager |
| Payment methods | Cash, card, DuitNow QR, e-wallet, payment links | Cashier or finance assistant |
| Delivery/direct orders | Grab, Beep, Oddle, own website, marketplace food orders | Shift lead |
| Stock movement | Sold items, wastage, transfers, comps, ingredient variance | Kitchen or retail lead |
| Exceptions | Missing payment, duplicate order, refund pending, drawer variance | Outlet manager |
| Accounting handoff | Sales summary, fees, settlement, open items | Finance owner |
A good close process is boring. Every day should end with the same six sections, the same owners, and the same cutoff time. If the system changes every shift, the owner becomes the reconciliation tool.
Step 1: Lock the POS order log
The POS order log is the source of truth for what the outlet intended to sell. Export or lock it after closing. Include completed orders, voids, refunds, discount lines, service charges, staff meals, and cancelled orders.
For StoreHub users, this is where the POS earns its place. The value is not only taking payment at the counter. It is having a structured order record that can be compared against payments, stock, loyalty, and outlet-level reports. For any Malaysian outlet with multiple cashiers, do not let staff edit yesterday's orders without manager approval.
Minimum fields:
- order number;
- outlet/register;
- cashier or staff ID;
- order type: dine-in, takeaway, delivery, pickup, retail;
- gross amount;
- discount or voucher;
- tax/service charge where relevant;
- final payable amount;
- payment method;
- refund/void/staff-meal flag.
If any of those fields are missing, fix POS configuration before scaling more outlets.
Step 2: Reconcile payment method totals
Do not combine all payment methods into one sales number. Malaysian outlets often have cash, card terminal, DuitNow QR, e-wallet, payment link, delivery platform settlement, and direct bank transfer in the same day.
Daily close should split:
| Payment method | Matching rule | Common issue |
|---|---|---|
| Cash | Drawer count equals POS cash total after floats and payouts | Staff forgets paid-out cash or cash refund |
| Card | Terminal batch equals POS card total | Batch closes after midnight or refund not posted |
| DuitNow QR | QR receipt/export equals POS QR orders | Customer pays wrong amount or no order reference |
| E-wallet | Wallet report equals POS e-wallet total | Settlement date differs from sale date |
| Payment link | Link report equals manual/online order total | Customer pays after order was cancelled |
| Delivery platform | Platform order total equals POS delivery order total before commission | Commission and promo fees hide gross sales |
The key rule: match customer payment to POS order first, then settlement to bank later. Bank deposits are delayed and net of fees, so they are a poor starting point for daily outlet close.
Step 3: Separate delivery and direct ordering
Delivery is where Malaysian F&B reconciliation gets messy. Platform orders, direct ordering pages, QR ordering, and WhatsApp orders can all enter the kitchen, but they do not settle the same way.
Create separate channels:
- walk-in dine-in;
- walk-in takeaway;
- direct QR/order-and-pay;
- own website or Beep/Oddle style direct order;
- GrabFood/Foodpanda/ShopeeFood or similar platform order;
- manual WhatsApp or phone order.
Each channel needs a daily order count, gross sales total, refund/cancel count, and payment status. Do not let delivery platform net payout become the only record. Net payout hides commission, promotions, delivery subsidy, packaging charges, and cancelled order treatment.
Oddle or similar direct-ordering tools are useful because they keep more customer relationship and ordering data under the merchant's control. Platform delivery is useful for demand, but it should be reconciled as a channel with fees, not as a clean sales number.
Step 4: Tie stock to sales
F&B teams often reconcile money but ignore stock until month end. That is too late. Daily close should produce at least a rough stock exception view.
For a cafe or restaurant, track:
- high-cost ingredients: milk, coffee beans, meat, seafood, dessert bases;
- prepared items wasted or comped;
- staff meals;
- transfers between outlets;
- recipes or combo items that consume multiple ingredients;
- cancelled orders that already used kitchen stock.
For retail F&B or grocery, track:
- SKU sold by outlet;
- damaged or expired stock;
- promo bundles;
- online orders picked from store stock;
- delivery orders not yet collected by rider;
- inter-branch stock transfers.
The point is not perfect inventory accounting every night. The point is catching obvious variance while staff still remember what happened. If milk usage is double normal sales, the manager should ask today, not three weeks later.
Step 5: Record exceptions before closing
Every daily close should end with an exception list. Keep it short and owned.
| Exception | Example | Owner action |
|---|---|---|
| Missing payment | POS order marked paid, no QR/card/cash proof | Verify before next shift |
| Duplicate payment | Customer paid QR twice | Refund or hold as liability |
| Drawer variance | Cash short RM42 | Manager review and staff note |
| Delivery mismatch | Platform order cancelled but POS order still completed | Reverse or tag as wastage |
| Refund pending | Card refund not settled yet | Track until gateway confirms |
| Stock variance | Sold 80 cups, milk usage suggests 120 | Kitchen lead checks wastage/recipe issue |
Do not leave exceptions as vague comments. Each item needs a status: open, explained, corrected, refunded, written off, or escalated.
Step 6: Finance handoff
Finance does not need every kitchen note. Finance needs a clean daily summary and an exception trail.
Handoff package:
- sales by outlet and service channel;
- sales by payment method;
- refunds, voids, discounts, staff meals, and comps;
- delivery gross sales, platform fees, and expected settlement;
- QR/card/e-wallet settlement batches still pending;
- stock exceptions that affect cost of goods;
- unresolved cash or payment variance.
For multi-outlet operators, send the same template every day. If each branch invents its own format, consolidation becomes manual work again.
A practical Malaysian stack
For a 4-outlet Klang Valley cafe group:
- StoreHub as POS, outlet reporting, inventory, loyalty, and manager dashboard;
- HitPay for payment links, QR/card flows, or supplemental online payments where needed;
- Oddle or direct ordering for owned pickup/delivery orders;
- EasyParcel if retail products, merchandise, or packaged goods need courier fulfillment;
- EasyStore if the brand also sells packaged coffee, merch, or retail SKUs across website and marketplaces.
Do not buy every tool at once. Start with POS close, payment matching, and one delivery channel. Add stock and loyalty after the daily close is stable.
Close the day, then go home
Malaysian F&B reconciliation should happen daily, not at month end. Use the POS order log as the anchor. Split service channels. Split payment methods. Match delivery as gross sales plus fees, not only net payout. Tie stock exceptions to sales before memory fades.
The business that wins is not the one with the fanciest POS screen. It is the one where yesterday's sales, payments, stock, refunds, and exceptions are clear before today's lunch rush starts.