Release Notes

2024-03-18 - SDK 2.88.0 (Android)


New Features, Improvements
New Features
  • PAX All-in-One now supports: 1) offline transactions (deferred authorization/store and forward) and 2) on-receipt tipping.
  • Added support for 67 additional currencies.
Improvements
Added the necessary ProGuard rules to the Tap to Phone SDK. This improvement removes the need to maintain the rules in the app project.
2024-03-18 - SDK 2.63.0 (iOS)


New Features
New Features
Added support for 67 additional currencies.
2024-02-20 - SDK 2.87.0 (Android)


General Information, Updated Requirements, Fixed Issues
General Information
  • NightMode was deprecated from
    UiConfiguration
    and will be removed in the next release.
  • Changed the "Bugfixes" release note title to "Fixed Issues."
Updated Requirements
Updated the Visa sensory branding library to version 2.2. Use this version of the branding library with the SDK going forward.
Fixed Issues
  • Fixed the issue that caused Default UI to crash if the app was running in the background during the card selection process.
  • Fixed the issue that caused the incorrect formatting of the signature line on a printed receipt.
2024-01-16 - SDK 2.86.0 (Android)


Improvements
Improvements
Tap to Phone: Improved error messages that display during device enrollment.
2023-12-19 - SDK 2.85.0 (Android)


Improvements and Bugfixes
Improvements
  • Tap to Phone: Improved the UI experience when cancelling a transaction from the PIN entry screen.
  • Enabled the PAX device screen to power on automatically if a transaction is started when the screen is off.
Bugfixes
  • Tap to Phone:
    • Resolved the issue related to integrators using WorkManager to schedule background work.
    • Resolved the occasional issue that caused the last screen of a cancelled transaction not to be dismissed automatically.
  • Resolved the issue that caused MOTO transactions to crash if the language was set to German.
2023-12-19 - SDK 2.62.0 (iOS)


Improvements and Updates
Improvements
Applied general application hardening improvements.
Updates
Applied software dependency updates.
2023-11-23 - SDK 2.84.0 (Android)


Improvements
Improvements
Tap to Phone:
  • Improved handling of errors when starting a transaction.
  • Improved UI during initialization of a transaction.
  • Improved UX when cancelling a transaction.
2023-10-19 - SDK 2.83.0 (Android)


New Features, Improvements, and Bugfixes
New Features
Tap to Phone now supports these transaction types: pre-authorization, incremental authorization, and capture.
Improvements
  • Default UI: Improved the display of error messages that are more than 40 characters long.
  • Tap to Phone: Added an indicator on the Summary screen that the customer signature should be captured on the printed receipt.
Bugfixes
  • Default UI:
    • Fixed the issue that resulted in an inconsistent state when a new transaction was started while the Summary screen was displayed.
    • Fixed the issue that occurred during a successful linked refund transaction in which the Information screen showed the original transaction amount instead of the refunded amount.
  • Fixed the issue that caused transactions that used currencies with two-digit numeric codes to fail.
2023-09-19 - SDK 2.82.0 (Android)


New Features and Bugfixes
New Features
Tap to Phone: Added on-device tipping feature.
Bugfixes
  • Tap to Phone: Fixed the issue that caused transactions to freeze when using the signature-on-receipt feature.
  • Default UI:
    • Fixed the issue that caused the SDK to crash when attempting to recover a transaction after the Inconclusive screen is shown.
    • Fixed the issue that caused the SDK to crash when starting a transaction with a zero amount and custom tipping.
    • Fixed the issue that caused the wrong value to be returned when calling the
      isReadyForTransaction
      method before the first transaction.
2023-09-19 - SDK 2.61.0 (iOS)


Improvements and Updates
Improvements
Applied general application hardening improvements.
Updates
Applied software dependency updates.
2023-08-16 - SDK 2.81.0 (Android)


Improvements
Improvements
  • After canceling an Alipay payment transaction or a WeChat Pay transaction, a transaction canceled animation now appears on the payment device screen.
  • Added translations for Tap to Phone enrollment to support these languages:
    • US English
    • UK English
    • Chinese (Hong Kong)
    • Chinese (Simplified)
    • Czech
    • Danish
    • Dutch
    • Finnish
    • French
    • German
    • Hungarian
    • Italian
    • Latvian
    • Lithuanian
    • Norwegian
    • Polish
    • Portuguese
    • Spanish
    • Swedish
2023-07-21 - SDK 2.80.0 (Android)


Updated Requirements, Improvements, and Bugfixes
Updated Requirements
Kotlin version change:
  • Upgraded to Kotlin version 1.7.21.
  • Newly released artifacts work with Kotlin version 1.6 and above.
  • Android Gradle plugin version 7.2. or above is required to build apps with the SDK.
Improvements
Implemented security improvements.
Bugfixes
  • Fixed the issue where choosing a payment option would be ignored when starting a transaction with the Workflow set to
    UNKNOWN
    .
  • Fixed the issue for MOTO transactions where pressing the green button on the PAX terminal did not progress the transaction to the next screen.
2023-06-29 - SDK 2.79.0 (Android)


Improvements and Bugfixes
Improvements
  • Improved Tap To Phone device enrollment error messages.
  • Implemented security improvements.
Bugfixes
  • MOTO transactions can be aborted using the red button on the Default UI keyboard.
  • MOTO account verification transactions are shown correctly on the receipts.
2023-06-29 - SDK 2.60.0 (iOS)


Improvements
Improvements
  • Deprecated outdated methods in SDK as part of code clean up.
  • The mpos_core and mpos_ui frameworks are now available through the Swift Package Manager (SPM). The SPM is an iOS integrated solution for dependency management. Using SPM makes it easier to update frameworks, such as mpos_core and mpos_ui, in the client application. 
2023-05-24 - SDK 2.78.0 (Android)


Improvements and Bugfixes
Improvements
  • Default UI: Disabled the option to abort receipt printing and the option to amend transactions after transaction processing starts.
  • Deprecated unused
    statementDescriptor
    and
    applicationFee
    transaction parameters.
Bugfixes
  • Default UI: Fixed the issue that caused the Default UI MOTO transaction parameters to not be updated after the MOTO transaction parameters workflow configuration was updated.
  • Default UI: Fixed the issue that caused the Default UI to crash when running transactions only on a cellular network.
  • Fixed the issue that caused the SDK to crash after aborting a transaction and tapping the NFC contactless card on the terminal.
  • Fixed an issue in order to enable the
    No Internet warning
    message to always appear whenever there is no internet connectivity.
  • Fixed an issue in order to enable the amount to show for approved Refund, Capture, and Incremental Authorization transactions.
2023-05-11 - SDK 2.59.1 (iOS)


Hotfix
Hotfix
Applied improvements for JWT authentication.
2023-04-20 - SDK 2.77.0 (Android)


New Features, Improvements, and Bugfixes
New Features
Added a new UI configuration to manage the
Don't Show Again
switch behavior for the low-battery warning.
Improvements
  • Deprecated the Incremental Authorization Transaction Parameters builder. Use the replacement Incremental Auth builder with amount and currency parameters.
  • To comply with the branding requirements for Tap To Phone, the Present card screen now shows the available payments schemes.
  • Enabled option to show the sonic branding for Visa and Mastercard on the Approved transaction screen. Integrators must manually downloaded the sonic branding files from Visa and Mastercard portals.
Bugfixes
  • Fixed an issue that caused the Low Volume message to appear when accessibility features are enabled during a transaction.
  • Fixed an issue on the Default UI that made it not possible to process transactions after aborting a MOTO transaction on the Select order type screen.
  • Fixed an issue on the Default UI Summary screen of a Incremental Authorization transaction that caused the
    Show Total Pre-Authorized
    button not to work.
  • Fixed an unusual issue in PayButton that caused the app to crash when starting a transaction.
  • Changed the button label from
    Cancel
    to
    No Tip
    , enabling the merchant to skip tipping and continue the transaction.
2023-03-17 - SDK 2.59.0 (iOS)


Improvements and Bugfixes
Improvements
Made improvements to the authentication mechanism.
Bugfixes
Applied general bug fixes.
2023-03-14 - SDK 2.76.0 (Android)


Improvements and Bugfixes
Improvements
  • Improved Default UI Signature screen functionality when a different card application name is presented.
  • Integrated Tap to Phone API into MposU.
  • Made improvements to the authentication mechanism.
Bugfixes
Miura: Fixed the issue that occurred when a transaction was started in the Default UI that did not allow the transaction to be cancelled if the terminal was powered off.
2023-02-20 - SDK 2.75.0 (Android)


Improvements
Improvements
When performing a Standalone refund, the Present Card screen now displays: "Present card for refund."
2023-01-31 - SDK 2.58.0 (iOS)


