iOS SDK v2 ReleasesImprove this page
2.2.0
- Migrate to Enigmatic-Smile GitHub organization
2.1.2
- Updated consent text for Mastercard cards.
2.1.1
- Add a few more card verification metrics tracking features to help us improve our services.
2.1.0
- Add card enrollment & verification metrics tracking features to help us improve our services.
2.0.0
- Transaction Stream iOS SDK is now Stable! We are thrilled to announce a significant milestone in our journey – the Transaction Stream SDK has officially transitioned from its beta phase to a stable release! After months of rigorous testing, we are confident that Transaction Stream SDK is ready to empower your projects so you can create more valuable, engaging experiences for your customers.
2.0.0-beta20
- Removed card scanning feature, please make sure to delete the
Fidel.enableCardScanner
andFidel.shouldAutoScanCard
configuration.
2.0.0-beta19
- Improve the security of the SDK secrets.
2.0.0-beta18
- Make the Fidel API requests ephemeral.
2.0.0-beta17
- Updated the micro-charge descriptor text to the correct one.
2.0.0-beta16
- Fixed a bug that prevented corporate cardholders to delegate card verification to a third party, but later change their minds and verify the card (using the
Fidel.verifyCard
function), on the same device.
2.0.0-beta15
- Added Norway to the countries supported by the SDK.
- If you specified the
allowedCountries
property, remember to add Norway, to have it in theCountry of issue
field. - If you didn't customize the
allowedCountries
property, Norway will automatically show up in theCountry of issue
field after you integrate the newest version of the SDK.
- If you specified the
2.0.0-beta14
- Card scanning will now be disabled by default, use
Fidel.enableCardScanner = true
to enable card scanning.
2.0.0-beta13
- Useful features for corporate card enrollment, but not only:
- The
Fidel.thirdPartyVerificationChoice
property to allow cardholders to choose between verifying the card on the spot (as previously available) or indicate that the cardholder does not have access to the card statement and needs to delegate card verification to a third-party entity. - The
Fidel.verifyCard
function to attempt card verification for a previously enrolled card. This function can be used for either the cardholder or a third-party entity (that cannot enroll cards, but can verify cards). - (Experimental feature) The
Fidel.onCardVerificationChoiceSelected
callback that communicates the cardholder's choice and intention to either verify the card on the spot (because the cardholder has access to the card statement) or to express the intention to delegate card verification to a third-party entity.
- The
- Adds the
Fidel.onCardVerificationStarted
callback which communicates that card verification has started for a card that was enrolled in a Fidel program. This callback provides the consent details that is created, in order to start card verification. - Changes in the verification screen text that gives a better description on how the micro-charge will be displayed in the card statement
- Removes the currency symbol during the input of the verification token (the micro-charge amount).
2.0.0-beta12
- This version displays better text to cardholders explaining that card verification micro-charges will be refunded within 72 hours.
2.0.0-beta11
- Fixes error with Result not properly sent.
2.0.0-beta10
- This version provides a comprehensive error message in case the micro-charge fails. You don't need to make any changes to your code in order to use this version.
2.0.0-beta9
- Removed the
FidelResult.verificationSuccessful
. Replaced withFidelResult.verificationResult
. - We are now providing
cardID
as part of theFidelResult.verificationResult
.
2.0.0-beta8
- We've now blocked the SDK for cardholders that use insecure devices. If a cardholder has an insecure device, you'll receive the
.deviceNotSecure
error via theonResult
closure/parameter that you can set. Please treat this error in the most appropriate way for your app. - We stopped allowing copying card details from our SDK's input fields. Only the "Paste" operation is allowed.
2.0.0-beta7
Support card verification in GBP for UK issued cards.
2.0.0-beta6
We updated the "Fidel" name to "Fidel API".
2.0.0-beta5
We updated the Fidel logo.
2.0.0-beta4
We merged a few changes that we did in our public SDK:
- Added the
defaultSelectedCountry
property which sets the country that will be selected by default, when opening the card enrollment screen. - Removed the scanned card information confirmation screen. The card information is displayed immediately in the card enrollment screen after card scanning.
- Fixed the bug that does not allow enrollment for cards that expire in the current month.
2.0.0-beta3
- If the user did not complete the card verification step (but did succeed to enroll a card) the SDK opens the card verification step when the app is re-opened. We made a few changes related to this process:
- Before opening the card verification step automatically, when the app is re-launched, we make sure that the Fidel SDK is configured correctly. If it is not configured correctly (it misses parameters or they are not valid) then you'll receive an appropriate error, if you're using the
Fidel.onResult
closure. In case the SDK was not configured correctly, the card verification step will not be opened automatically. - If the user did not complete the card verification step, closed the flow at this step, but does not quit your app and attempts to re-connect the card (by pressing on the button in your app), we'll take the user directly to the card verification step, to continue the process. Previously the user had to enroll the card again, which would have caused an error. By letting the user continuing the card verification process, we avoid errors in this scenario.
- Before opening the card verification step automatically, when the app is re-launched, we make sure that the Fidel SDK is configured correctly. If it is not configured correctly (it misses parameters or they are not valid) then you'll receive an appropriate error, if you're using the
2.0.0-beta2
- Renamed the
present
function (which opened the Fidel card connection) UI tostart
, in order to align with the web SDK. - We made the
companyName
property mandatory, as it is reflected in the consent text the user has to agree with before enrolling a card, so it made sense to make it mandatory. If the property is not set, you will not be able to open the Fidel card connection UI, but receive an error result immediately after the attempt to start the card connection process. - We wanted to improve the SDK APIs to comply with the Swift API design guidelines:
- Rename
programId
property toprogramID
. - Longer, more expressive names are fine, so we did the following renaming as well:
- Rename
autoScan
property toshouldAutoScanCard
. - Rename
privacyURL
property toprivacyPolicyURL
. - Rename
termsConditionsURL
property totermsAndConditionsURL
.
- Rename
- Rename
- The
allowedCountries
property has been transformed from anArray
, to aSet
. If you allow multiple countries, they will now be sorted alphabetically. ProgramType
enum now implements theEquatable
protocol (as all other enums made available by the Fidel SDK).FidelAppDelegate
class has been removed. There is no need to make theFidel.shared.applicationDidBecomeActive(_:)
function call in yourAppDelegate
anymore.- Removed Objective-C support from our SDK in order to make our responses enums and structs which are more appropriate for what most iOS developers use: Swift.
- Improved the result entities and we are providing more types of results, during the card connection processes. In order to achieve this, we made a few changes to our SDK APIs:
- Removed the callback parameter from the
start
function (previously namedpresent
). The reason is that we introduced the flow to verify a card. If theprogramType
that you set is.transactionStream
and if the user enrolls a card, but does not finish verifying the card, then the card verification screen will be re-opened the next time your app is opened, to make sure the user finishes card verification. That means that it is possible to receive card verification results or error results by starting this process without the user’s action. That’s why handling the result has been separated from thestart
function. - In order to handle a result, you have to set the
Fidel.onResult
property. It can be called multiple times during a card connection flow. In order to receive results during the entire card connection process, please set theonResult
property in theapplication(_:didFinishLaunchingWithOptions:)
function, like all other Fidel configuration properties. - The possible results that you can handle are
FidelResult
enum cases. They are the following:enrollmentResult(EnrollmentResult)
;EnrollmentResult
was previously namedLinkResult
.verificationSuccessful
.error(FidelError)
.
- Renamed the
LinkResult
class toEnrollmentResult
. - Transformed the
EnrollmentResult
into a struct. EnrollmentResult
implementsEquatable
protocol.- Renamed a few properties of the
EnrollmentResult
, in order to comply with the Swift API design guidelines, and for some properties, we also changed their data types to be more suitable for these properties:id
has been renamed tocardID
.programId
renamed toprogramID
.accountId
renamed toaccountID
.created
has been renamed toenrollmentDate
.- Changed data type of
enrollmentDate
fromString
to aDate
. - Renamed the
live
property toisLive
. - Renamed
firstNumbers
tocardFirstNumbers
. - Renamed
lastNumbers
tocardLastNumbers
. - Renamed
expYear
tocardExpirationYear
. - Renamed
expMonth
tocardExpirationMonth
. expDate
of typeString
was removed, as we already providecardExpirationYear
andcardExpirationMonth
.- Renamed
scheme
tocardScheme
. - Changed the data type of
cardScheme
fromString
(which used internal scheme identifying strings as values) toCardScheme
, our custom data type that is easier to work with in Swift and that it was already used for theFidel.supportedCardSchemes
property. countryCode
has been renamed tocardIssuingCountry
- Changed the data type of
cardIssuingCountry
fromString
(which used identifiers of countries as values) toCountry
, our custom data type that is easier to work with in Swift and that it was already used for theFidel.allowedCountries
property.
- Changes in the
LinkResultError
class:- Renamed it to
FidelError
as now it’s possible to receive errors during the card verification process, not just during the card enrollment process. - Changed data type of the
date
property fromString
to aDate
. - Renamed the
code
property totype
. - Changed the data type of the
type
property fromString
toFidelErrorType
, which is a new enum introduced to identify types of errors easily in Swift (please check this enum to see the types of errors that you can handle).
- Renamed it to
EnrollmentResult
andFidelError
structs implement theEquatable
andDecodable
protocols.- The only way possible to create an
EnrollmentResult
andFidelError
instances is to decode them from our Fidel API responses (easier through our SDK). - All properties of our result instances (of
FidelError
&EnrollmentResult
) are now immutable (let
constants). - All properties of possible responses are correctly optional or non-optional
- It’s possible to handle errors with the type
.userCanceled
during any stage of the card verification flow, if the user cancels it.
- Removed the callback parameter from the
2.0.0-beta1
- Renamed the
apiKey
property tosdkKey
. - Added the
programType
property and theProgramType
enum to specify the program type that you'll use in your app. - If the
programType
property is set to.transactionStream
, users will be able to start the card verification flow.