Skip to main content

Changelog

Version 16.0.9 (28-06-24)

  • Added HardwareCancelled case to the TransactionResult enum. Now when canceling a transaction in the WaitingForCard state, the SDK returns a recoverable error TransactionResult.Reason.hardwareCancelled. This version requires hardware versions 10.0.9 :
        pod 'MagicPosHardware', '10.0.9'
    pod 'QPosHardware', '10.0.9'

Version 16.0.5 (28-02-24)

  • AFNetworking third party library has been replaced by native URLSession networking http client

Breaking changes

  • Now all plugins are injected into the sdk during the configuration stage
        let paymentsConfiguration = try PaymentsConfiguration.Builder(
    endpoint: <Valid-URL>!,
    readerInstallers: [
    QposReaderInstaller(),
    MagicPosReaderInstaller()
    ]
    ).set(
    plugins: [
    SDKPanHashPluginInstallerFactory.getInstaller(
    delegate: self,
    url: <Valid-URL>!
    ),
    SDKSignaturePluginInstallerFactory.getInstaller(
    delegate: self,
    url: <Valid-URL>!
    )
    ]
    ).build()

Version 15.1.0 (31-01-24)

  • PAN hash plugin available. This can be used in some markets only if Geopagos requests it

Version 15.0.6 (08-01-24)

  • Improved contactless transactions flow by removing the double tap when charging a different amount than the original one

  • Improved SDK reliability by removing the chance of creating multiple simultaneous transactions which lead to undefined behaviour

  • Correct mapping for CVM result so Signature is not requested when it’s not needed

  • Online declined error is now a Recoverable error

  • Fixed issue where a transaction was not aborted correctly in certain states