Improvements and Bugfixes
Improvements
Applied general improvements.
Bugfixes
Applied general bugfixes.
2023-01-24 - SDK 2.74.0 (Android)


Improvements and Bugfixes
Improvements
After the currency is selected on the Dynamic Currency Conversion (DCC) screen, the follow-on screens (such as the Signature screen) now show the converted amount.
Bugfixes
  • Fixed the issue that caused an invalid icon to be shown for the credit/debit selection.
  • Fixed the issue with recreating
    eventFlow
    for each new transaction.
  • Fixed the issue that prevented the Receipt button from showing after the first transaction.
2023-01-02 - SDK 2.73.0 (Android)


New Features, Improvements, and Bugfixes
New Features
Default UI: It is now possible to directly start a transaction with Alipay or WeChat Pay using the Default UI. To enable this feature, set the desired scheme in the transaction parameters before starting the transaction.
Improvements
Improved the stability of the SDK after auditing the code and fixing some crash potential scenarios.
Bugfixes
  • Fixed the issue that caused a LiveData event not to be sent to the integrator application when the user clicks the Abort button on the QR code scanning screen for an alternative payment flow.
  • Fixed the issue that allowed a currency conversion to be requested during an account verification transaction.
2022-11-24 - SDK 2.72.0 (Android)


Updated Requirements and Improvements
Updated Requirements
Android OS version change:
  • PAX devices require Android OS version 7.1, at the minimum.
  • All other devices require Android OS version 10, at the minimum.
Improvements
Added Basic Enrollment UI for Tap to Phone.
2022-11-24 - SDK 2.57.0 (iOS)


Updated Requirements
Updated Requirements
iOS OS version change: All devices require iOS 15, at the minimum.
2022-10-24 - SDK 2.71.0 (Android)


Updated Requirements, Improvements, and Bugfixes
Updated Requirements
  • Security update:
    In order to further migrate into Visa's secure environment, the Maven repository that contains the artifacts for the JVM SDK is being moved to a different domain. See an example here: PayButton Integration.
    This change effects everyone who integrates or updates the JVM SDK in their apps.
    The repository is now available under: https://repo.visa.com/mpos-releases/
    All requests for the old URL will be redirected to the new repository until the end of March 2023.
Improvements
  • PAX (Default UI): The Swipe and Remove Card animations now support all the form factors.
  • PAX: Improved the auto-reversal mechanism for double charges with failed transactions.
Bugfixes
  • PAX A920 (Default UI): Disabled the front camera for the code scanner due to poor scan capabilities and ergonomics.
  • PAX: The Abort Transaction button now works when the card is inserted the wrong way.
2022-10-24 - SDK 2.56.0 (iOS)


Updated Requirements, Removals, and Bugfixes
Updated Requirements
  • Support for Xcode 14 requires the minimum version of iOS 11.0.
  • Security update:
    In order to further migrate into Visa's secure environment, the Git repository that contains the Podspecs for the iOS SDK were moved from Bitbucket to the Visa GitHub account. See an example here: PayButton Integration.
    This change effects everyone who integrates or updates the iOS SDK in their apps.
    The Bitbucket account will be closed on 31 October 2022, making the old repositories unavailable.
    The Podspecs are now hosted under: https://github.com/visa/mpos.sdk.ios.pods.git
    Possible caching issues:
    Updating the Podsfile to use the new repository might create caching issues. You can clean the CocoaPods cache by executing: CocoaPods iOS caching issue code example
Removals
  • Removed Couchbase and Offline Transaction support.
Bugfixes
  • Fixed the issue that caused JWT to randomly fail if the session expired.
2022-09-12 - SDK 2.70.0 (Android)


Improvements and Security Updates
Improvements
  • AliPay / WeChat Pay:
    Disabled flashlight button where camera does not support this function.
    Adjusted on-screen scan instructions to include both barcode and QR code.
  • PAX devices: Present card animations now support all the form factors.
Security Updates
Updated external libraries (OKHttp) with latest security fixes.
2022-08-30 - SDK 2.55.0 (iOS)


Improvements
Improvements
Applied general improvements.
2022-08-22 - SDK 2.69.0 (Android)


Improvements
Improvements
Applied general improvements.
2022-07-19 - SDK 2.68.0 (Android)


Bug Fixes
Bug Fixes
  • Verifone P400: Fixed the issue that caused transactions to not abort when the payment card is removed while the PIN entry screen is displayed on the reader.
  • MPOS: Fixed the issue that caused a high number of fatal exceptions.
2022-07-19 - SDK 2.54.0 (iOS)


Improvements
Improvements
Applied general improvements.
2022-06-21 - SDK 2.67.0 (Android)


Improvements
Improvements
Updated PAX POSLink Library to v1.11.0 20220426.
2022-05-17 - SDK 2.66.0 (Android)


Bugfixes
Bugfixes
Fixed issue that caused the AID value to be missing on the receipt for transactions with a declined status on "2nd GEN AC".
2022-04-20 - SDK 2.65.0 (Android)


New Features and Bugfixes
New Features
A new Printing API is available for custom receipt printing in PayButton integrations.
Bugfixes
Verifone terminals now display a Processing screen instead of a blank screen between the Enter PIN and Remove card screens.
2022-04-20 - SDK 2.53.0 (iOS)


Improvements and Bugfixes
Improvements
Applied general improvements.
Bugfixes
Fixed issue with iOS incorrectly setting sdkVersion=1.
2022-03-15 - SDK 2.64.0 (Android)


Improvements and Bugfixes
Improvements
If tipping fails, the flow falls back to the regular transaction flow.
Bugfixes
None.
2022-02-15 - SDK 2.63.0 (Android)


New Features, Improvements, and Bugfixes
New Features
  • PAX A920 now supports Traditional and Simplified Chinese languages.
Improvements
Updated these UI screens on Verifone P400 devices:
  • Terminal Error screen
  • Swipe Card screen
  • Try another card screen
Bugfixes
  • Fixed issue that caused VIPA app to crash when aborting a transaction on Verifone devices using PayServer.
  • Fixed race condition issue leading to "Device is busy" (9FFF) Terminal Error on Verifone devices.
2022-01-20 - SDK 2.62.0 (Android)


Updated Requirements, Improvements, and Bugfixes
Updated Requirements
  • If the SDK is integrated via Kotlin, then Kotlin v1.5 or above must be used.
Improvements
  • Resolved error handling issue that caused Verifone terminals to erroneously disconnect.
  • Applied Dynamic Currency Conversion (DCC) compliance updates for transaction receipts.
Bugfixes
  • Improved SDK error handling for ERROR_AUTOREVERSAL_ERROR, now allowing voids after a failed abort display call.
  • Fixed a bug that, in some cases, logged online transactions as offline transactions.
2022-01-20 - SDK 2.52.0 (iOS)


Improvements and Bugfixes
Improvements
  • Improved transaction recovery mechanism.
  • The mpos.core and mpos.ui libraries can be installed via the XCFramework.
  • Updated the documentation.
Bugfixes
  • None.
2021-11-18 - SDK 2.61.0 (Android)


Improvements and Bugfixes
Improvements
  • PAX A920: Added the line, "This receipt is a copy," on receipts that are printed a second time.
Bugfixes
  • PAX A920:
    • Fixed the bug that caused the transaction status to be read (RNIB mode is enabled) after the customer is prompted to remove the card, in the event of a declined transaction.
    • Fixed the bug that kept users from being able to hide the PIN pad after the transaction is aborted.
2021-11-18 - SDK 2.51.0 (iOS)


Improvements and Bugfixes
Improvements
  • SDK works with the latest iOS APIs.
Bugfixes
  • None.
2021-10-25 - SDK 2.60.0 (Android)


Improvements and Bugfixes
Improvements
  • Applied general improvements.
Bugfixes
  • Applied general bugfixes.
2021-10-25 - SDK 2.50.0 (iOS)


Improvements and Bugfixes
Improvements
  • General improvements applied.
Bugfixes
  • General bugfixes applied.
2021-10-21 - SDK 2.59.1 (Android)


Improvements and Bugfixes
Improvements
  • General improvements applied.
Bugfixes
  • Applied general bugfixes.
2021-09-28 - SDK 2.59.0 (Android)


Improvements and Bugfixes
Improvement
  • PAX A920: Enables users to print receipts for transactions with errors.
Bugfixes
PAX A920:
  • Fixed the bug in Tipping to enable users to edit the tip amount by clicking the
    Cancel
    button on the Confirm Tip Amount screen.
  • Fixed the bug in Percentage Tipping that caused the amount to be calculated incorrectly when the currency used is the Japanese yen (JPY).
2021-09-28 - SDK 2.49.0 (iOS)


