Skip to content

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 - no OAuth, and no Magento in the payment path. Works on the free tier with your own Mollie account.

Setting Up in the App

  1. In your Mollie dashboard, create an API key for the profile the store uses, and note your organisation ID.
  2. 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).
  3. 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.
  4. 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 plus a mobile terminal is a complete register for 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: the organisation ID, live and test API keys, the test-mode switch, and the Magento payment method below. Location pages can override it per store. Registers pick up changes through their heartbeat (within minutes), and a Sync from Magento button on the Card Payments screen pulls on demand.

Which side wins: with the corresponding lock enabled in Magento's Lock Settings, the credentials and the method picker arrive on the register as managed - badge shown, editing disabled, Magento wins. Without the lock, the register keeps local edits and Magento's values are an offered default. On Free, the app is the only place Mollie is configured. See global settings.

The Magento Payment Method

Every Mollie-paid sale still becomes a real Magento order, and the Magento Method setting (on the Card Payments screen, or pinned from Magento) decides which payment method that order books under:

  • Mollie POS (mollie_methods_pointofsale) is the default - it applies even when nothing is configured. It routes the order through Mollie's Magento module, so refunds, dashboard links and webhook status updates integrate natively. It requires the Mollie Magento module to be installed - without it, order placement fails because the method does not exist server-side.
  • Merchants without the Mollie Magento module pick Check / Money Order or any other installed offline method: the order records the payment fact without claiming a method Magento does not have.
  • Other accepts any custom payment method code installed in your Magento, for example a custom POS-only method for a separate reporting bucket.

The mapping is per provider: when more terminal providers arrive, each carries its own Magento method, so a store can route Mollie sales and, say, Adyen sales to different methods. On PRO the picker lists the payment methods actually installed on your Magento (synced via the heartbeat); on Free it offers a standard set plus the free-text Other.

Sales recorded with the manual reference flow deliberately do not book under the Mollie method - there is no Mollie transaction behind them.

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 - useful 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, so support questions ("was this charged?") are one tap from the sale record.

Refunds

A refund of a Mollie terminal sale goes back to the customer's card straight from the register, on both tiers: the app calls Mollie's refund API against the original payment. The refund carries an idempotency key, so retrying after a network drop can never 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 cannot silently take real sales, 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 the manual reference flow with your own terminal until more provider integrations arrive.

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).
  • Payment works but order placement fails: the register is set to the default Mollie POS method while the Mollie Magento module is not installed (or the method is disabled in Magento). Install and enable the module, or switch the Magento Method to an installed offline method.
  • 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 (per-location overrides)
Test Mode Same screen Same section
Magento payment method Same screen, Magento Method Same section, lockable
Terminal selection (which device at this counter) Same screen, per register Always per register - a terminal pairs to a counter, not a store
Which side wins Local edits stand while unlocked Locked fields arrive managed; Magento wins