Skip to main content

Use QR code payments

Accept in-store contactless payments and support all the most popular payment methods with QR codes.

Getting started

MONEI QR payments are in open beta. To get started please contact our Support Team. We will send you a "welcome pack" with a set of QR stickers to get you up and running.

Login into with your credentials from and register received QR codes. After registering the QR code you can create a payment that will be automatically attached to this QR code.


The payment is accessible through the QR code during 3 minutes, after that you need to create a new payment.


QRQR demo

Create QR payments programmatically

Each QR code is associated with a Point of Sale. To create a payment associated with a specific QR code you need to pass pointOfSaleId. To get your pointOfSaleId please contact our Support Team.

1. Create a new payment on your server.

curl --request POST '' \
--header 'Authorization: pk_test_3c140607778e1217f56ccb8b50540e00' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": 110,
"currency": "EUR",
"orderId": "14379133960355",
"pointOfSaleId": 'fb269cccfa0cc021f5d0b8eb1421646c696213e1',
"callbackUrl": ""

The following parameters are required:

  • amount positive integer - Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD)
  • currency string - Three-letter ISO currency code, in uppercase. Must be a supported currency.
  • orderId string - An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system.
  • pointOfSaleId string - A unique identifier of the Point of Sale.
  • callbackUrl string - The URL to which a payment result should be sent asynchronously.

Check all available request parameters.

After the payment is created it is immediately available through the QR code attached to the Point of Sale.


As an alternative you can present to the user a unique QR code generated for this specifc payment. To access the QR code image construct the following url{{payment_id}}/qr

You can directly render it on to your webpage using this html code:

<img src="{{payment_id}}/qr" width="300" height="300" />

2. Customer completes the payment

Customer completes the payment on the hosted payment page and is redirected to the receipt page where he can optionally enter his email to receive the receipt.

3. An asynchronous request is sent to your server

MONEI will notify you about the payment status by sending an HTTP POST request to the callbackUrl. The request body will contain the full payment object in JSON format.

This ensures that you get the payment status even when the customer closed the browser window or lost Internet connection.

The request also contains a MONEI-Signature header. Verify this signature to confirm that the received request is sent from MONEI.

To acknowledge the receipt of the request, your endpoint must return a 200 HTTP status code to MONEI. All other response codes, including 3xx codes, indicate to MONEI that you did not receive the event.

If MONEI does not receive a 200 HTTP status code, the notification attempt is repeated. After multiple failures to send the notification over multiple days, MONEI marks the request as failed and stops trying to send it to your endpoint.