Improvements and Bugfixes
Improvements
  • There are no customer-facing changes for this release.
Bugfixes
  • There are no customer-facing changes for this release.
2021-08-26 - SDK 2.58.0 (Android)


Improvements and Bugfixes
Improvements
  • Fixed missing tip amount on Summary screen.
  • PAX A920:
    • Fixed the tipping pre-populated issue when the transaction amount is 0.00.
    • Fixed the issue that prevented the merchant from going back from the Tip Confirmation screen to the Edit Tip Amount screen.
    • Fixed the issue that prevented the merchant from printing receipts for transactions with errors.
  • Verifone e355: Fixed a fatal exception error caused by card removal while on the PIN screen for online transactions.
Bugfixes
  • Fixed an issue that caused approved transactions to show as errors in cases where a failure occurred after the payment.
2021-08-26 - SDK 2.48.0 (iOS)


Updated Requirements, Improvements, and Bugfixes
Updated Requirements
  • Integrations must set the build property `BUILD_LIBRARY_FOR_DISTRIBUTION` to
    true
    .
Improvements
  • Fixed missing tip amount on Summary screen.
  • Verifone e355: Fixed a fatal exception error caused by card removal while on the PIN screen for online transactions.
Bugfixes
  • None.
2021-07-28 - SDK 2.57.0 (Android)


Improvements and Bugfixes
Improvements
  • Introduced new error message: "Declined - Exceeds Authorised Amount." This message appears when the Capture amount is higher than the previously authorised amount.
  • Improved messaging on the terminal screen for inconclusive transactions/failed void calls.
Bugfixes
  • Verifone payment terminals: Fixed the issue that caused the Online PIN Transaction not to abort when the shopper removed the payment card while on the PIN Entry screen.
  • PAX A920 payment terminal:
    • Fixed the error that occurred when printing receipts.
    • Fixed the issue that caused the keyboard not to display automatically on the Expiry Date screen during the MOTO workflow.
2021-07-28 - SDK 2.47.0 (iOS)


Updated Requirements, Improvements, Removals, and Bugfixes
Updated Requirements
  • SDK version 2.46 and higher require Xcode version 12.5 or higher.
Improvements
  • Improved messaging on terminal screen for inconclusive transactions/failed void calls.
Removals
  • Removed Lockbox as an external library dependency.
  • Removed AFNetworking as an external library dependency.
Bugfixes
  • Verifone payment terminals: Fixed the issue that caused the Online PIN Transaction not to abort when the shopper removed the payment card while on the PIN Entry screen.
  • Fixed the wrong card scheme issue when performing MOTO transaction with a co-branded payment card.
2021-06-28 - SDK 2.56.0 (Android)


Improvements and Bugfixes
Improvements
  • Updated the BIN ranges for UPI.
  • PayButton: Disabled text field suggestions and caching.
Bugfixes
  • Fixed an "inconclusive transaction" issue, which resulted in a Summary screen loop.
  • PAX: Fixed an issue so that MOTO transactions cannot proceed with an empty expiry date field.
  • PAX: Fixed MOTO transaction AVS issue.
  • Miura: Fixed MOTO transactions handling when the PAN limit is exceeded.
2021-06-28 - SDK 2.46.0 (iOS)


Updated Requirements, Improvements, and Bugfixes
Updated Requirements
  • Requires Xcode 12.5 or higher.
Improvements
  • Updated the BIN ranges for UPI.
Bugfixes
  • Fixed an "inconclusive transaction" issue, which resulted in a Summary screen loop.
  • Miura: Fixed MOTO transactions handling when the PAN limit is exceeded.
  • Fixed an issue related to coroutines not being initialized on the main thread that caused a crash.
2021-06-02 - SDK 2.55.0 (Android)


Improvements and Bugfixes
Improvements
  • Verifone e355 payment terminal: Improved UI of the Dynamic Currency Conversion (DCC) screen.
Bugfixes
  • PAX A920 payment terminal:
    • PayButton: Removed intermediate processing payment screen.
    • PayButton: Fixed PIN last try message.
    • Added validation to prevent empty CVV and CVS fields from being entered in MOTO transactions.
    • Fixed RNIB bug introduced in SDK 2.54.
    • Fixed wrong CVM being prompted when using UnionPay card.
2021-06-02 - SDK 2.45.0 (iOS)


Improvements and Bugfixes
Improvements
  • None.
Bugfixes
  • PayButton: Removed intermediate processing payment screens.
2021-05-04 - SDK 2.54.0 (Android)


Improvements and Bugfixes
Improvements
  • New Tipping Flow available: Percentage Choice.
  • Updating BroadPOS will trigger a config update to avoid any discrepancy (PAX A920).
Bugfixes
  • Fixed the transaction error when card is removed prematurely during payment processing (PAX A920).
  • Fixed the error that caused the app to be unresponsive (hang) during MOTO transaction (PAX A920).
  • Fixed the mag-stripe fallback issue (PAX A920).
  • Fixed terminal behavior when connection is lost during update process.
  • Fixed VIPA updates through USB (Verifone e355).
2021-05-04 - SDK 2.44.0 (IOS)


Improvements and Bugfixes
Improvements
  • None
Bugfixes
  • None
2021-03-15 - SDK 2.53.0 (Android)


New Features and Improvements
New Features
  • Accessibility mode
    was added to the PAX A920 payment terminal to enable blind and visually impaired individuals to pay with ease. Merchants can enable Accessibility mode after starting a transaction by clicking the Accessibility icon in the top right corner. When enabled, the voice guide will be played to help the shopper enter their PIN and complete the transaction.
    Requirement for feature enablement:
    In order to support this feature, the firmware version must be
    7.1.2_V02.5.10
    and above.
  • Mail Order / Telephone Order (MOTO)
    was added to the PAX A920 card reader to enable retail merchants to accept MOTO transactions.
  • Tipping
    (gratuity) was added to the PAX A920 card reader to enable merchants in the hospitality industry to accept tipping. Four tipping options are supported:
    • Tip with total amount: Enter the total amount, including the tip amount and purchase amount, then you complete the payment.
    • Tip with tip amount: Enter tip amount only. The terminal will calculate the total amount, then you complete the payment.
    • Tip with tip percentage: Enter tip percentage. The terminal will calculate the total amount, then you complete the payment.
    • Tip with fixed percentage: Set the fixed percentage. The terminal will calculate the total amount, then you complete the payment.
Requirement for feature enablement
: In order to support the latest features, the BroadPOS version must be updated to
V1.03.04_20210204
. Otherwise, error message
Accessory update required
will display when attempting to use the features. To update BroadPOS P2PE, please contact Customer Support.
Improvements
  • Extended support for Strong Customer Authentication additional PIN requests for Mastercard contactless transactions on the PAX A920 card reader.
2021-03-15 - SDK 2.43.0 (iOS)


Improvements and Bugfixes
Improvements
  • Swift Public API enhancements.
Bugfixes
  • Fixed an iOS issue where the email could not be read on the "Send receipt via email" PayButton screen when dark mode was enabled on the card reader.
2021-02-01 - SDK 2.42.0 (iOS)


SCA under PSD2 support for contactless transactions and Bugfixes
Improvements
  • Added support for all specific schemes requirements for processing contactless transactions, which were introduced as part of the Strong Customer Authorization (SCA) requirement under PSD2. These requirements are applicable to all payment service providers in the European Economic Area.
Bugfixes
  • Enabled
    Send receipt
    in case of error transaction when using the PayButton.
  • Added support for integrating the SDK with Xcode 12.
2021-02-01 - SDK 2.52.0 (Android)


SCA under PSD2 support for contactless transactions and Bugfixes
Improvements
  • Added support for all specific schemes requirements for processing contactless transactions, introduced as part of the Strong Customer Authorization  (SCA) requirement under PSD2. These requirements are applicable to all payment service providers in the European Economic Area.
Bugfixes
  • Enabled
    send/print receipt
    in case of transaction error when using the PayButton.
  • Fixed the PAX A920 payment terminal issue of an error resulting when the payment card is removed shortly after the application selection stage.
  • Fixed the PAX A920 payment terminal issue of the “Transaction ended up in incorrect state: AWAITING_CARD” error resulting when performing a standalone refund.
  • Fixed the PAX A920 payment terminal issue of the iCCData being missing in the payment request for a standalone refund.
2020-11-16 - SDK 2.51.0 (Android)


Printing Preformatted Receipts, Improvements, and Bugfixes
Improvements
  • Printing preformatted receipts: This SDK release includes access to new preformatted receipts format. These receipts can be printed without the need for additional formatting and can be adjusted according to your printer's character limit for each line on the receipt.
  • Updated the codebase to comply with Kotlin 1.4.