Breaking Changes

  • Removed protocol TransactionIntentDelegate and replaced with protocol SDKTransactionListener

    public protocol SDKTransactionListener {
    /**
    This method indicates the different transaction states that must be implemented by the SDK user
    - Parameters:
    - state
    */
    func onTransactionStateChanged(state: SDKTransactionState)
    /**
    Called when reader state changes
    - Parameters:
    - state
    */
    func onReaderStateChanged(state: ReaderState)
    }

    Now the integrating app will listen for the reader and transaction state updates in these two methods. to react to each new state, the implementer must switch through the states and act accordingly, for example:

    extension SDKTransactionListenerImplementation: SDKTransactionListener {
    func onTransactionStateChanged(state: SDKTransactionState) {
    switch state {
    case let .provideDevice(provideDeviceCallback: provideDeviceCallback):
    // Provide the selected device
    provideDeviceCallback(selectedDevice)
    .
    .
    .

    @unknown default:
    break
    }
    }

    The SDKTransactionListener implementation is injected into de SDK on transaction creation.

    Now the transaction creation is asynchronous, and completes with a result of type Result<TransactionIntent, TransactionIntentInitializationError>

       TransactionIntentFactory.createTransactionIntent(
    type: type,
    listener: self,
    completion: { [weak self] result in
    switch result {
    case let .success(aTransaction):
    self?.transaction = aTransaction
    case let .failure(error):
    print(error)
    }
    }
    )

Version 14.1.2 (04-10-23)

  • Fixed issue preventing a transaction to be aborted when a card is expected to be read from the reader

Version 14.1.1 (15-09-23)

  • Improvement: Added error readerShouldBeConnectedIntoPower when the reader’s firmware is updated while the reader is unplugged

  • Added fields fiid and logicalNetwork to a Merchant

  • Removed applicationKey value injection from Configuration object and moved it to the Confirmation step

## Version 13.1.1 (28-06-23)

  • Adds support to inject signature plugin if needed (pod 'GeoSignaturePlugin', '1.0.1')

  • When a reversal transaction occurs, the emv tag data is added in the request sent to the backend

Version 13.0.6 (11-01-23)

  • Correct mapping for CVM result so Signature is not requested when it’s not needed

Version 13.0.5 (14-9-23)

  • Bug fix, added support to configure contactless cvm limit for visa electron, visa interlink and maestro

Version 13.0.4 (22-8-23)

  • Bug fix: When a transaction is aborted reader gets disconnected properly

  • Fixed memory leaks when performing multiple transactions

Version 13.0.3 (15-06-23)

  • SDK now Throws PaymentsConfigurationError.noInstallersProvided error when no installers are provided on PaymentsConfiguration.Builder method

  • Fixed bug when a transaction confirmation is rejected, now when a confirmation is rejected and the error is recovered, onReadConfigRequired state is called.

  • Internal changes on how the encrypted data is formatted and sent to the backend

Version 12.0.3 (9-3-23) (Deprecated)

  • Decoupled QposHardware reader from Payments SDK. Now we need to explicitly import QposHardware in order to be able to conect to a qPos reader

    pod 'Payments', '~> 12.0.0' pod 'MagicPosHardware' pod 'QPosHardware'

  • Unified returned errors for all readers when a card is removed before the reader could process it, same as the ones returned by the Android SDK version

  • Minimum deployment target updated to iOS 13.0

Version 11.6.1 (20-1-23) (Deprecated)

  • Fixed bug preventing the SDK to cancel a transaction

Version 11.6.0 (27-12-22) (Deprecated)

  • Fixed bug preventing the SDK to obtain the processCode for a transaction denied

  • Setting 0 for tag 9F03 until the SDK supports cashback

  • Fixed currency in Colombia in order to support two decimals, same as the rest of the currencies.

  • Fixed bug when informing if a reader supports “Ask pin” functionality

  • Added exception APIGatewayInitializationError.invalidEndpoint when configuring the SDK with an invalid endpoint URL

Version 11.5.0 (Deprecated)

  • Allow create BreakDownTaxes with empty taxes

Version 11.4.1 (Deprecated)

  • Fix an issue that did not allow abort transactions when card reader is waiting card reading

Version 11.4.0 (Deprecated)

  • Now is possible to update the reader CVM Limit, please check the feature documentation: MOB-ConfigureCVMLimit-020922-1540.pdf

Version 11.3.2 (Deprecated)

  • Fix a bug where the taxes would incorrectly be added to the net value on the terminal

Version 11.3.1 (Deprecated)

  • Fix a dependency issue that force add magicpos pod, now add magicpos pod is optional

Version 11.3.0 (Deprecated)

  • Fixed values of EmvCard.cvmResult, now are .noCvm, .signature and .pin

Version 11.2.0 (Deprecated)

  • When pin is requested in NFC transactions, this event is notify in the ReaderState

  • Support for [.nfc, .chip] together in ReadConfig.readModes for qpos readers

  • When a combination of CardReadMode is not supported a TransactionIntentError.readModesNotSupported is returned

Version 11.1.1 (Deprecated)

  • For use magicpos reader is necessary added dependency in podfile

  • Support for try-again error in magicpos readers for NFC transactions

  • When pin is requested in EMV transactions, this event is notify in the ReaderState

  • In Confirmation the field ticketNumber now is optional

Version 11.0.7 (Deprecated)

  • Fix a dependency issue that force ios 12 as minimum version. now iOS 10 is required as minimum version as expected

Version 11.0.3 (Deprecated)

  • Streamlined firmware and config updates. Now it’s not necessary to pass firmwares and configs directly. The process is the same as before, but the SDK will receive only one file containing all firmwares and configs you need. This files will be signed and verified by the SDK

  • AccountType has been added to the confirmation object. Please note that this is not needed for all the markets so these arguments are optional, currently this is only needed for Colombia. If you have doubts on this please contact Geopagos team.

  • Taxes has been removed from “SDKConfirmation”. Now is handled alongside the transaction total in “SDKReadConfig” object. Please notes that if you wasn’t using Taxes in the confirmation you can give SDKReadConfig a SDKTransactionTotals object with taxes amount of 0.

  • Currency exponent support for 0 decimals has been added to Currency object. This exponent must be set according your market

  • Changes in the init the sdk, MPosTransaction was rename to PaymentsSDK and was added to PaymentsConfiguration to create this object

  • TransactionCardData change to TransactionCard, which has a case for emv and another for swipe, expireDate is not requested anymore, for emv case was added emvApp and cvmResult and for swipe case was added needPin

  • Support for pin in qpos readers for swipe transactions

  • In TransactionIntentDelegate.onTransactionApproved was added TransactionApproved that contains more details of the transaction approved

  • For transaction amount handling BigDecimal is used instead of double

  • Change frameworks format, of .framework to XCFrameworks

  • Internal bug fixing and improvements

Versión 10.3.0 (Deprecated)

  • Fix issue compiling in XCode 13 by disabling bitcode support

Versión 10.2.1 (27-07-2021) (Deprecated)

  • Updated the magicpos SDK to support of alimentar card(Argentina)

Versión 10.2.0 (28-06-2021) (Deprecated)

  • Fixed an issue in timeout, the timeout set in ReadConfig.timeout was not respected

Versión 10.1.1 (14-06-2021) (Deprecated)

  • Fixed an issue that did that the method TransactionIntent.abort does not works

Versión 10.1.0 (26-04-2021) (Deprecated)

  • In magicpos readers is added the flow to support refunds and cancels for NFC

  • Added support to firwmare update and config update in magicpos readers

  • Added support to config update in qpos readers

Versión 10.0.0 (12-03-2021) (Deprecated)

  • Enhance in the internal mapping of fallback error

  • Added hasChip property to TransactionCard

  • Internal use of DateEncodingStrategy .iso8601

Versión 9.0.0 (03-02-2021) (Deprecated)

  • Fixed an issue where errors during reader preparation (including during configuration update) were not reported correctly

  • For transactions the Argentina timezone is used without consider the phone config

  • Fixed an issue when transactions were made with visa NFC in magicos

  • The reader serial is added to transactions data

  • Added optional system logging (New param in MPosTransaction.configure)

Versión 7.0.0 (03-11-2020) (Deprecated)

  • The merchantId field must now be sent within the new Merchant object, which also allows you to include an optional merchantName

  • Fixed an issue of rounding problem

  • Fixed an issue in magicpos when the read of NFC card failed, returned internal error irrecuperable

Versión 6.0.0 (30-10-2020) (Deprecated)

  • Fixed an issue of serverError in refund and cancel

  • The irrecuperable error aborted only should to happen when abort is called

  • Normalized taxes parameter in payment, refund and cancel

  • Added cardHolderAuthenticationEntity field to messaging