Release Notes: Windows Integration

Tester App Improvements

  • GUI Improvements
  • Preset Configuration Management


  • Support for periodical device updates

Changes / Removed

  • Ingenico devices are no longer supported

Minor Fixes

  • Fixes a minor issue with the transaction result.

Security Improvements

  • PayServer now only listens to the defined host in the config.yaml, default is localhost ( For production environments, use the default localhost or configure a restricted and secured network. The old behaviour can be restored by setting host to, but this is discouraged for production environments.


  • Amend / refund transaction causes NullPointerException on the PayServer


  • Fixed NullPointerException on the PayServer during amend / refund transaction

Printing Pre-formatted Receipts

  • From this SDK version you have access to new pre-formatted receipts format. These receipts can be printed right away without any necessity for further formatting. The pre-formatted receipts are flexible to be adjusted according to your printer's character limit for each line.

Bug fix

  • Merchant initiated Abort operation of Gift Card redemption makes the POS in unresponsive state


  • Extended P3 protocol to include (optional) parameter countryCodeNumeric for CardDetails
  • An additional void reason ERROR_AUTOREVERSAL_ERROR was introduced to provide a more transparent reporting
  • Fixed additional instances where lost terminal connection would trigger repeated reconnects in the background, affecting subsequent transactions (VIPA, TCP)
  • Fixed an issue where the customer was asked for signature after 3 failed PIN entry attempts (Ingenico)
  • Fixed an instance where a dropped terminal connection right before the end of a transaction would prevent it from completing (VIPA, TCP)
  • Fixed an issue where sending a receipt via email would fail due to an encoding problem
  • Extended the CardDetails object with (optional) property countryCodeNumeric that represents the country code of the card issuer.


  • Fixed an issue where the void reason ERROR_AUTOREVERSAL_LOGOUT was actually reported as ERROR_AUTOREVERSAL_INCONCLUSIVE


  • LRC error occurring when reconnecting after config update on P400 using USB is fixed. (Verifone)


  • Gradle projects are updated to 6.0.1.


  • LRC error occurring when reconnecting after config update on P400 using USB is fixed. (Verifone)


  • Gradle projects are updated to 6.0.1.


  • Improved handling of service code checks (AmexServiceCode) for Amex magstripe transactions.
  • P400 is able to run new VIPA version: VIPA (Verifone)


  • If enabled, every transaction in error state is as now (as a precaution) also scheduled for auto-reversal.


  • Fixed issue of a background terminal reconnect mechanism affecting subsequent transactions.
  • Fixed issue of transaction being stuck when terminal loses connection during transaction (Verifone).


  • Improved key press handling for VIPA terminals to reduce the chance of error ERROR_TERMINAL (9FFF).

Known Issues

  • Key press handling on VIPA 6.1.x.x does not allow us to completely eliminate the error ERROR_TERMINAL (9FFF).
  • Starting with VIPA 6.6.x.x the handling has been fixed and will drastically reduce the number of related errors.
  • As a precautionary try to not press any buttons unless explicitly asked for it during the transaction.


  • Improved informing of the merchant and shopper when for a transaction a signature is required customer verification method.
  • Additional information for shopper on the VIPA terminals during the PIN entry process.

Bug Fixes

  • PayServer bug that was causing issues when transaction is aborted on the present card terminal screen is resolved.
  • Problem with the terminal re-connection mechanism, that in some cases when connection is lost and can lead to an error on the terminal, is fixed in this release.
  • Issue with text displaying on the merchant payment application that can cause text truncation.


  • Auto-reversal. In rare cases (e.g. xStore timeout, PayServer disconnection, etc) when the interaction between PayServer and XStore results in a transaction that is believed to be authorized on the backend but is believed to be not authorized on XStore, the auto-reversal is triggered and requests a void from the backend if the transaction did actually end up authorized. The backend will ignore the void if the transaction was not authorized. To enable auto-reversal feature, you need to add enable_auto_reversals: true in the config.yaml file. You can find more details including the sample yaml file here.
  • Improvement in the customer verification process for standalone refunds with the CUP scheme is added.
  • Improved Token Refunds transactions status handling and recovery mechanism for Inconclusive state, which helps to significantly reduce potential transaction errors with this type of transactions.
  • SDK is updated to be version v2.46.0
  • Improvements

  • Remove reference to Sewoo to make refactoring easier. Sewoo will no longer be supported.
  • Changed log rollover strategy from 10 to 90 days.
  • Update SDK to version v2.45.0
  • Improvements

  • Improvements in the ICC transaction workflow related to the card removal when the cardholder is prompted to remove the card from the terminal. Now transaction flow continues after 5 seconds when the cardholder doesn't remove the card from the terminal when prompted, in order to continue transaction process and prevent timeout issues with the POS system.
  • The availability of the PayServer logs has been extended to 90 days in this release. It was 10 days previously.
  • Bug fix

  • The bug on the VIPA terminals with application selection that results in aborted transaction when correct configuration is not set has been fixed in this release.
  • Bug fix

  • The issue where a transaction is failing to start on a VIPA terminal is fixed in this release.
  • Bug fixes

  • Terminal interaction for card not present transactions on Miura terminal bug fix is included in this release.
  • Issues with detection of the card removal during transactions on VIPA terminals are fixed in this release.
  • Improvements

  • Updates of the card schemes BIN ranges are included in this release.
  • Bug fixes

  • Bug fix for the keys injection and terminal update process on VIPA terminals with USB connection is included in this release.
  • Improvements

  • Updates on the terminal behaviour for switching from contactless to either 'Insert or swipe card' and 'Insert card'.
  • Improvements

  • Update of the country and currency list.
  • Improvements in the update process of VIPA terminals via USB connection.
  • Increase of the timeout (from 60 to 120 seconds) on the Present Card screen on VIPA terminals.
  • Improvements

  • Support for Portuguese language is added in this release.
  • Additions in the German language localisations.
  • Bug Fixes

  • Bug fix in the Miura terminal prompts related to accessories that are not whitelisted is included in this release.
  • Improvements

    Improvements in this release include:

  • For approved payments transactions, information when on-receipt signature is required from the shopper now is added.
  • Additional optimisations and compression of the captured signatures.
  • Bug Fixes

  • Handling of exceptions in the updating process of the Miura terminal.
  • Bugs in the VIPA localisations in Spanish and Italian language are fixed in this release.
  • Improvements

    Improvements in this release include:

  • Inbound/outbound accessory messages during processing transactions are now available.
  • Support for Spanish language is added in this release.
  • Improvements

    Improvements in this release include:

  • Improved status codes for the alternative payment methods.
  • Improvements on the error messaging for not whitelisted accessories.
  • Bug Fixes

    Bug fixes in this release are including fixing of the firmware update check for VIPA terminals, handling of aborts for CP transaction processing, terminal messages for declined alternative payment wallets transactions.


    Improvements in this release include:

  • Improved monitoring of transaction process.
  • Improvements in the transaction execution processing.
  • Improvements

    Improvements in this release include:

  • Recovery mechanism for INCONCLUSIVE state that helps for signification reduction of errors with unstable network connection.
  • Improvements on the timeouts on terminals screens.
  • Bug Fixes

    Bug fixes related to NFC transactions and CVM fallback handling on VIPA terminals are included in this release.

    Bug fixes

    Various bug fixes related to aborting transactions via terminal and population of MaskedAccountNumber for alternative payment methods are included in this release.

    Bug Fixes

    Various bug fixes and reliability related improvements are included in this release.

    Local time offset for transactions

    Local mobile timezone is now sent to Payworks platform with every payment interaction request.

    Bug fixes

    Various bug fixes and compatibility related improvements are included in this release.

    Support for MOTO Transactions via Manual Key Entry

    A support for Mail Order/Telephone Order transactions has been added as part of this release. MOTO transaction is a type of card not presented transaction in which services are paid for and delivered via telephone or mail. This allows you to process transactions without the cardholder and their card being present in your place of business.

    Amount Confirmation after Tipping

    Additional functionality is now available for "Enter Tip Amount" and "Enter Total Amount" workflows and now you're able to add additional screen "Confirm Amount" on these two workflows to prevent situations where users are entering wrong amount for a tip.

    Bug Fixes

    Various bug fixes and compatibility related improvements are included in this release.

    New Translations

    Additional support for new translations is included in this release.

    Union Pay Common Debit Support

    Support for Union Pay Common Debit is included in this release.

    Bugfixes & Improvements

    Various bug fixes and reliability related improvements (more stable connections, better error handling) are included in this release.

    Bugfix: Error During Update Check

    We fixed an issue that caused a terminal error when the card was removed during an update check.

    Improvement: Request Tracking via Tag

    Through a new field called tag, P3 now allows you to keep track which update, action or response message is related to the request you've sent. Your implementation needs to provide a unique tag value for each request you make. We suggest generating a UUID for this.

    For example when running an EXECUTE_TRANSACTION_REQUEST with tag ea99bacc-c05e-4cb5-b2c1-858172124873, you will receive this tag in all subsequent EXECUTE_TRANSACTION_UPDATE, EXECUTE_TRANSACTION_ACTION and EXECUTE_TRANSACTION_RESPONSE messages.

    For requests referencing ongoing operations such as ABORT_OPERATION_REQUEST and SUBMIT_SIGNATURE_REQUEST you further need to provide the tag of the operation you want to affect (e.g. EXECUTE_TRANSACTION_REQUEST) as the referenceTag.

    Make sure to implement those changes in your integration before migrating to PayServer 1.9, otherwise both ABORT_OPERATION_REQUEST and SUBMIT_SIGNATURE_REQUEST will stop working.

    When integrating via PayClient no action other than updating to the latest PayClient is required.

    Bugfix: PayServer Service Failed to Install

    We fixed an issue that caused the installation of the PayServer Service to fail when using Windows 10.

    Bugfix: Reconnect Not Possible

    When a USB reader gets disconnected during the connect phase, the PayServer now allows another connect attempt.

    Feature: Metadata Support

    You can now attach metadata for each transaction. The metadata key/value pairs will be returned as part of the transaction object.

    Bugfix: NullPointerException Thrown During Abort

    We fixed a NullPointerException that occurred when an abort was triggered before the connection to the reader was established.

    Feature: Quick Chip (US Only)

    Quick Chip drastically improves the payment experience for US-based shoppers and merchants: With Quick Chip shoppers are able to dip and remove their EMV card from the card reader within 2 seconds or less, making it as fast as a swipe.

    Talk to your account manager regarding availability of Quick Chip for your merchants.

    Bugfixes: CVM Classification, Abort Indicator

    Two minor bugfixes were added that improve correct forwarding of the applied CVM and the correct forwarding of the abortable indicator.

    Improvement: USB Disconnect Detection

    On Windows a physical disconnect of a card reader connected via USB is now recognized correctly. In addition we added timeouts for certain kinds of messages to detect stale connections via USB.

    Improvement: Extended Logging

    The logs have been slightly modified to include more verbose timestamps and also the rollover period is now 10 days.

    Feature: Progress Bar on Miura

    The Miura readers are now showing a progress bar when running through a software update, allowing the merchant to better understand how long he has to wait for completion.

    Feature: Configurable Locales

    You are now able to specify an explicit locale in the PayServer configuration. This locale will then be used for all prompts on the device and display update callbacks.

    Feature: Custom Idle Screen Text

    The PayServer configuration now also allows setting the idle_text on the device level. This idle text will then be used when keep_alive is configured and no transaction is going on the reader.

    Bugfix: Repeated login messages on same connection blocked accessory

    When a second login message came in on the same connection, it could happen that a reader connection was blocked and no additional transactions could be started. With this release, the devices are also handled correctly as part of the second login.

    You should not login a second time on an already existing connection. Disconnect first and start a new session afterwards.

    Bugfix : Fixed PayServer initialization crashing in certain Windows machines

    We fixed a bug where the PayServer initialization failed on certain Windows machines without a device identifier.

    Bugfix: Receipts are not always attached to a transaction

    When using version 1.2.0 of the Payerver, we had instances where the merchant and customer receipts were not always attached for approved transactions in the transaction response. This has now been fixed with this release.

    New Feature: Increased Transaction Speed

    We continuously push ourselves to make card payments faster and with PayServer 1.2 we reached another important milestone: The payload for each call between PayServer and Gateway has been greatly reduced and for contactless transactions we were even able to save a full roundtrip between the PayServer and Gateway.

    Upgrade to 1.2 and then talk to your account manager to save your merchants valuable seconds on each transaction.

    Important: Along with this feature, we have also added a new TransactionStatus.INCONCLUSIVE for more clarity on errored transactions. Details on what this indicates can be found here.

    New Feature: Connection Keep-Alive

    For setups where the card reader is connected to a power source most of the time, the new Connection Keep-Alive feature allows your merchants to take card payments even faster.

    Add keep_alive: true in your config.yaml and the PayServer will keep the connection to the card reader open after the first transaction. This will greatly reduce the overall transaction time for all subsequent transactions.

    Improvement: Miura Connectivity

    We implemented a number of improvements to speed up the initial connection to the Miura devices: Especially when waking up the WiFi Miura M010 from standby, the connection will be established much quicker now. Also the first connection attempt via USB now works more reliably.

    Hotfix: Required Update for Miura MPI V1-41

    In Miura MPI V1-41 changed the way magstripe track 2 data is masked.

    In order to be able to successfully process transactions with Miura MPI V1-41 and later, you are required to update your PayServer version to 1.2 or later.

    Improvement: More Robust PayServer

    The PayServer now better handles unexpected situations during transaction processing and it is no longer necessary to restart it should it get into an inconsistent state. Instead, disconnecting and reconnecting the client is sufficient in most cases.

    Feature: Streamlined Reader Setup

    Managing your merchants' readers is now much easier with automatic reader setup: Readers can be automatically assigned to the merchant upon first usage, allowing you to streamline your reader distribution processes.

    This feature is optional, if you would like to make use of it, just talk to your account manager.

    Feature: Enhanced On-Device Tipping

    On-Device Tipping now shows the original amount also as part of the "Enter TIP Amount" screen.

    Note: Miura MPI V1-39 (or higher) is required for showing the original amount. Get in touch with your account manager to enable the latest MPI version.

    Improvement: Easier Connection to Bluetooth Devices

    You can now specify the two ports created by Windows for Bluetooth Miura devices to make the connection easier and more reliable.

    First Official Release

    The preview version has already been used to successfully process thousands live transactions! We are very happy to announce that we are dropping the "preview" tag.

    Simplified P3 Protocol

    We changed the way errors from the PayServer are represented in the P3 protocol -- all errors are now in the header of the response message, so you don't have to look out for them in the message body. However, the response body might still be filled out so that you can access the transaction data, for example.

    We have dropped the concept of "components" from P3. All resource addressing is now done to a configured device, not its components. We may reintroduce this concept again in the future, but at the moment it makes the protocol simpler.

    PayClient Adaptions

    Mirroring the changes in the protocol, we have simplified things on the PayClient. You have just one single error which you need to check in the callbacks. We have also dropped the concept of components from the PayClient in favor of ITransactionModule and IDeviceModule. Check the PayClient documentation for more detailed information.

    Bugfix: USB Buffer Issues on Windows 10

    We fixed the Miura USB connectivity issues on Windows 10: No more button pressing!

    Bugfix: Firmware and Software Updates Failing

    Miura Updates are now work reliably!

    Various Improvements

    • Fixed encoding issues on Windows: All UTF-8 characters including the currency signs should now display correctly on the readers
    • The 0.3.0 release had an issue which caused the merchantSecretKey to be logged in plain text. Please make sure you upgrade from this version before using it on LIVE.

    New Features

    Windows POS Integration now allows you to:

    • Refund previous transactions, including support for partial refunds
    • Submit digitally captured shopper signatures during transaction processing
    • Perform pre-authorizations and capture them later on
    • Ask the shopper for a tip right on the card reader

    Breaking Changes

    • The PayServer configuration file slightly changed in structure, please be aware of this.
    • The PayClient received some slight API changes, please especially review your implementation of the StartTransaction callbacks.

    Running as a Windows Service

    Now you can run the PayServer on Windows as a background service out of the box.

    Improved Transaction Workflow

    The reader doesn't show "Approved" during transaction before it was finalised.


    We fixed some issues with updating the readers on different systems. More fixes to come.

    First Release

    First release of the public preview! Enjoy!