Bugfixes
  • Fixed the issue of a merchant-initiated Abort operation of a gift card redemption sending the POS into an unresponsive state.
2020-08-26 - SDK 2.50.0 (Android)


Improvements, Bugfixes and Removals
Minimum OS Version
Android SDK requires Android version
5.0 (API 21)
starting with this version.
Proguard/R8
The specific Proguard/R8 rules are bundled into the libraries now. If R8 is used as a compiler (which is enabled by default in Android Gradle plugin 3.4.0 and higher), the rules are going to be picked up automatically and no further action is required.
OkHttp Dependencies
OkHttp was upgraded to OkHttp 4. Although it should be binary compatible with OkHttp 3, it’s better to check out the details here for the migration information.
Improvements & Bugfixes
  • Improved the appearance of contactless lights included in the PayButton (PAX)
  • 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 the issue where the
    Check Transaction Status
    button on the inconclusive screen of the PayButton is not shown
  • Fixed an issue where sending a receipt via email would fail due to an encoding problem
  • Fixed a crash where a transaction would fail with a NullPointerException in various situations related to localizations (PAX)
  • Extended the
    CardDetails
    object with (optional) property
    countryCodeNumeric
    that represents the country code of the card issuer
Removed
  • Removed an API from the SDK that would accept login email and password as an alternative to the
    merchantIdentifier
    and
    merchantSecret
  • Removed support for legacy BT connectivity targeting Android version 4.x
2020-08-26 - SDK 2.41.0 (iOS)


Improvements and Bugfixes
Minimum iOS Version
iOS SDK requires iOS version
10.0
starting with this version.
  • Improved compatibility of Ingenico artfiacts for all supported architectures
  • Improved Swift compatibility and removed the embedded swift runtime in the SDK
Bugfixes
  • Fixed an issue where the customer was asked for signature after 3 failed PIN entry attempts (Ingenico)
2020-07-30 SDK 2.49.0 (Android)


Bugfixes and Improvements
Bugfixes
  • LRC error occurring when reconnecting after config update on P400 using USB is fixed. (Verifone)
Improvements
  • Gradle projects are updated to 6.0.1.
2020-05-12 SDK 2.48.0 (Android)


Improvements & Bugfixes
Important:
Payworks Android project migrates to Jetpack library starting from version
2.48.0
.
  • New Feature: FEXCO DCC
    is added to the PayButton for PAX A920 which displays country flags associated with the currency. This feature depends on the Acquirer and DCC provider. (PAX)
Improvements
  • New Feature: FEXCO DCC
    is added to the PayButton for PAX A920 which displays country flags associated with the currency. This feature depends on the Acquirer and DCC provider. (PAX)
  • New
    SKIP_SUMMARY_SCREEN
    flag is added in PayButton. When enabled, the transaction summary page will be skipped, and it's up to the integrator to create the UI for notification and printing.
  • Improved handling of service code checks (AmexServiceCode) for Amex magstripe transactions.
  • Verifone P400 card reader can run new VIPA version:
    VIPA 6.6.1.12
    .
2020-05-12 SDK 2.40.0 (iOS)


Bugfixes
Bugfixes
  • Fixed UIWebView warning when uploading to app store. Now using WKWebView.
  • Improved handling of service code checks (AmexServiceCode) for Amex magstripe transactions.
  • P400 is able to run new VIPA version:
    VIPA 6.6.1.12
    (Verifone)
2020-04-16 SDK 2.47.4 (Android)


PAX Transaction Bugfixes
Bugfixes
  • Fixed issue with newer BroadPOS versions declining transactions after successful online authorization (PAX).
2020-03-18 SDK 2.39.1 (iOS)


Improvements and Bugfixes
Important:
The default dependencies for the
payworks
Podspec has changed. From now on, only Verifone and Miura are pulled in by default. If you are using a different terminal, make sure to explicitly mention the subspec from the Podspec in your Podfile.
Improvements
  • Updated framework metadata to no longer require
    arm64
    architecture.
Bugfixes
  • Fixed issue of the collected digital signature being corrupted (solid black image).
2020-03-03 SDK 2.47.3 (Android)


Connection Handling Bugfixes
Bugfixes
  • Fixed issue of a background terminal reconnect mechanism affecting subsequent transactions.
  • Fixed issue of transaction being stuck when terminal loses connection during transaction (Verifone).
2020-02-21 SDK 2.47.2 (Android)


Improvements and Bugfixes
Improvements
  • BroadPOS P2PE minimum version is updated to
    V1.00.09_20191202
    . Make sure to contact Payworks Support to update BroadPOS P2PE when using Android SDK 2.47.2.
  • Payworks Android project will migrate to Jetpack library starting from version
    2.48.0
    .
  • Improved key press handling to reduce the chance of error 9FFF terminal error (Verifone).
  • Added support for Cayman Islands Dollar
Bugfixes
  • Fixed the incorrect message on the terminal in relation to VpTT switch interface (PAX).
  • Fixed the issue where the prompt for consumer choice for payment options is shown after already being selected (PAX).
2020-01-24 SDK 2.47.1 (Android)


Improvements and Bugfixes
Bugfixes
  • Fixed the magstripe issue on PAX A920.
2019-12-13 SDK 2.47.0 (Android)


Improvements and Bugfixes
Improvements
  • PAX accessory official release.
    You need to use BroadPOS P2PE version
    V1.00.07_20191029
    or above. Otherwise, you will see error message
    Accessory update required
    . To update BroadPOS P2PE, please contact Customer Support.
  • Improved informing of the merchant and shopper when for a transaction a signature is required customer verification method.
  • Additional information for shoppers on the VIPA terminals during the PIN entry process.
Bugfixes
  • 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.
2020-01-02 SDK 2.39.0 (iOS)


Improvements and Bug Fixes
Improvements
  • New message “Declined - Failed Authorization” is added. This message is providing visibility to the merchant when a transaction has been declined because the acquirer or issuer is not reachable for online authorization
Bug Fixes
2020-01-02 SDK 2.38.0 (iOS)


Improvements and Bug Fixes
Improvements
  • 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.
  • PayButton improvements for Dark Mode support, released in iOS13.
  • Improved DCC screen UI on Verifone P400 terminals.
Bug Fixes
  • Fixed the issue with
    ingenico.common
    library that cause uploading to Apple Store to fail.
2019-11-01 SDK 2.37.0 (iOS)


Improvements and Bug Fixes
Podfile source location is changed from ‘https://bitbucket.org/mpymnt/io.mpymnt.repo.pods.git’ to ‘https://bitbucket.org/payworks/io.payworks.repo.pods.git’!
Improvements
  • Improved Token Refunds transactions status handling on iOS and recovery mechanism for Inconclusive state, which helps to significantly reduce potential transaction errors with this type of transactions.
Bug fixes
  • The issue in the PayButton where some labels could not be seen when dark mode was enabled is fixed.
  • The issue causing xCode to fail due to bitcode inconsistency is resolved in this release.
2019-09-27 SDK 2.46.0 (Android)


Improvements
Improvements
  • 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.
  • 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.
  • Improvement in the customer verification process for standalone refunds with the CUP scheme is added.
2019-07-26 SDK 2.44.2 (Android)


Improvements and Bug Fixes
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 does not remove the card from the terminal when prompted, in order to continue transaction process and prevent timeout issues with the POS system.
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.
2019-07-01 SDK 2.35.0 (iOS)


Bug Fixes
Bug fixes
  • The bug where the PayButton would crash due to an auto-rotation setting when prompting for the signature is fixed in this release.
  • Fixed an issue with magstripe fallbacks being identified correctly.
2019-07-01 SDK 2.44.1 (Android)


Bug Fix
Bug fix
  • The issue where a transaction is failing to start on a VIPA terminal is fixed in this release.
2019-06-21 SDK 2.44.0 (Android)


Bug Fixes and Improvements
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.
2019-05-29 SDK 2.34.0 (iOS)


Bug Fixes and Improvements
Bug fixes
  • Terminal interaction for card not present transactions on Miura terminal bug fix is included in this release.
Improvements
  • Updates on the terminal behavior for switching from contactless to either 'Insert or swipe card' and 'Insert card'.
  • Removed support for legacy accessories.
  • Updates of the currency codes, country and currency list.
  • Additional optimizations and compression of the captured signatures in the SDK.
  • Optimization of the layout on the present card screen for VIPA terminals (VIPA 6.6+).
  • The SDK now uses AFNetworking 3.0+. The Custom MPAFNetworking dependency was removed.
2019-05-17 SDK 2.43.1 (Android)


Bug Fixes and Improvements
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 behavior for switching from contactless to either 'Insert or swipe card' and 'Insert card'.
2019-05-03 SDK 2.43.0 (Android)


