Mollie
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.
The app integrates Mollie POS terminals natively: the device talks to the terminal through the Mollie API with your API key. There is no OAuth step and no Magento in the payment path, so it works on the free tier with your own Mollie account.
Setting Up in the App
- In your Mollie dashboard, create an API key for the profile the store uses, and note your organisation ID.
- In the app, go to Settings → Payments → Card Payments, switch the processing mode to Mollie, and enter the organisation ID and API key (live and test keys have separate fields).
- Tap Connect to Mollie: the app lists the terminals in your account. Pick the one at this counter; with a single terminal it is selected automatically.
- Send Test Payment verifies the pairing with a €0.01 charge to the terminal.
On PRO, picking the terminal is gated by the hardware-configuration permission (managers and up by default), so a cashier cannot accidentally repoint the register at a different device. Taking payments through the already-paired terminal needs no special permission.
A terminal can be shared between registers, and Mollie's mobile terminals work the same way: an iPhone with a mobile terminal serves as a register at markets and pop-ups. Mollie's Tap on iPhone is supported too, turning the phone itself into the card terminal.
Setting Up in Magento (PRO)
On PRO the same configuration lives centrally at Stores → Configuration → Hyvä POS → Payments → Card Payments → Mollie: the organisation ID, live and test API keys and the test-mode switch. Location pages can override it per store. Registers apply changes as they arrive through their heartbeat (within minutes) and list them under Applied by Magento; a Sync from Magento button on the Card Payments screen pulls on demand.
With Lock Card Payment Mode and Lock Mollie Configuration on in Magento's Lock Settings → Payments, the Mode and the credentials show a lock and a Magento badge on the register, and editing is disabled. Without the lock, the values still apply as they arrive, and the device may edit them; a local edit holds until Magento's value next changes. On Free, the app is the only place Mollie is configured. See global settings.
The Magento Payment Method
Every Mollie-paid sale becomes a Magento order under Mollie's point-of-sale method, mollie_methods_pointofsale. There is nothing to configure: a card payment the terminal took books under the method of the provider that took it, and only such payments do. A sale recorded with the manual reference flow books under the store's manual card method instead, because no Mollie transaction stands behind it: Manual Card (POS) (pos_manual_card) with module 1.2.0 or later, Check / Money Order on the free tier.
With Mollie's Magento module installed, the order is a Mollie order in every respect: refunds, dashboard links and webhook status updates work as they do for webshop orders. Without the module, Magento records the order all the same and shows the method by its code, since it has no module to give it a name; invoices and credit memos work as for any offline method.
A store that wants POS card sales under another method, a custom one for its accounting for example, picks it in Magento (PRO) under Card Payments → Mollie → Magento Payment Method, or per location on the location's edit screen unless the method is locked. The module applies it when the order is saved, and keeps the provider and the method the register sent on the payment record.
What Shows on the Slip and in the Dashboard
On confirmation Mollie returns the full card metadata and the app stores it with the sale, so terminal slips carry what a dedicated terminal printout would:
- The Mollie payment id and the terminal's printed serial number (the one on the device label, matching Mollie's own receipts).
- Card brand and masked number, cardholder where the scheme provides it, funding type (credit/debit), and consumer/business audience.
- The EMV audit trail: authorization code, acquirer reference (ARN), application identifier and name, entry mode, verification method, chip/contactless indicator, and the authorization timestamp.
- A TEST stamp on test-mode payments, and Mollie's settlement reference once the payment has been batched into a payout, for matching sales against Mollie payout reports.
Which fields appear depends on what the card scheme returns; test payments carry only the basics. The sale also stores a direct link to the payment in your Mollie dashboard, for support questions.
Refunds
A refund of a Mollie terminal sale goes back to the customer's card from the register, on both tiers: the app calls Mollie's refund API against the original payment. A credit memo made in the Magento admin from the invoice with Refund goes back to the card through Mollie's Magento module; the register puts Mollie's payment id on the order for that, and Refund Offline books the memo without moving money. Neither refund involves the terminal. The refund carries an idempotency key, so retrying after a network drop cannot create a duplicate refund, and the Mollie refund id is recorded with the refund receipt. The terminal payments page has the full refund matrix, including split sales and manual-reference sales.
Test Mode
Both the app and the Magento configuration carry a test API key plus a Test Mode switch. In test mode no terminal lights up: Mollie returns a hosted simulation page where you click the payment to Paid, Failed, Cancelled or Expired, so you can rehearse the whole checkout, the failure paths and refunds without hardware or real money. The app shows a visible test-mode badge on the payment panel, so a test key does not go unnoticed at checkout, and test payments are stamped TEST on the slip.
Mollie availability
Mollie operates in Europe and is not available in every country (notably not in the US). Where Mollie is not available, use PAY. where PAY. operates, or the manual reference flow with your own terminal.
If Something Doesn't Work
- No terminals listed after Connect: the API key belongs to a different Mollie profile than the terminal, or Test Mode is on and the terminal only exists on the live profile (the terminal list follows whichever key is active).
- A test-mode badge shows at checkout: Test Mode is on. Flip it off in Settings → Payments → Card Payments (or in Magento if the credentials are managed) before taking real sales.
Configuration Reference
| Setting | App | Magento (PRO) |
|---|---|---|
| Organisation ID, live + test API keys | Settings → Payments → Card Payments | Stores → Configuration → Hyvä POS → Payments → Card Payments → Mollie (per-location overrides) |
| Test Mode | Same screen | Same section |
| Terminal selection (which device at this counter) | Same screen, per register | Always per register: a terminal pairs to a counter, not a store |
| Precedence | An unlocked field can be edited; the edit holds until Magento's value next changes | Values apply as they arrive; a locked field cannot be edited on the device |