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 December 5 (3.16.1 Familiar)
• New requirement to include the IDTech.bundle resource for integrations using ID
TECH VP3350 devices, this provides the latest features and bug fixes. If this is not
included in the integration and a connect and configure is attempted with an ID TECH
VP3350 device the error IdTechBundleRequired will be returned.
• Resolved issue with First Data Rapid Connect pre-formatted non-signature receipts
being returned with a signature line. These now do not contain a signature line unless
required.
• Added functionality to control the amount displayed for account verification
transactions for Miura PIN pads via TMS.
• Added functionality to control the amount displayed for GetCardDetails command
for Miura PIN pads via TMS.
• Resolved issue which prevented supplying both the OS and MPI to be updated for
Miura PIN pads.
• Fixed issue that could cause an unexpected card swiped transaction update notification to be returned from a VP3350 device.
• Added functionality to return more detailed progress for firmware updates for Miura
devices.
• Resolved potential issues with Miura device getting out of sync with SDK when
pressing Cancel(X) key during request to Present Card Again.
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.