Improvements
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.
2019-03-15 SDK 2.42.2 (Android)


Improvements and Bug fixes
Improvements
  • SDK support for Portuguese language is added in this SDK release.
  • Additions in the German language localizations.
Bug Fixes
  • Bug fix in the Miura terminal prompts related to accessories that are not whitelisted is included in this release.
2019-02-27 SDK 2.42.0 (Android)


Improvements and Bug fixes
Improvements
Improvements in this release include:
  • For approved payments transactions, information when on-receipt signature is required from the shopper now is added to the SDK.
  • Additional optimizations and compression of the captured signatures in the SDK.
Bug Fixes
  • Handling of exceptions in the updating process of the Miura terminal.
  • Bugs in the VIPA localizations in Spanish and Italian language are fixed in this release.
2019-02-07 SDK 2.41.1 (Android)


Improvements and Bug fixes
Improvements
Improvements in this release include:
  • Inbound/outbound accessory messages during processing transactions are now available in the SDK logs.
  • SDK support for Spanish language is added in this release.
Bug Fixes
Bug fix for the maximum acceptable tip amount check in the 'Total Amount' workflow for On-Reader Tipping.
2019-01-17 SDK 2.41.0 (Android)


Improvements and Bug fixes
Improvements
Improvements in this release include:
  • Improvement of the On-Reader Tipping by adding the option to define a maximum tipping amount for both 'Tip Amount' and 'Total Amount'.
  • Accessory updates are now also triggered by transactions with barcode scanner and gift card transactions.
Bug Fixes
Bug fixes on displayed messages on the terminal when connection to the accessory fails during the Card Present Process.
2019-01-07 SDK 2.40.0 (Android)


Improvements and Bug fixes
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.
2018-11-28 SDK 2.39.0 (Android)


Improvements
Improvements
Improvements in this release include:
  • Improved monitoring of transaction process.
  • Improvements in the transaction execution processing.
2018-11-28- SDK 2.33.0 (iOS)


Improvements and Bug fixes
Improvements
Improvements in this release include:
  • Integration improvements in the API documentation on the Developer Portal.
  • Recovery mechanism for INCONCLUSIVE state that helps for signification reduction of errors with unstable network connection.
Bug fixes
Bug fixes in this release are related to fixes on the PayButton sample API snippets, status messages during offline transaction processing.
2018-10-04 SDK 2.38.0 (Android)


Improvements and various bug fixes
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, CVM fallback handling on VIPA terminals and TLS 1.2 compatibility for the firmware downloads are included in this release.
2018-08-30- SDK 2.32.0 (iOS)


Bug fixes, Removed dependency on legacy terminals
Bug fixes
Bug fixes related to NFC transactions and sample integration of the PayButton in the Developer Portal are included in this release.
Removed dependency on legacy terminals
Starting with this iOS SDK release, 2.32.0, referencing to Verifone e105 and e315/335 comlinks and accessories is removed.
2018-08-28- SDK 2.37.0 (Android)


Bug fixes
Bug fixes
Various bug fixes related to aborting transactions via terminal and population of MaskedAccountNumber for alternative payment methods are included in this release.
2018-06-29- SDK 2.36.0 (Android)


Bug fixes
Bug fixes
Various bug fixes and reliability related improvements are included in this release.
2018-03-21- SDK 2.31.1 (iOS)


Improved Compatibility with Swift and Swift Frameworks, Local time offset for transactions, UI improvements on the PayButton signature panel, Bug fixes
Improved Compatibility with Swift and Swift Frameworks
We made several changes to the build process and the CocoaPod Podspec to increase compatibility with Swift-based apps and allow you to use SDK and PayButton from Swift-based Frameworks. If you have an issues building your app after upgrading to 2.31.1, please contact our support.
Local time offset for transactions
Local mobile timezone is now sent to Payworks platform with every payment interaction request.
UI improvements on the PayButton signature panel
UI improvements are added on the PayButton signature panel in this release to avoid accidental aborting transactions.
Bug fixes
Various bug fixes and reliability related improvements (better error handling, transaction aborting, improvements of US magstripe workflow) are included in this release.
2018-03-21 - SDK 2.31.0 (Android)


Local time offset for transactions, Bug fixes
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 reliability related improvements (better error handling, transaction aborting, improvements of US magstripe workflow) are included in this release.
2017-12-18 - SDK 2.29.0 (Android)


Added Translations Improvements, Support for MOTO Transactions via Manual Key Entry
Translations Improvements
Improvement and bug fixes of the Swedish language translations 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 processtransactions without the cardholder and their card being present in your place of business.
2017-12-08 - SDK 2.28.0 (Android)


Added Amount Confirmation after Tipping, Bug Fixes, New Translations, Union Pay Common Debit Support
Installation
From this release onwards, you no longer need to include all the external dependencies that the Payworks SDK requires. They get pulled in transitively, making your
build.gradle
file cleaner and easier to maintain! You also no longer have to include
@aar
for all the Android dependencies.
For Miura, the dependencies are now the following:
implementation 'io.payworks:mpos.java.accessories.miura:2.28.0' implementation 'io.payworks:mpos.android.comlinks.bluetooth:2.28.0' implementation 'io.payworks:mpos.java.comlinks.tcp:2.28.0'
For Verifone, the dependencies are now the following:
implementation 'io.payworks:mpos.java.accessories.vipa:2.28.0' implementation 'io.payworks:mpos.java.comlinks.tcp:2.28.0'
We have updated the installation instructions for the PayButton, Custom integration.
2017-12-01 - SDK 2.28.0(iOS)


Feature: Support for CUP Common Debit
Feature: Support for CUP Common Debit
We added support for CUP Common Debit transactions in the US.
2017-11-07 - SDK 2.27.0 (iOS) & SDK 2.26.1 (Android)


Verifone e355 Production-Ready, New Reader: Verifone VX820, Added Languages Support, Bugfixes & Improvements
Verifone e355 Production-Ready
After polishing the user experience and fixing discovered bugs during QA, we are now happy to announce that Verifone e355 integration is now production ready! The Verifone e355 is a compact, flexible mobile payment device designed to be deployed in demanding retail environments. The e355 is supported on both Android and iOS and is available through WiFi and USB connectivity.
New Reader: Verifone VX820
We are very happy to announce that the Verifone VX820 is now available for integration and pilot usage on Android! The VX820 Android integration is fully production-ready and already in pilot with selected merchants. For the VX820 iOS integration we are still polishing the user experience and will provide a production-ready release over the next weeks.
Added Languages Support
Support for additional 6 new languages is added to the SDK and PayButton: Danish, Czech, Norwegian, Hungarian, Latvian and Lithuanian.
Bugfixes & Improvements
Various bug fixes and reliability related improvements (more stable connections, better error handling) are included in this release.
2017-08-23 - SDK 2.24.1 (iOS) & SDK 2.25.1 (Android)


Bugfixes: Portuguese Translations, Error During Update Check
Bugfix: Portuguese Translations in PayButton
We fixed an issue that prevented the PayButton from showing Portuguese translations.
Bugfix: Error During Update Check
We fixed an issue that caused a terminal error when the card was removed during an update check.
The Android and Java SDK now has additional dependencies to Couchbase. Please make sure you update your Gradle or Maven configuration accordingly. More information in the integration document.
2017-08-08 - SDK 2.24.0 (iOS) & SDK 2.24.2 (Android)


Verifone e355, Standalone Refunds, Bugfixes & Improvements
New Reader: Verifone e355
We are very happy to announce that the Verifone e355 is now available for integration and production usage! The e355 is a compact and flexible mobile payment device designed to be deployed in demanding retail environments.
To get started, have a look at the updated PayButton and Custom Integration documentation. We also put together WiFi Setup Instructions, a Merchant User Guide and FAQs.
Right now, you are able to connect to the e355 via WiFi and if you have an already existing integration, using the e355 is especially easy: You just need to change your
AccessoryParameters
accordingly.
Note: The e355 Android integration is fully production-ready and already in pilot with selected merchants. For the e355 iOS integration we are still polishing the user experience and will provide a production-ready release over the next weeks.
Feature: Standalone Refunds (iOS & Android)
Standalone Refunds allow your merchants to refund a previous transaction by asking the shopper to present the card again. This is meant only for setups, where it is impossible to retrieve the
transactionIdentifier
of the previous charge transaction.
To learn more, have a look at the updated documentation and security requirements.
Talk to your account manager regarding suitability and availability of Standalone Refunds for your merchants.
Bugfixes & Improvements
Various bugfixes and improvements are included in this release.
2017-05-26 - SDK 2.22.0(iOS & Android)


