These docs are for v1.2. Click to read the latest docs for v3.0.
  • The Order:Create API will now return an error when the order amount is zero.
  • Updated the Hosted Payment Page to better format the order amount and currency based on the locale of the enduser.
  • Wero: fixed issue where some payments would be stuck on the in_transit state
  • Giftcards: Added support for POS transactions for giftcards.
  • Pin: Update the hosted payment page to poll an internal TPU url to prevent issues with the external URL requiring credentials.
  • Pin: Added a setting for the hosted payment page to enable automatically redirect to the return URL after a set amount of time.
  • MBWay: Fixed case where the order would stay at status denied even if we later receive an IPN with status paid.
  • Fixed an issue where the ARN for refunds was not correctly set

Full Changelog:

  • 🎨 Small UI fixes to improve layout consistency
  • 🔄 Switched TH-code and version placement in the user interface for better visibility
  • 🔧 Minor fixes for devices with hardware pinpads to improve interaction
  • 🔧 Minor fix for return url, where query params were added multiple times

We will be releasing v1.2.16 next Monday (22-12-2025) containing small bugfixes:

  • App2App: PAY.POS will now open the correct screen after deeplink everytime
  • Refund: Switching to refund payment will now show the correct state in the top right corner
  • PAX: Small kernel fix

We released a few updates in the last weeks:

  • In the Merchant:Info API we now return a decline reason and a decline date if a document (on company level or on account level) is declined by our boarding department;
  • In the Service:GetAvailablePaymentMethods API you get all available payment methods that are applicable for your service. If a payment method requires a boarding we also return the boarding status. We now also return an object code (BO code) which reflects your boarding request. You can use this code if you contact our boarding department;
  • The Merchant:UpdateSettings API now support setting a default value for the layout (look and feel templates). This default value will be used if a service location is created and you do not specify a specific layout;
  • The Terminals:Browse / Terminals:Get now also returns a terminalServer object which gives you information to which server the terminal (non-SoftPos) is connected to.

In this post, we want to let you know that v1.2.15 is the new release for all of the PAY.POS platforms. While the v1.2 updates introduced a lot of big internal changes, we wanted to focus on some small changes this release:

  • Improved screen orientation support -> It is now possible to lock your screen in every rotation, or use the orientation sensor. This improvement was very much needed for better support on the Sunmi CPad series
  • Improved performance
  • Several smaller bugfixes
  • Added the Order:Retry API. With this API you can reset the status of a failed order so the enduser can attempt to complete the order. Please note that the order type will be changed to paylink and the point of interaction will be changed to ecommerce. The second chance has been updated to use this API when a second chance is triggered for an order that has been processed on the TGU. This should fix an issue where the TGU is not aware of a second chance that has been paid and will still return the failed endstate.
  • Fixed an issue where the second chance email was sent in english where dutch was expected.
  • Payment/Donation screen: Fixed an issue where endusers would get an Invalid URL error on the payment/donation screen.
  • Add support for replace variables in the exchangeUrl. Several values will be replaced with the actual value set on the order, so you are able to pass an exchange URL without knowing these values beforehand:
    • #action#
    • #order_id#
    • #tool#
    • #info#
    • #object#
    • #domain_id#
    • #ip_address#
    • #amount#
    • #extra1#
    • #extra2#
    • #extra3#
    • #enduser_id#
    • #payment_session_id#
    • #payment_profile_id#
    • #payment_method_id#
    • #starttime#
    • #stoptime#
    • #customer_id#
    • #customer_key#
    • #country_id#
    • #country_code#
    • #is_sandbox#
  • Wero: Fixed a problem when refunding a wero payment.
  • Pin: Fixed an error where pin terminal offline messages were not processed resulting in terminals incorrectly being shown as online in the admin.

A new update is ready for most of our PAY.POS platforms!

A lot of bugfixes are available in this version, including some new features:

  • Single rider mode -> This mode allows you to start the same payment over and over. You can combine this with the exchange webhooks to create a fully unattended payment solution!
  • Language injection -> Using the App2App flow, you can now inject the langauge code in which the app needs to operate. docs
  • Card language -> The app will now auto translate itself based on the scanned payment card. If a english card is detected while the app is set to dutch, the app will switch languages to the customer preferred language


  • Added the optional customerOrderStatusUrl field to the Order:Create API. This field accepts a URL where the customer can check the status of their order.
  • Update validation of the Order reference field to allow dashes (-). Please note that some payment methods do not accept this and this will result in an error.
  • Creditcard: Fix not being able to refund credorax payments.
  • We now keep track of the enduser that is redirected to an issuer for logging and risk assessment purposes.
  • Fixed an issue where data in the field transferData was lost when all stats fields were left empty.
  • DirectDebit: Fixed an error when the description was longer than 32 characters.
  • Brite: Update the customerId to contain the account holder name, rather than a hash value
  • Paysafecard: Fixed amount rounding issue
  • Billink: Fixed returning the wrong billingLineId for some Billink MOR payments with country code BE.
  • iDeal IN3: Prevent payments from getting a very long expire time.
  • PayPal: Deny transactions that cannot be captured to prevent them from staying in the authorised state.
  • Twint: Fixed a problem where the customer_id was not set.

Lees Cadeau

A popular gift card focused on reading and literature, enabling customers to purchase books and related products from participating retailers.

Boeken Cadeau

A versatile gift card that can be redeemed for books and literary gifts at a wide range of affiliated stores.

Gift4Good

A purpose-driven gift card that supports sustainable and socially responsible shopping through selected merchants.

Go to this page for more information.

We released a few small updates in the last weeks:

  • The Refunds:Browse now contains a filter and several operators on processDate and created; so that you can filter on the date on which refund has been processed or when the refund has been created.
  • We fixed an issue in the Transactions:Browse where sometimes the action and the status field in the status object were swapped.
  • We introduced a Tokens:Browse, a Tokens:Get and a Tokens:Info endpoint to get tokens generated by a card not present transactions, typically used for recurring payments. See here for more information: https://developer.pay.nl/docs/recurring-payments. These API's are in pilot, please contact your contactperson within Pay. if you want to use these endpoints.