For the release notes/changelog for the Payment Device SDK for iOS, please see below. A copy of this file can also be found within your Payment Device SDK download with the file name "Changelog.txt".
Updated API
2024 September 20 (3.16 Familiar)
• Enhanced checks for applying configuration for ID TECH VP3350 devices, resulting in improved connection times.
• Added functionality to give integrating apps greater control for initiating the firmware update process for ID TECH VP3350 devices.
• Added functionality to return more detailed progress for firmware updates for ID TECH VP3350 devices.
• Added functionality to filter data returned in getStatus response.
• Resolved issue that could cause a TMS update to occur if the application identifier was set to the existing value in setProperties.
• Added functionality to return address verification result in transactionFinished response.
2024 August 16 (3.15.1 Impundulu)
• Updated IDTech SDK for the VP3350 device to version 1.1.166.056_noAJ which includes BLE connection speed improvements.
• Fixed issue with pre-formatted signature receipts being returned without a signature line.
• Fixed issue with ICC signature not prompting correctly on the VP3350 device.
2024 June 26 (3.15 Impundulu)
• Improved thread safety for calls to setProperties function.
• Updated IDTech.xcframework to version 1.1.166.055_noAJ providing the latest features and bug fixes.
• Added functionality to the ID Tech VP3350 PINs card removal beep via TMS.
2024 June 12 (3.14.1 Phoenix)
• Added Disconnect API method.
• Added functionality to control collision detection for ID TECH VP3350 PIN pads through TMS.
• Enhanced checks for applying correct firmware for ID TECH VP3350 PIN pads.
• Resolved certification issue for BBPOS CHB30 Devices.
2024 May 28 (3.14 Phoenix)
• New Field Addition: rawBatteryChargePercentage has been added to DeviceStatus for the ID TECH VP3350 device. This field provides the raw battery charge percentage, while batteryChargePercentage states the normalized battery percentage.
• Device Support: Added support for BBPOS CHB 30 devices using Bluetooth Low Energy.
• iOS Compatibility: Increased the minimum supported iOS version to iOS 11.
• Linker Flag Requirement: A new "Other linker flag” -lstdc++, is required.
• Dependencies: Additional new dependencies on BBDevice-BT-3.27.0.xcframework and BBDeviceOTA-1.6.13.xcframework.
2024 April 30 (3.13.2 Emrys)
• Significantly decreased configuration time when connecting ID TECH VP3350 PIN pads for transaction processing.
• Added functionality to control low power mode for ID TECH VP3350 PIN pads through TMS.
• Enhanced the capability to manage standby and sleep low power timers for ID TECH VP3350 PIN pads via TMS.
• Updated ID TECH xcframework to remove possible duplicate symbols.
2024 March 18 (3.13 Emrys)
• Added support for ID TECH VP3350 devices on Bluetooth Low Energy, USB-C and Lightning.
• Merchant Defined Fields are now returned from getTransactionInformation.
• Merchant Defined Fields are now sent to a Deferred Auth request.
• General improvements and performance enhancements.
2023 June 27 (3.12 Myrddin)
• Miura Firmware 1-65/PCI P2PE Firmware 6-7 tested.
• Updated Voided receipts to include the transaction Auth Code.
• General improvements and performance enhancements.
2023 March 20 (3.11 Lake Louise)
• Added support for AVS when carrying out keyed PAN entry.
• Added functionality to control backlight for keypad on Miura M020 PIN pads.
• Resolved issue where AMEX contactless transactions were prevented on Miura PIN pads when using SDK version 3.10.
• Simplified the tipping screen on the Miura M020 PIN pads.
• General improvements and performance enhancements.
2023 January 23 (3.10)
• Added OS and kernels information to Miura PIN pads' device status.
• Improved the appearance of the amount confirmation screen on the Miura PIN pads.
• General improvements and performance enhancements.
2022 November 7 (3.09 Articus)
• Removed support for the Miura M010 PIN pad
• General improvements and performance enhancements.
2022 October 10 (3.08 Mastodon)
• Removed CocoaLumberjack dependency to resolve compatibility issues with third-party libraries that use different versions of CocoaLumberjack.
• Added support for a custom on-device tipping prompt for Miura M020 and M021 PIN pads.
• Added support for on-device dynamic tipping for Miura M020 and M021 PIN pads.
• General improvements and performance enhancements.
2022 August 10 (3.07.100544045.614 Prime)
• Added support for Credential on File (Card-on-File) first store transactions.
• General improvements and performance enhancements.
2022 May 23 (3.06.94297777.577 Nostromo)
• Added battery information for BBPOS Chipper and Miura PIN pads in getStatus response.
• Improved signature capture and signature verification receipt data format to match selected acquirer.
• Resolved issue where potentially confusing error codes could be presented on approved transactions.
2022 March 10 (3.05.87045472.514 Lapis Lazuli)
• Add support for Miura PCI P2PE Firmware MPI v6.4
• ChipDNA Mobile Signature Capture Edge Detection fix
• General improvements and performance enhancements.
2021 August 15 (3.04.74012381.419 Ultron)
• Added receipt data parameter in the signature capture event.
• General improvements and performance enhancements.
2021 August 2 (3.03.68295759 Oasis)
• Added support for BBPOS Chipper 2X BT CHB29 devices.
• Improved the process when updating both OS and MPI for Miura PIN pads.
• Enhancement made to avoid unnecessary parsing of track 2 for non-payment cards.
• Enhancement made to provide separate notifications when updating firmware or firmware configuration on BBPOS Chipper 2X BT devices.
2021 May 24 (3.02.61213648 Houdini)
• Enhancement to return the cardholder’s name to the integrator in boundary cases with magstripe cards.
• Removed the dependency on the OpenSSL library when performing Delayed Online Processing transactions.
• Added documentation enhancements to indicate a parameter change from CCValueBluetooth to CCValueBLE.
2021 March 29 (3.01.57608867 Hypnotoad)
• Added support for offline configuration when using the Omni Platform.
2021 February 12 (3.00.53880565 Quantum Leap)
• Added support for Linked Refunds on Cash and Cheque transactions.
• Added support for Delayed Online Processing on Miura and BBPOS Chipper BT PIN Pads.
• Resolved issue where an incorrect error was displayed when Terminating from a PIN Pad during an SCA Online PIN transaction.
• Resolved issue where the Card Hash Collection and Card Reference were not being returned in a call to getTransactionInformation for a Confirmed Deferred Authorisation.
• Resolved issue where the Expiry Date was missing from Transaction Finished events on Datecs BluePad-50 PIN Pads.
• Resolved issue where no error was displayed when an invalid Display Time value was provided to setIdleMessage.
• Resolved issue where no error was displayed when Terminating or Disconnecting during Signature Capture.
• Resolved issue where termination of a transaction that requires SCA could disrupt the following transaction if it also requires SCA.
2020 December 14 (2.20.48531242 Batman City)
• Removed support for the Miura M007 PIN pad as the device is no longer available to buy.
• Added support for differentiating between Datecs Bluepad-50 v1 and v2 devices.
2020 November 9 (2.19.43080224 Ross Tiger)
• Added support for Visa PSD2 SCA to Datecs PIN pads. Applicability depends upon appropriate certification.
• Resolved issue where signature required prompt was displayed on Miura devices during a Deferred Authorisation transaction.
• Resolved issue where signature required prompt was not displayed after signature capture on Miura devices.
2020 August 17 (2.18.37970139 Beach)
• Resolved issue where Card Scheme was not present on some receipts.
• Resolved issue where Auth Code was present on Declined and Voided receipts.
• Removed tip amount parameter from GetTransactionInformation response when the transaction is a linked refund.
• Resolved issue where the AmountTooLarge error could be returned incorrectly for StartTransaction.
2020 June 22 (2.17.33229017 Aria)
• Improved support for Bluetooth Low Energy (BLE) pairing.
• Added support for BIN range whitelisting on BBPOS Chipper BT CHB22 PIN Pads.
• Improved support for retrieval of customer first name and last name on BBPOS Chipper BT and Miura PIN pads when offline.
• Added support for Visa PSD2 SCA to Miura PIN pads. Applicability depends upon appropriate certification.
2020 April 27 (2.16.26837012 Sparks)
• Added support for Account Verification transactions.
• Added support for voiding a transaction which has previously been confirmed.
• General improvements and performance enhancements.
2020 March 2 (2.15.23721828 Athena)
• Added support for Payment Account Reference (PAR) retrieval. The availability of this data is limited to certain situations.
• Updated linked refund transactions to return more transaction information in the response.
• Remove support for the BBPOS WisePad 2 and WisePad 2 Plus PIN pads.
2020 January 27 (2.14.21230496 Zeus)
• Added support for BBPOS Chipper 2X BT CHB22 PIN pads.
• Added validation during startTransaction method to enforce implementation of mandatory callbacks.
• Added support for querying merchant configuration data.
• Added support to refund a transaction using a CardEase reference returned on a different point of sale.
• Added merchant display name parameter to getStatus response.
• Resolved issue whereby errors string would occasionally contain a trailing comma.
• Added support for Application Selection and User Notification observers to the ChipDNA Mobile demo application.
2019 December 18 (2.13.17516036 Aldur)
• Resolved issue where a connection to a BBPOS device could be lost if unexpected
data is returned from the device during configuration.
• General improvements and performance enhancements on BBPOS PINpads.
2019 October 28 (2.13.11722063 Aldur)
• Added support for firmware updates on BBPOS Chipper PINpads.
• Resolved issue where Miura firmware would fail to update.
• Resolved issue where by BBPOS Chipper PINpad may not return cardholder first name and last name during magstripe transactions.
• Resolved issue where on rare occasions transaction could incorrectly fall back when using Miura PINpads.
2019 September 2 (2.12.7380660 Eru Ilúvatar)
• Added support to refund a previously approved and confirmed transaction using the CardEase Reference.
• Replaced NMI references in PaymentDeviceError codes with SWS.
• General improvements and performance enhancements on BBPOS PINpads.
2019 June 10 (2.11.581744 Aurora)
• Updated America Express Contactless transaction processing to comply with Strong Customer Authentication requirement in EU region.
• Added new signature capture event.
2019 April 8 (2.10.5355 Splendour)
• Added support for keyed PAN entry on Miura PINpads.
• Added support for logging to file.
• Upgraded SqlCipher library.
• Improved stability when processing fall forward transactions.
• Improved handling of invalid data on Miura PIN pads.
• Improved card scheme check when processing transactions.
• Improved stability when processing transactions on BBPOS Chipper PINpads.
• Improved performance when calling GetStatus API method.
2019 February 4 (2.09.5122 Glow Worm)
• Added pre-certification support for BBPOS Chipper BT PIN pads.
• Where available cardholder first name and last name parameters will now be returned in
Transaction Finished event when processing transactions online.
• Added enhancement in retry offline request API methods to prevent multiple calls at the same
time.
2018 December 10 (2.08.5016 Luminous)
• Added support for the Miura M020.
• Added support for the Miura M021.
• Added support for Wi-Fi connection to supported PIN Pads.
• Added support for BIN range whitelisting on Miura PIN Pads.
• Enhanced detection for ATM cash only cards.
• CardEntryPrompted TransactionUpdate will now return during fallback.
2018 October 22 (2.07.4794 Aether)
• Added support for printing receipts on BBPOS WisePad2 Plus.
• Disabled magstripe fallback for deferred authorizations.
• Resolved issue with incorrect value returned for days until next TMS update in GetStatus
response.
• Added UTC transaction date time in GetTransactionInformation response.
• Resolved issue where transaction amount in TransactionFinished response did not include the
tip amount.
2018 August 06 (2.06.4591 Gaia)
• Added support to allow the Miura contactless prompt to be disabled.
• Resolved an issue where transactions are terminated if the previous contactless transaction was terminated at amount confirmation.
• Resolved issue where incomplete EMV data could result in some transactions getting declined.
2018 May 08 (2.05.4270 Terra)
• Resolved issue where occasionally on-device tipping amount on Miura PIN pads was parsed incorrectly.
• General enhancements and performance improvements.
2018 January 17 (2.03.3868 Double Star)
• Beta release of ChipDNA Mobile.
• API aligned with ChipDNA Win/Lin for greater flexibility.
• Support added for BBPOS WisePad2 and WisePad2 Plus PIN pads.
Old API
2018 October 22 (1.19.4734 Artemis)
• Disabled magstripe fallback for deferred authorizations
• Resolved issue where override for deferred authorizations request period was not always used
2018 August 6 (1.19.4510 Artemis)
• Added support to allow the Miura contactless prompt to be disabled.
• Resolved an issue where transactions are terminated if the previous contactless transaction was terminated at amount confirmation.
2018 May 8 (1.19.4257 Artemis)
• Resolved minor issue when validating the changePassword() input.
• Resolved issue where occasionally on-device tipping amount on Miura PIN pads was parsed incorrectly.
2018 January 15 (1.19.3730 Artemis)
• Added support for MPI 1-45 on Miura PIN pads.
2017 November 20 (1.19.3577 Artemis)
• Added deferred authorization support for Miura PIN pads for Europe.
• Added enhancement in ChipDNA Mobile to enforce a single initialization call on the API method.
• Added enhancement in retry offline request and delete offline request API methods to prevent multiple calls at the same time.
• Added support for P2PE firmware for the Miura PIN pads.
2017 September 25 (1.19.3370 Artemis)
• Resolved issue causing get card details to fail when EMV fallback is encountered.
• Resolved issue which could cause some PosMate transactions to fail validation.
• Improved handling of configuration data when switching PINpads.
2017 August 8 (1.19 Artemis)
• Resolved an issue where repeated database downgrades caused failed transactions to block
the offline queue.
2017 July 31 (1.19 Artemis)
• Resolved an issue causing some offline requests to be marked as failed before the retry period
has elapsed.
• Resolved an issue where some completed offline confirm requests were not automatically
cleared from the offline queue.
2017 June 5 (1.19 Artemis)
• Updated minimum supported iOS version to 8.
• Added support for PCI P2PE Device Events for Miura PIN pads.
• General enhancements and performance improvements.
2017 April 24 (1.18 Moon)
• Enhanced gateway connection messaging to assist with communication issues.
• DeferredAuthorizationReason now returned during callback for deferred authorization.
2017 February 20 (1.17 Hyperion)
• Performing closeTransaction for a total amount of 0 will now void the transaction.
• A StandaloneTransactionResult with ReceiptData will now be returned whenever the card has
been read and data is available.
• terminateTransaction can now be called at any point during a transaction.
• terminateTransaction can now be used with the Datecs Bluepad-50.
• User agreement text returned in US receipts is now returned in a separate ReceiptField and is
no longer part of the CVM ReceiptField.
2016 December 22 (1.16 Anatoli)
• General enhancements and performance improvements.
2016 November 21 (1.15 Aksara)
• Merchant Number removed from cash and cheque receipts.
• Resolved issue where online authorisation resulted in a duplicate offline authorisation.
• Added EMV tags required for US receipts to ReceiptData object.
• Updated format of US Global US receipts.
2016 October 31 (1.15 Aksara)
• Resolved issue causing some receipts to show card scheme identifier rather than name.
2016 October 26 (1.15 Aksara)
• Resolved issue with End of Day tipping if the gratuity amount was lower than the minimum
transaction amount.
2016 October 24 (1.15 Aksara)
• Added support for Deferred Authorizations (also known as Store-and-Forward) on the Miura
PINpads as an alternative for EMV Offline Authorization in online only regions such as the US.
2016 October 7 (1.14 Excession)
• Fixed connection issue with Bluepad-50 on iOS 9.
2016 October (1.14 Excession)
• Fixed issue causing some Visa contact receipts to display VISA CONTACTLESS.
• Fixed issue which caused isUpdateRequired and isForcedUpdateRecommended to return true
after application launch.
2016 September (1.14 Excession)
• Resolved issue with retrieving terminal configuration data under certain conditions.
2016 August (1.14 Excession)
• Added support for US Common Debit auto-selection for Miura PINpad.
• Added Acquirer Response Code to the transaction details.
• Added Card Scheme ID to the transaction details.
• Added Card Hash and Card Reference to the transaction details.
• Added support for disabling amount confirmation prompts.
2016 July (1.13 Neptune)
• Resolved issues with receipt data handling for short Merchant IDs.
• Amendments to receipt data for First Data Rapid Connect.
2016 June (1.12 Trinity)
• Added support for contactless transactions on the Datecs Bluepad-50.
• PINPadCheck method call is now required in certain circumstances.
• Added isPinPadCheckRequired() to check when PINPadCheck is required.
• Added support of WorldPay US receipts for EMV transactions.
2016 May (1.11 Shamrock)
• Added support to configure the idle connection timeout on Miura PINpads.
• Fixed Bluetooth reconnection issue for Miura PINpads.
2016 March (1.11 Shamrock)
• Added support for end of day tipping.
• Added API method to get card details on the Miura PINpad.
• Added support for Heartland US receipts.
• Changed behaviour of isGratuitySupportAvailable() to return an enum indicating the type of
tipping supported.
• Renamed public API method isGratuitySupported to isGratuityEnabled, and changed behaviour
to return an enum indicating the type of tipping enabled.
• Renamed public API method setGratuitySupported to setGratuityEnabled, and changed
behaviour to specify the type of tipping to enable.
2016 February (1.10 Hadron)
• Added support for Miura M007 PINpad.
• Added US magstripe support for the Miura PINpad.
• Added contactless support for the Miura PINpad.
• Added partial approvals support for Miura and Bluepad50 PINpads.
• Added support for integrators to display text on the Miura PINpad.
• Added support for terminating transaction on the Miura PINpad.
• Added support for setting Terminal Capabilities per AID for the Miura PINpad.
• Added API method to get CardEase Mobile version name.
• Improved support for account selection.
• Masked PAN returned for offline transactions in StandaloneTransactionResult.
• Receipt data passed back during signature verification.
• Added API method in CardEaseMobile for integrators to control enabling and disabling Gratuity
functionality.
2015 March
• Added offline and forced acceptance functionality.
• Added checks for minimum and maximum amount allowed for the specific terminal.
2015 February
• Added SOAP transaction history support (requires TMS set-up).
• Renamed TmsUpdateErrorCode to ConnectionErrorCode to allow the same errors to be used
for TMS update and transaction history connection errors.
• Fixed Bluepad50 software and application updates, in line with the new firmware.
2015 January
• Added Bluepad50 support.
• Added 64 bit support.
• Added operator PIN for refund and verification.
• Added Honour with ID support.
• Added a method for checking whether cash/cheque transactions are supported.
• Added a method for checking whether gratuity is supported.
• Ensured that calls from CardEaseMobileDelegate are always invoked in the same order.
• Added ReceiptData object to TransactionResult and StandaloneTransactionResult to allow the
creation of the custom receipts. Added new methods to CardEaseMobile to allow issuing
custom receipts through AirPrint, email and SMS.
• Added 'Receipt from' text support to ReceiptTextManager.
• Added handling for UTF-8 characters in the user reference field.
• Removed unused card start and expiry date entries from ReceiptTextManager.
• Ensured PINpad delegate disconnected method is called when the PINpad connection is
closed by the SDK.
• Enhanced handling of terminates and declines. SDK will now return declines and allow issuing
receipts in some cases where previously transaction terminated.
• Added new error codes for StandaloneRefundNotSupported and LinkedRefundNotSupported
(previously both used TransactionTypeNotSupported).
• Added Process Updates for gratuity.
• Added additional error code for PosMate, to handle cases where communication is lost during
the configuration update.
• Changed all delegates to weakly referenced.
2014 July
• Removed Jailbroken exception - an error is now returned if the device is jailbroken.
• Added UTC time to StandaloneTransactionResult and TransactionResult.
• Added methods to CardEaseMobileUtils class to validate TerminalID and TransactionKey
format.
• Resolved memory leak issues.
• Resolved an issue with voice referral delegate callback not called.
• Simplified status and configuration updates.
• Application identifier is now only required for CardEaseMobile initialisation.
• Converted SDK to use SQLCipher 3.1.0 (based on SQLite3.8.4.3) and openssl library 1.0.1g.
2014 March
• Added gratuity for Miura.
• Added Online PIN for Miura.
• Ensured a receipt cannot be issued if the transaction is terminated.
• Ensured null can be passed as an optional reference when starting a transaction.
• Fixed an issue with API crashing when carrying out voice referral and digital signature.
• Ensured jailbreak check is not triggered when running on the simulator.
• Added PINpad check to be used to confirm the version of software on the PINpad.
• Removed F padding from receipts when processing transactions with PosMate.
• Updated documentation.
2014 January
• Added merchant’s name and location.
• Added support for UTF-8 characters in receipts.
• Removed void by reference/void last completed transaction functionality.
• Fixed an issue with SMS, where country code was defaulted to UK specific (+44), which meant
SMS could not be sent from other countries without typing in full number including the country
code.
• Fixed an issue with SMS, where SMS receipt couldn't be issued if the phone number started
with +.
• Added error code values to the documentation.
• Renamed some error codes to ensure consistency between how error codes are named and
between different platforms.
• Documented error codes which could be returned from specific methods.
• Split Process updates into a separate file and added the values to the documentation.
• Ensured delegates are called when Miura P2PE injection is performed.
• Improved logging.
2013 December
• Added Online PIN support.
2013 November
• Added reference and amount validation checks to CardEaseMobileUtils.
• Fixed a bug where PosMate terminated a transaction without reporting any error under certain
circumstances.
• Improved error reporting for magnetic stripe transactions in PosMate.
• Updated documentation and changed method names referring to the last refund receipt to
instead refer to last linked refund receipt, to prevent the confusion.
• Ensured error reported after a status update failed is a documented one.
• Added test check to test connectivity to CEM platform and Terminal ID/Transaction Key.
• Added jailbreak checks.
• Added Bluetooth status updates and PINpad pairing functionalities.
• Added cash and cheque sale and refund transactions.
• Added isValidPhoneNumber method to CardEaseMobileUtils to check whether a phone
number has a valid format.
• Added Miura voice referrals.
• Improved error reporting when sending emails, SMSs and printing receipts by changing
sendEmail, sendSms and AirPrint methods.
• Added isValidEmailAddress method to CardEaseMobileUtils to check whether an email
address has a valid format.
• Deleted pinpadConnectionRequired method in CardEaseMobileDelegate.
• Added AirPrint last signature receipt to be used during the signature verification. Added
exceptions thrown when generating the receipts without completing a transaction to prevent
empty receipts being issued.
• End to end digital signature functionality.
2013 August
• Ensured an ICC refund is voided if declined after online approval.
• Renamed PinPadDelegate to PinPadConnectionDelegate and modified callback methods.
• Ensured PosMate does not ask for signature confirmation when processing refund with swipe
card.
• Ensured ICC tags sent to payment platform in requests are consistent with other mobile
platforms.
• Throw exceptions for amount validation rather then returning an error.
• Added user reference validation.
• Fixed PINpad connection issue with PosMate to ensure PINpad can be initiated for transaction
after updating the PINpad software.
• Ensured an error is returned when the transaction is declined because of an internet
connection problem.
• Application identifier cannot be null or empty.
• Added full ICC and quick refund functionality for Miura device.
• Added digital signature support (signature sent to platform but not currently stored).
• Added date and time to transaction result.
• Added checks to ensure that TMS updates, connections to the PINpad or transactions are not
executed simultaneously.
2013 May
• Simplified methods in CardEaseMobileDelegate.
• Added check for downloading new software to PosMate to ensure development signed version
is not loaded on to a production PINpad and vice versa.
• Ensured if an error occurs when processing a quick refund on the PosMate the transaction is
terminated.
• Added more specific error codes for errors returned by Miura PED during ICC transaction.
• Removed 'receipt from' when sending last ICC transaction data via email or SMS.
• Ensured voice referral for full ICC refund is handled correctly.
• Removed initialisation from CardEaseMobile.
• Added amount validation for refund transactions.