Tip Adjust, On-Reader Tipping Total Amount Workflow, Metadata Support
Feature: Tip Adjust (US Only)
Tip Adjust allows you to offer your US-based restaurants their traditional, receipt-based tipping workflow for both magstripe and EMV transactions!
To learn more, have a look at the new PayButton and Custom Integration Tip Adjust documentation.
Talk to your account manager regarding availability of Tip Adjust for your merchants.
Feature: Total Amount Tipping Workflow
In addition to asking the shopper to enter the tip amount right on the card reader, the On-Reader Tipping feature now also allows you to ask the shopper for the total amount, including a potential tip!
To learn more, have a look at the updated PayButton and Custom Integration documentation.
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.
2017-04-28 - SDK 2.21.0(Android)


Metadata Support
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.
2017-04-17 - SDK 2.20.1(iOS)


Bugfix: Stale Transaction
Bugfix: Stale Transaction
We fixed the transaction process blocking indefinitely under certain circumstances when a contactless transaction used signature verification.
2017-04-07 - SDK 2.20.0(iOS) & SDK 2.20.1 (Android)


On-Reader Tipping Total Amount Workflow, Improved PayButton Error Handling, Bugfixes
Feature: Total Amount Tipping Workflow (Android Only)
In addition to asking the shopper to enter the tip amount right on the card reader, the On-Reader Tipping feature now also allows you to ask the shopper for the total amount, including a potential tip!
To learn more, have a look at the updated PayButton and Custom Integration documentation.
Improvement: PayButton Error Handling
Should a transaction fail due to a network error, the PayButton now shows a "Check Status" screen to the merchant, allowing them to verify the final transaction status.
This improvement is automatically available after upgrading.
Bugfix: NullPointerException Thrown During Abort
We fixed a NullPointerException that occurred when an abort was triggered before the connection to the reader was established.
>2017-03-23 - SDK 2.19.0(iOS and Android)


Quick Chip , Standalone Refunds
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.
Feature: Standalone Refunds (Android Only)
Standalone Refunds allow your merchants to refund a previous transaction by asking the shopper to present the card again. This is meant only for setups, where it is impossible to retrieve the
transactionIdentifier
of the previous charge transaction.
To learn more, have a look at the updated documentation and security requirements.
Talk to your account manager regarding suitability and availability of Standalone Refunds for your merchants.
2017-03-08 - SDK 2.18.1 (Android)


Serial Mode Disconnect Detection
Improvement: Serial Mode Disconnect Detection
A physical disconnect of a card reader connected via serial mode is now recognized correctly. In addition we added timeouts for certain kinds of messages to detect stale serial mode connections.
2017-01-26 - SDK 2.18.0(iOS and Android)


Connection Keep-Alive, Progress Bar, AccessoryModule, Bugfixes
Feature: Connection Keep-Alive (iOS and Android)
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.
Set
setKeepAlive:YES
on your
MPAccessoryParameters
and the SDK 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.
Have a look at the documentation to learn more about this feature and understand the battery life implications.
Feature: More Control with AccessoryModule
With the addition of the
AccessoryModule
you now have more granular control on when you connect and disconnect from an accessory.
This for example allows you to explicitly run software updates on a reader independent from a payment transaction. More information can be found on the AccessoryModule page.
Feature: Progress Bar on Miura
The Miura readers now show a progress bar when installing a software update, providing the merchant with status information about the expected completion of the install.
Bugfix: Malformed Receipt Data
We fixed a rare occurrence of malformed receipt data, where the receipt data did contain null value items.
2017-01-12 - SDK 2.17 (iOS and Android)


Improvements and Bugfixes
Improvement: Signature Screen Wording
We updated the wording on the signature screen to make it more intuitive for the shopper. The most visible change is replacing the 'X' button to clear the signature with a 'Clear' button.
Improvement: Adjusted HTTP Timeouts
We lowered some HTTP timeouts in order to fail faster in certain situations. The changes should not affect normal processing and only kick in if operations are running long.
Make sure to handle the
TransactionStatus.INCONCLUSIVE
that indicates an uncertain outcome of a transaction execution. Details can be found here.
Bugfix: Delayed Transaction Abort
We fixed a bug where aborting a transaction during an ongoing accessory connection would get delayed.
Bugfix: Receipt Data Missing
We fixed a bug where the receipt data was not present when running certain NFC-based transactions.
2016-12-01 - SDK 2.16.0 (iOS and Android)


gh-link Scheme, Memory Leak Fix
Feature: gh-link Scheme
We added support for gh-link, the PIN-based local debit scheme of Ghana.
Bugfix: Memory Leak with Miura (iOS only)
The iOS SDK internally leaked memory when using the Miura reader, which might have resulted in an OOM crash when used extensively. This has been resolved as part of the release.
2016-11-09 - SDK 2.15.0 (iOS and Android)


Increased Transaction Speed, Connection Keep-Alive, Connectivity Improvements
Feature: Increased Transaction Speed
We continuously push ourselves to make card payments faster and with 2.15 we reached another important milestone: The payload for each call between SDK and Gateway has been greatly reduced and for contactless transactions we were even able to save a full roundtrip between the SDK and Gateway.
Upgrade to 2.15 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.
Feature: Connection Keep-Alive (Android Only)
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.
Set
keepAlive(true)
on your
AccessoryParameters
and the SDK 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.
Have a look at the documentation to learn more about this feature and understand the battery life implications.
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.
2016-10-01 - SDK 2.14.0(iOS and Android)


Required Update for Miura MPI V1-41 (and later)
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 SDK/PayButton version to 2.14 or later.
2016-09-22 - SDK 2.13.0(iOS and Android)


Redesigned Summary Screen, Loyalty & Bonus Cards
Improvement: Redesigned Summary Screen
The Summary Screen received a major redesign overhaul, making the transaction outcome (approved or declined) and type (sale, pre-authorization or refund) much more obvious to the merchant.
For declined transactions a detailed decline reason such as
Wrong PIN
or
Insufficient Funds
is now shown. The merchant can better understand what needs to be done to get an approved transaction, e.g. by asking the shopper to use another card.
Feature: Loyalty & Bonus Cards (Android Only)
In addition to accepting payments cards such as Visa and MasterCard, we now make it very easy to also read magstripe-based Loyalty or Bonus Cards!
Have a look at the documentation to learn more!
Localization: Improved Swedish Translations and Bugfix
We improved the quality of our Swedish translations and fixed a bug where the Miura reader would always use the English locale.
2016-08-24 - SDK 2.11.1(iOS)


Bugfix for InteractionComponent
Bugfix: GetNumber on InteractionComponent
The previous release returned a NSNumber as a result, which removed leading zeroes from the input. This release changed the returned data to NSString.
2016-08-16 - SDK 2.11.0(iOS and Android)


Streamlined Reader Setup, Enhanced On-Device Tipping, Bugfixes
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.
Bugfix: Bluetooth with Miura in Serial Mode (Android)
It is now possible to connect to and execute transactions on a Miura reader in serial mode using Bluetooth on Android.
2016-06-30 - SDK 2.9.0 (iOS and Android)


Swedish Translation, Removed Deprecated APIs
Feature: Swedish translations
Hej! The SDK and the PayButton are now translated to Swedish.
Deprecation: Removed Deprecated APIs
The previously deprecated APIs have now been removed. This includes the methods which use the
AccessoryOptions
,
TransactionTemplate
and
TransactionTemplateFactory
which have been superseded by
AccessoryParameters
and
TransactionParameters
.
Please make sure you read the PayButton and SDK integration documents and keep your integration up-to date.
New dependency
The SDK and PayButton have a new dependency on Android. We've also updated OkHttp to version 2.7.4 which brings some bug fixes.
Include this in your Android dependencies :
compile 'com.squareup.okhttp:okhttp-ws:2.7.4'
2016-06-02 - SDK 2.8.1 (iOS and Android)


WiFi Miura M010, On-Reader Tipping, Pre-Authorizations, UX Improvements
New Card Reader: WiFi Miura M010
We now feature full live-ready support for the exciting new WiFi Miura M010!
To use it, you literally only need to change one line of code, both for PayButton and SDK integrations.
Feature: On-Reader Tipping
On-Reader Tipping makes it really simple for your merchants to collect tips from their guests!
Have a look at the new Ask for a Tip on the Card Reader recipe to learn more!
Feature: Pre-Authorizations
Pre-Authorizations make it possible to reserve a guaranteed amount on the shopper's card and either Capture or Refund it later on. This allows businesses such as hotels and rental companies to take deposits or up-front payments from their shoppers.
Learn how to implement them with the PayButton or the SDK.
Improvement: Reworked Card Reader Prompts
We made the wording of the card reader prompts that are displayed to the shopper more clear.
Improvement: Revamped PayButton Summary Screen
The PayButton Summary Screen has been redesigned to fully support display of partially refunded and partially captured transactions.
2016-03-10 - SDK 2.7.1(iOS)


