Receipt Sync
Hyvä POS is in closed beta
Hyvä POS is currently in a closed beta (pilot phase) with a small group of merchants. It is not yet generally available: the App Store release follows the pilot, and features and configuration may still change, possibly in backwards-incompatible ways, before the general release. Want to take part? Sign up at hyva.io/pos.
On the free tier, receipts live on the device that made the sale. PRO mirrors every receipt to Magento as a central archive, and gives every receipt a public page.
The Central Archive
Every completed sale pushes its receipt to Magento: an immutable record of what the customer bought, next to the order it produced. In the admin (POS → Receipts) you can browse and search receipts across all locations and terminals by staff, terminal, location, customer, total, payment method and date, and open any receipt in a detail view.
Receipts are write-once; they are the fiscal record. Each row in the hyva_pos_receipt table carries the lines and totals, the tax, the tender (including split payments, applied store credit, and for card payments the payment provider's transaction reference), who rang it, on which terminal, at which location, and the exact payload the device printed from, so a receipt can be reproduced byte-for-byte later. After the first sync, the only field Magento adds to a receipt is the order number of the order that follows it; nothing else can be changed.
Because the archive is central, a register can also reconstruct receipts it did not create: a customer returning at store B with a receipt from store A can be looked up there.
How Receipts Reach Magento
The device pushes each receipt right after the sale completes; with no connection it queues and retries with the same back-off discipline as orders. Receipts always sync before the orders that reference them. A receipt that Magento refuses for a real reason (not a network blip) shows under Reports → Sync Issues on the register instead of retrying forever.
The QR Receipt Page
Each synced receipt gets its own link on your store, protected by a random 64-character token, and shown as a QR code at the end of the sale: on the printed receipt, and on the customer display if you have one. The customer scans it and lands on a page served by your own Magento (your domain, your branding, no third-party service) where they can:
- view the receipt as printed,
- download it as a PDF,
- email it to themselves.
The printed receipt is then optional, and the customer does not have to give an email address at the counter.
The same QR is what the hand-over screen shows the customer full-screen at the end of a sale.
The page is meant for the person holding the receipt. Every action on it (viewing, downloading, emailing, claiming) is rate-limited to 10 requests per 10 minutes per visitor address, receipt and action. Emailing has two more limits: 20 emails per 10 minutes from one address across all receipts, and 10 emails per 10 minutes for one receipt from any address. The pages are excluded from search engines, and the receipt page sends Referrer-Policy: no-referrer, so the token in its URL is not passed on to the stylesheet or script host or to a link the customer follows. A leaked link exposes one receipt, not a browsable archive.
Claiming a Receipt into an Account
Register sales are often anonymous. A customer who wants the purchase on their account afterwards (for the warranty, the points, or the history) can claim it from their receipt link: they sign in to your store, or create an account, and claim the purchase. The order attaches to their customer record and shows up in their order history, both online and at the register.
Claiming has two limits: a receipt can be claimed once, and only when the underlying order does not already belong to a different account. The claim runs as one unit under Magento's order lock, so two customers claiming the same receipt at once cannot both succeed.
Receipt Emails with the Receipt Attached
PRO emails the receipt itself, not the standard order-confirmation email the free tier uses: Magento renders the synced receipt and sends it from your store's own sender address with a PDF of the receipt attached. What the customer receives matches what the printer would have produced.
The cashier can send it at the end of the sale or re-send it later from the sales list; the customer can trigger the same email themselves from the QR page. Because Magento does the sending, email works even when the register has already moved on to the next customer.
Configuration
Receipt sync itself has no switch: it is on for every licensed PRO terminal.
What you do configure is the receipt content: logo, header and footer, store info, staff-name display and the QR block live under Stores → Configuration → Hyvä POS → Terminal Defaults → Receipt Defaults, with per-location overrides; see receipt layout. Any of those fields can be locked via Lock Settings → Receipts (for example Lock Receipt Header, Lock Receipt Footer, Lock Receipt QR Code); a locked field shows as Managed by Magento on the register and cannot be edited at the register; see global settings.
What the Cashier Sees
Nothing extra to do. The QR appears on printed receipts and the hand-over screen once the receipt has synced; email is one button on the sale-complete screen and in the sales list. If a receipt has not synced yet (offline sale), the QR and email options appear as soon as it lands in Magento.