Feature #11033
closedhardware tapand pay and bugs
Added by sairam machavarapu about 1 month ago. Updated about 1 month ago.
Subtasks
Related issues
Updated by sairam machavarapu about 1 month ago
- Status changed from New to Closed
Sunmi hardware and Tap to Pay
The largest piece of the day. Enabled contactless card payments directly on Sunmi terminals (V3 MIX and T3 Pro), so the devices accept tap-to-pay without a separate card reader.
This required native Android work alongside the app changes:
Stripe Tap to Pay integration with on-device card reading
Driver for the Sunmi built-in thermal printer, including automatic paper-width detection — the V3 MIX ships 58mm and the T3 Pro 80mm, so receipts previously wrapped incorrectly on one of them
Cash drawer control
Print routing, so each order prints at the station that took it rather than every printer at once
Settings screens were extended so staff can configure the hardware per terminal.
Uber Eats webhook configuration
The Uber Eats webhook signing secret was only readable from an environment variable, meaning it could not be changed without a redeployment. It is now managed from the superadmin settings screen, with the environment variable kept as a fallback so existing deployments keep working unchanged.
Also fixed a data-loss risk in the same screen: because the UI sends an empty value for secret fields left untouched, saving the form would have wiped the stored webhook secret. It now preserves the existing value, matching how the other credential fields already behaved.
Cash refunds
Reworked how refunds are handled for cash-paid orders. Previously every refund request — cash or card — opened a dispute ticket that someone had to investigate and resolve later. For cash that is unnecessary ceremony: the manager is standing at the till and can hand the money back immediately.
Cash orders now show a Refund action instead of Dispute, and the refund is recorded as completed straight away. The full audit record is still written — reason, items, amount, and who approved it — so reporting and reconciliation are unaffected. Card and online orders are unchanged and still go through the dispute process, since that money has to be returned via the payment gateway.
Eligibility is decided on the server, not the app, so a card order cannot be refunded this way even if the request is tampered with. Split payments that include any card portion also stay on the dispute path.
Kitchen ticket fixes
Add-ons and special instructions were not reaching kitchen staff. The root cause was on the server: add-ons are stored as references to other menu items and were never being resolved into names for the kitchen screen, so the data arrived unusable.
Fixed so that add-ons and per-order instructions now appear on the kitchen display and on both printed ticket formats. Previously a cook could see "1x water bottle" with no indication of what was ordered alongside it.
Also removed the expired-document warning banner from the dashboard.
Outstanding
The cash refund and kitchen changes have not yet been verified against live hardware or a real payment — worth a test refund and a test kitchen ticket before they reach customers. The kitchen fix covers the main kitchen screen and its two print paths; the same gap likely exists on other order screens and can be closed off if wanted.