Improvements and Bugfixes
Improvement: More Reliable Update Workflow
A recent version of iOS 9 introduced a changed behavior in ExternalAccessory handling that would sporadically fail updated workflows.
Bugfix: Online PIN on Verifone e105
When working with the Verifone e105 there was a chance that the SDK would crash under special circumstances.
2016-02-29 - SDK 2.7.0 (iOS and Android)


Remote Endpoints, Additional Schemes
Feature: New Remote Endpoints with Known Address Range
When you are running behind a restrictive firewall setup, you are now able to configure the SDK to use remote endpoints in a well known range.
Feature: Additional Schemes Support
In preparation to support new schemes in the future, we added references and resources for JCB, UnionPay and Diners/Discover.
Fixes/Additions
Improved handling of magstripe fallbacks, added additional error code mappings.
2016-02-09 - SDK 2.6.1 (iOS)


Bugfix: SDK crashing on application selection with Verifone e105
Bugfix: SDK crashing on application selection with Verifone e105
We resolved an issue, where an application selection triggered via the Verifone e105 would crash the SDK.
2016-02-02 - SDK 2.6.0 (iOS and Android)


Polish Translation, Transaction and Receipts Querying API, Bugfixes
Feature: Polish Translation
Dzień dobry! The SDK and the PayButton are now translated to Polish.
Feature: Transaction and Receipts Querying API
This release introduces a
TransactionModule
available on the
TransactionProvider
. This module provides a better API for the integrator to query previous transactions (based on the transaction identifier or filtering) and fetch receipts without needing to call multiple methods.
Deprecation: Old Transaction and Receipt Querying API
This release deprecates the
TransactionProvider
and
Provider
methods related to querying transactions and fetching and sending receipts.
The receipts are now embedded on the
Transaction
object itself after finishing a transaction or looking it up. Querying and sending the receipts is possible from the new
TransactionModule
.
Dependencies (Android)
The Verifone E105 on Android uses a different dependency. Please make sure to update it as described in the integration page. If you are using the Verifone E105 please note that you need to upgrade the Android minSdkVersion to 16.
Bugfixes (Android)
The SDK on Android received some enhancements and bugfixes related to transaction processing.
2015-11-30 - SDK 2.5.0 (iOS and Android)


Stripe Connect Support, Faster Transaction Processing, Streamlined API
Feature: Stripe Connect Support
We now also fully support Stripe Connect from the SDK, allowing you to charge an Application Fee via the new
applicationFee
parameter.
Further, you can now specify the
subject
,
statementDecriptor
and
metadata
parameters on the new
TransactionParameters
and they will be forwarded to Stripe.
Have a look at our new Stripe Recipe to learn more about using Stripe.
Improvement: Faster Transaction Processing
For users of the PayButton and the TransactionProvider integration, we increased the speed of the transaction processing at various places. This includes detecting an already inserted card on the Miura card reader.
Deprecation: Streamlined Accessory and Transaction Handling
This release deprecates the
AccessoryOptions
and
TransactionTemplate
and introduces the
AccessoryParameters
and
TransactionParameters
as a replacement. They are easier to use and prepare you for upcoming features.
Even though we will keep the deprecated objects and methods for the next releases, please make sure to update soon.
Bugfixes (Android)
The PayButton on Android received some bugfixes and enhancements.
Dependencies (Android)
On Android we replaced some of our external dependencies. Please make sure to follow the install guide and add
OkHttp
and
Bolts
to your list of dependencies.
Known Issues
On Android 6, connecting to the Verifone e105 fails with an internal Verifone error.
2015-11-03 - SDK 2.4.7(iOS)


Finnish Translation, Speed Improvements,Nullable/Nonnull Annotations
Feature: Finnish translation
The SDK is now translated to Finnish.
Feature: Speed Improvements
The speed of transactions was improved by reducing the payloads.
Feature: Nullable/Nonnull Annotations
The public API of the SDK is now fully annotated to support static compiler checking for nullable/nonnull variables and parameters.
2015-11-02 - SDK 2.4.5(Android)


Finnish Translation, Speed Improvements,Fixed Bluetooth Connection Issues
Feature: Finnish translation
The SDK is now translated to Finnish.
Feature: Speed Improvements
The speed of transactions was improved by reducing the payloads.
Bugfix: Bluetooth Connection Issues
Fixed bluetooth connection issues for a range of devices (e.g. Vodacom Smart 6, Alcatel One Touch Tablet).
2015-10-06 - SDK 2.4.6(iOS)


Bugfixes: Compatibility with Xcode 7/iOS 9 and Refund Receipts
Bugfix: Compatibility with Xcode 7/iOS 9
It is now possible again to submit apps to the App Store when using Xcode 7 and iOS 9 .
Bugfix: Refund Receipts for Refunded Transactions
When sending out a receipt for a refunded
CHARGE
transaction, the receipt is now sent for the related
REFUND
transaction.
2015-09-11 - SDK 2.4.4(iOS)


Feature: Refund Transactions now accessible from Original Transaction
Feature: Refund Transactions now accessible from Original Transaction
It is now possible to access the refunds directly from the original transaction via
transaction.refundDetails.refundTransactions
.
Bugfix: Various bugfixes for the Verifone e105
We fixed various bugs that affected the Verifone e105 devices.
2015-09-03 - SDK 2.4.4(Android)


Bugfixes: Whitelist Caching and PayButton Glitches
Bugfix: Failed Processing Due To Whitelist Caching
We fixed a whitelist caching issue, that caused the SDK to incorrectly report a failure on the first transaction after an update (it only worked on the second attempt).
Bugfix: Incorrect PIN Entry Timeout Status
Transactions now correctly receive the
ABORTED
status when a PIN entry timeout occurs on the Verifone e105 during a magstripe Online PIN transaction (previously they received a status of
ERROR
).
Bugfix: Various PayButton Glitches
We fixed "random" NullPointerExceptions when launching the PayButton and fixed an issue which caused the PayButton to crash when closing the Summary Screen before the content is fully loaded.
Further, the input field for the email receipt is now visible on small screen sizes as well.
2015-08-15 - SDK 2.4.2(iOS)


Bugfix: Integrated AFNetworking
Bugfix: Integrated AFNetworking
Inlined AFNetworking to be compatible with various frameworks, e.g. RestKit
Bugfix: Online Pin Magstripe
Fixed issue where online Pin failed for magstripe transactions when swiping while waiting for NFC
2015-08-13 - SDK 2.4.3(Android)


Bugfixes: Magstripe Online PIN and DetectCardRemoval Timeout
Bugfix: Crash during Magstripe Transactions with Online PIN CVM
We fixed a bug which caused the SDK to crash when online PIN was needed for magstripe transactions.
Bugfix: Increased DetectCardRemoval Timeout for Verifone e105
We increased the DetectCardRemoval timeout to 1s for the Verifone e105 to possibly work around execution errors that are triggered with a 0ms timeout.
2015-07-30 - SDK 2.4.2(Android)


Bugfix: Magstripe Transactions
Bugfix: Magstripe Transactions
We resolved an issue, where accepting Magstripe-only cards did not work when contactless was enabled.
2015-07-29 - SDK 2.4.1 (iOS and Android)


Streamlined Contactless Acceptance
Improvement: Streamlined Contactless Acceptance
Your merchants can now accept contactless cards without having to explicitly enable the contactless interface. Instead, the "Present Card" prompt is now immediately shown on the Miura M010!
Improvement: Summary Screen Callback
On iOS the Summary Screen now features a
completed:
block. On Android, you can now specify
MposUi.REQUEST_CODE_SHOW_SUMMARY
as the request code when showing the Summary Screen via
startActivityForResult
.
This makes it very easy for you to be notified when the Summary Screen is closed and allows you to update your own user interface accordingly.
Improvement: Sewoo Printer Connection Handling
We have improved the connection handling to the Sewoo printer.
Bugfixes
Various reported issues have been fixed, including the Android SDK incorrectly reporting "Accessory is busy" and remote updates failing with the Verifone e105 on Android.
Upgrade instructions from iOS 2.4.0
We made the naming of several constants more concise by changing the prefix from
MPUMposUi
to
MPU
.
Affected by this change are amongst others:
MPUTransactionResult
,
MPUTransactionResultApproved
,
MPUPrintReceiptResult
and
MPUPrintReceiptResultSuccessful
. Please update your code to reflect these changes.
2015-06-29 - SDK 2.4.0 (iOS and Android)


