Skip to content

PAY.

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 talks to PAY. through its Cloud Connect API with your merchant API token: the register creates the order at PAY., PAY. pushes it to the terminal or the PAY.POS phone, and the register polls until the cardholder has answered. No Magento in the payment path, so it works on the free tier with your own PAY. account.

Setting Up in the App

  1. In my.pay.nl, create an API token under Merchant → API tokens and note its code (AT-…) and the token itself. Note the sales location code (SL-…) under Settings → Sales locations, and enable in-person card payments on it.
  2. In the app, go to Settings → Payments → Card Payments, switch the Mode to PAY., and enter the token code and the API token. The sales location is optional: left empty, the register uses the sales location linked to the terminal it pairs with.
  3. Refresh Terminals lists the terminals and PAY.POS devices on your account. Pick the one at this counter.
  4. Send Test Payment verifies the pairing with a €0.01 charge.

A PAY.POS phone takes cloud orders only in POS Mode with a register added in the PAY.POS app; in its standalone mode PAY. answers "Terminal not connected", and the register says so.

Test Mode

With Test Mode on, orders are marked as tests and never reach a device. PAY. answers with a test page that asks for the sales location's secret and the outcome. Enter the sales location secret (from Settings → Sales locations in my.pay.nl) on the register or in Magento, and the register answers that page itself: the payment overlay offers Paid, Declined, Cancelled and Expired, and the sale follows the outcome as it would a card's answer. Without the secret the page opens in the app and the cashier fills it in. A secret PAY. rejects shows on the payment overlay as a failed payment that names the secret; correct it and retry.

Setting Up in Magento (PRO)

On PRO the same configuration lives centrally at Stores → Configuration → Hyvä POS → Payments → Card Payments → PAY.: the token code, the API token and the sales location secret (both stored encrypted), the sales location and the test-mode switch. Location pages override any of them per store, and a terminal can override the test mode alone. Registers apply changes as they arrive through their heartbeat and list them under Applied by Magento; Sync from Magento on the Card Payments screen pulls on demand. With Lock PAY. Configuration on (Lock Settings → Payments), the fields show a lock and a Magento badge on the register and cannot be edited there.

The Magento Payment Method

A PAY.-paid sale becomes a Magento order under PAY.'s in-store method, paynl_payment_instore. With PAY.'s Magento plugin installed the order shows as a PAY. order; without it Magento records the order all the same and shows the method by its code. Either way the invoice is booked offline: the register captured the payment on the terminal, and Magento does not ask PAY. to capture it again. A refund made at the register is booked offline too, since the register has already sent it to PAY. A credit memo made in the Magento admin from the invoice with Refund goes back to the card through PAY.'s plugin, which the register makes possible by putting PAY.'s transaction on the order's payment; Refund Offline books the memo without moving money. Neither refund involves the terminal. A store that wants these sales under another method picks it under Card Payments → PAY. → Magento Payment Method, or per location; the module applies it when the order is saved.

Refunds

A refund of a PAY. card sale goes back to the card that paid, by reference to the original transaction: the refund sheet's Refund Online channel and the Refund to original card tile on a return both send it through PAY., with no card and no terminal involved. The register sizes the refund against what PAY. reports as still refundable on the transaction, creates the credit memo once PAY. has accepted the refund, and names PAY.'s transaction code on the memo comment and the order comment. PAY. moves the money afterwards; the transaction in my.pay.nl shows the refunded amount.

A sale taken through another provider, or one this register holds no PAY. credentials for, is not refunded through PAY.: the register says why and offers the manual card refund, recorded as such. In Test Mode a refund on a test transaction completes at once.

Receipts

The customer receipt carries the card brand, the masked card number, the terminal, the transaction id and the date from PAY.; the merchant copy adds the same block. Partner identification is HYVA_POS|<app version> on every order, which my.pay.nl shows on the transaction as the software that created it.