Project

General

Profile

Edit Copy Actions

Feature #11033

closed

hardware tapand pay and bugs

Added by sairam machavarapu about 1 month ago. Updated about 1 month ago.

Status:
Closed
Priority:
Normal
Start date:
09/23/2026
Due date:
09/23/2026
% Done:

100%

Estimated time:
8:00 h
Spent time:

Add

Subtasks


Add

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.

Edit Copy Actions

Also available in: Atom PDF