Printed Receipts and Summary Screen
Feature: Printed Receipts
We now make it very easy to offer printed receipts to the shoppers: Right after a transaction or through the new Summary Screen, the merchant can easily request a printed receipt.
The first printer we support is the Sewoo LK-P21, a compact and very affordable portable printer. If you are interested, just talk to your account manager about pricing and delivery.
Feature: Summary Screen
The new Summary Screen allows you to show a ready-made user interface for a transaction, where the merchant can refund the transaction and email or print another receipt.
Learn how to integrate the Summary Screen here.
Feature: Email and Print Receipts from the SDK
You can now also use ready-made email and printed receipts when using the SDK.
Improvement: Query Receipt Data from the SDK
We have improved the querying of Receipt Data from the SDK and now return it in all our supported languages. Further, the receipt data now also includes merchant information, such as name and address.
Read all about the new API here.
Upgrade instructions from iOS 2.3.X
  • We have added the
    summaryFeatures
    , which allow you to configure the PayButton. See the updated documentation here. Please update your code to reflect these changes.
Upgrade instructions from Android 2.3.X
  • We have added the
    setSummaryFeatures
    Enum, that allows you to configure the PayButton. See the updated documentation here. Please update your code to reflect these changes.
  • Including
    compile 'com.verifone:e105:1.0:@jar'
    in the
    build.gradle
    is not longer required!
2015-06-11 - SDK 2.3.0 (iOS and Android)


PayButton, Contactless Payments and American Express
New Product: PayButton
PayButton is the easiest way for developers to integrate a card reader into their iOS and Android apps. After a thorough beta phase, it is now ready for prime time!
Built on top of our powerful SDK, the PayButton provides a ready-made user interface that guides the merchant through the whole payment process, including electronic signature capture and sending of ready-made email receipts to the shopper!
Developers can integrate the PayButton within minutes and with this single integration have access to all our leading acquiring partners and reader manufacturers.
The PayButton user interface and ready-made email receipts are of course fully localized and available in English, German, French, Italian, Dutch, Portuguese and Spanish.
Feature: Contactless Payments with Visa and MasterCard
SDK 2.3 is fully certified for Visa payWave and MasterCard PayPass and works with all contactless cards and mobile payment services like Apple Pay and Android Pay!
Integrators who use ConCardis can immediately add contactless payments to their product. Other acquirers are soon to follow, please talk to your account manager for details!
Feature: American Express
SDK 2.3 also is fully certified for American Express, a frequently used card scheme in the taxi, hospitality and high-end retail industries!
Integrators can easily enable American Express acceptance in addition the other schemes already provided by their acquirers. Get in touch with your account manager to learn more!
Improvement: Connection Handling
When connecting to the card reader, the merchant is now prompted to turn on the card reader and wait until the reader is on. Transactions can now be aborted during the connecting phase. For Android, the card reader is prioritized over other Bluetooth devices, leading to shorter connect times.
Improvement: Status Texts
For declined and failed transactions, we now show more detailed status information. This way, the merchant will know, whether the card has exceeded its limit, was stolen or whether the shopper has just entered the wrong PIN.
Improvement: Performance
We reduced the number of requests to our backend during transaction processing and have increased caching to improve the performance.
Upgrade instructions from iOS 2.3.0-BETA05 and below
  • The
    MPUPaymentController
    API has been renamed to
    MPUMposUi
    and was changed slightly. See the updated API here. Please update your code to reflect these changes.
  • The
    MPPaymentProvider
    has been renamed to
    MPTransactionProvider
    . All related methods have been renamed from
    MPPayment...
    to
    MPTransaction...
    . Please update your code to reflect these changes.
Upgrade instructions from Android 2.3.0-BETA08 and below
  • The (previously)
    PaymentController
    API has slightly changed. See the updated API here. Please update your code to reflect these changes.
  • The
    PaymentProvider
    has been renamed to
    TransactionProvider
    . All related methods have been renamed from
    Payment...
    to
    Transaction...
    . Please update your code to reflect these changes.
2015-02-26 - SDK 2.2.8(iOS)


ARM64 compatibility for Verifone readers
ARM64 Support for Verifone readers
Apps using the iOS SDK for the Verifone readers can now be built with arm64.
2015-02-12 - SDK 2.2.4(Android)


Bugfix
Bugfix: Firmware Update
Fixed a bug that caused the SDK to hang in rare cases during a firmware update.
2015-02-11 -Platform


Localized Receipt API
Feature: Localized Receipt API
We have added timezone support and localized formatting for date, time and currency to the Receipt API. Learn how to use it here.
2015-02-06 - SDK 2.2.3(Android)


Support for Miura M007 and M010
Feature: M006, M007 and M010 in one solution
You can now offer the Miura M006, M007 and M010 within the same app.
Feature: Signature on Paper Receipts
It is now possible to indicate to the SDK, that the shopper's signature will be captured on the merchant paper receipt.
2015-01-28 - SDK 2.2.7(iOS)


Support for Miura M007 and M010
Feature: M006, M007, and M010 in one solution
You can now offer the Miura M006, M007 and M010 within the same app.
Feature: Signature on Paper Receipts
It is now possible to indicate to the SDK, that the shopper's signature will be captured on the merchant paper receipt.
Migration Instructions
Please be aware that the
ended
callback of the SDK is now called
completed
. We did this to align it with the Android SDK and to better reflect its semantics.
Bugfix: Status Texts
The status texts in the
completed
callback now indicate the correct transaction outcome.
Bugfix: Disconnecting the Verifone e105
We fixed a bug where the SDK would end up in an infinite loop when the Verifone e105 is disconnected after entering a PIN.
Bugfix: Disable Sleep Timer
The sleep timer is now disabled when a transaction is started, to make sure that all software updates run through.
2014-12-10 - SDK 2.2.4(iOS)


Bugfixes
Bugfix: Memory leak fixed
We fixed a bug that could lead to crashes when multiple transactions with the same MPTransactionProvider are done.
2014-11-28 - SDK 2.2.2(Android)


Portuguese Translation
Portuguese language support
We added support for the beautiful Portuguese language.
Bugfix: Update workflow error
We fixed an error where the update workflow would fail with an error but it was actually successful. This only occurred if keys are injected for the first time.
Bugfix: Android 5 Bluetooth connections
We fixed a crash for Bluetooth connections on Android 5 devices.
Bugfix: Fixed wrong encoding of transaction counter
We fixed that the transaction counter is encoded incorrectly for the Verifone e105 reader.
2014-11-28 - SDK 2.2.3(iOS)


Portuguese Translation
Portuguese language support.
We added support for the beautiful Portuguese language.
2014-11-19 - SDK 2.2.2(iOS)


Bugfix
Bugfix: Update workflow error.
We fixed an error where the update workflow would fail with an error but it was actually successful. This only occurred if keys are injected for the first time.
2014-10-06 - SDK 2.2.1


Easy Integration with Payment Process
Feature: You can now process transactions with a single call.
We integrated connecting, registering, processing, and disconnecting into a single method call and updated the documentation.
2014-07-24 - SDK 2.1.2


Bugfixes
Bugfix: Fixed several bugs
2014-07-24 - SDK 2.1.1(Android)


Bugfixes
Updated Gradle Support
Now compatible with the latest Build tools (version 20) and Gradle plugin 0.12
Bugfix: Fixed several bugs
2014-07-07 - SDK2.1.0


Maestro Card Acceptance
Feature: Support for Maestro
You can now process the Maestro debit card scheme.
Feature: Improved Mock mode for Testing
Feature [Android]: Proguard support
[Android] Support for new Gradle plugin
You can use the SDK with the most recent Gradle plugin.
[Android] Update from 2.0.X:
  • In your
    AndroidManifest.xml
    , change
    io.mpos.communicationmodules.background.BluetoothConnectionService
    to
    io.mpos.comlinks.bluetooth.background.BluetoothConnectionService
    .
  • Remove the
    mpos.android.specs
    library from your classpath (it is obsolete). On Eclipse, remove it from the 'libs' directory. On Android Studio, remove it from the 'dependencies' section in your 'build.gradle'.
2014-04-16 - SDK 2.0.2(Android)


Bugfixes
Bugfix: Improved Bluetooth Connection Handling
In case the phone is paired to multiple Bluetooth devices, the SDK tries to find a Miura reader and ignores other Bluetooth devices, e.g. headphones.
Bugfix: Masked Account Numbers
Now, the SDK sends out masked account numbers for magstripe transactions.
2014-04-15 - SDK 2.0.1


Update for OpenSSL Heartbleed Issue
Bugfix: Updated certificates
The framework now includes updated certificates for the test environment. Note that the old versions do not work on the test environment anymore. This version will be required after additional security updates for processing on the live system starting in June. Contact your account manager if you have further questions.