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.
Improvements & Bugfixes
- Merchant initiated Abort operation of Gift Card redemption makes the POS in unresponsive state
- Updated codebase to comply with Kotlin 1.4
Minimum OS Version
Android SDK requires Android version5.0 (API 21)
starting with this version. Check out the migration guide for more information.
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) propertycountryCodeNumeric
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
andmerchantSecret
- Removed support for legacy BT connectivity targeting Android version 4.x
Minimum OS Version
iOS SDK requires iOS version10.0
starting with this version. Check out the migration guide for this.
Improvements
- 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)
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.
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 & Bugfixes
- 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.
- P400 is able to run new VIPA version: VIPA 6.6.1.12 (Verifone)
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)
Bugfixes
- Fixed issue with newer BroadPOS versions declining transactions after successful online authorization (PAX).
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).
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).
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. Check out the details here for your Jetpack migration.
- 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).
Bugfixes
- Fixed the magstripe issue on PAX A920.
Improvements
- PAX accessory official release. You need to use BroadPOS P2PE version
V1.00.07_20191029
or above. Otherwise, you will see error messageAccessory update required
. To update BroadPOS P2PE, please contact Payworks 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.
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
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.
Improvements
Bug fixes
Improvements
Improvements
Bug fix
Bug fixes
Bug fix
Bug fixes
Improvements
Bug fixes
Improvements
Bug fixes
Improvements
Improvements
Improvements
Bug Fixes
Improvements
Improvements in this release include:
Bug Fixes
Improvements
Improvements in this release include:
Bug Fixes
Bug fix for the maximum acceptable tip amount check in the 'Total Amount' workflow for On-Reader Tipping.
Improvements
Improvements in this release include:
Bug Fixes
Bug fixes on displayed messages on the terminal when connection to the accessory fails during the Card Present Process.
Improvements
Improvements in this release include:
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
Improvements in this release include:
Improvements
Improvements in this release include:
Bug fixes
Bug fixes in this release are related to fixes on the PayButton sample API snippets, status messages during offline transaction processing.
Improvements
Improvements in this release include:
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.
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.
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.
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.
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.
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 process transactions without the cardholder and their card being present in your place of business.
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 and the Java SDK.
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. In particular this includes English, German and Swedish for Verifone VIPA terminals.
Union Pay Common Debit Support
Support for Union Pay Common Debit is included in this release.
Feature: Support for CUP Common Debit
We added support for CUP Common Debit transactions in the US.
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.
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.
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.
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.
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: Stale Transaction
We fixed the transaction process blocking indefinitely under certain circumstances when a contactless transaction used signature verification.
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 him 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.
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.
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.
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 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.
Bugfix: Malformed Receipt Data
We fixed a rare occurrence of malformed receipt data, where the receipt data did contain null value items.
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.
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.
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.
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.
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.
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.
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.
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'
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.
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.
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.
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.
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.
Feature: Stripe Connect Support
We now also fully support Stripe Connect from the SDK, allowing you to charge an
Application Fee via the newapplicationFee
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.
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.
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).
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.
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.
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.
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
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.
Bugfix: Magstripe Transactions
We resolved an issue, where accepting Magstripe-only cards did not work when contactless was enabled.
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.
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.
Read all about Email and Printed Receipts.
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 thebuild.gradle
is not longer required!
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, we are now prompting the merchant to turn on the card reader and wait until he has done so. We also made it possible to abort during the connecting phase and on Android, we now prioritize the card reader 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 (previously)
MPUPaymentController
API has been renamed toMPUMposUi
and has slightly changed. See the updated API here. Please update your code to reflect these changes. - The
MPPaymentProvider
has been renamed toMPTransactionProvider
. All related methods have been renamed fromMPPayment...
toMPTransaction...
. 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 toTransactionProvider
. All related methods have been renamed fromPayment...
toTransaction...
. Please update your code to reflect these changes.
ARM64 Support for Verifone readers
Apps using the iOS SDK for the Verifone readers can now be built with arm64.
Bugfix: Firmware Update
Fixed a bug that caused the SDK to hang in rare cases during a firmware update.
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.
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.
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.
Bugfix: Memory leak fixed
We fixed a bug that could lead to crashes when multiple transactions with the same MPTransactionProvider are done.
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.
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.
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.
Bugfix: Fixed several bugs
Feature: Support for updated Build tools and Gradle versions
Now compatible with the latest Build tools (version 20) and Gradle plugin 0.12
Bugfix: Fixed several bugs
Feature: Support for Maestro
You can now process the Maestro debit card scheme.
Feature: Improved Mock mode for Testing
You can now test your implementation of the SDK without a card reader!
Feature [Android]: Proguard support
It is now possible to obfuscate your app when using the SDK.
[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
, changeio.mpos.communicationmodules.background.BluetoothConnectionService
toio.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'.
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.
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.