Skip to content

Releases: tink-ab/tink-link-ios

Tink Link iOS 0.14.2

12 Aug 07:51
3977c62
Compare
Choose a tag to compare
  • Fixed an issue where the credentials form had the wrong content insets when the keyboard was showing.

Tink Link iOS 0.14.1

25 Jun 13:54
b1ab516
Compare
Choose a tag to compare
  • Fixed an issue where you could get stuck in a error state in TinkLinkViewController.
  • Fixed an issue where sometimes the completion handler was not called when TinkLinkViewController was closed.

TinkLink iOS 0.14.0

11 Jun 14:28
07eb499
Compare
Choose a tag to compare

Support for adding beneficiaries

Tink Link now supports adding beneficiaries. Read more in the tutorial.

Improved the documentation

Required scopes are now specified for each context method.

Tink Link iOS 0.13.0

08 Jun 15:00
94940f4
Compare
Choose a tag to compare

Tink Link UI with permanent users

Tink Link UI can now be used with permanent users. You can create, update, refresh and authenticate credentials for your permanent users.

Here is an example how to setup Tink Link with a permanent user:

// Initialize with an authorization code. 
let tinkLinkViewController = TinkLinkViewController(authorizationCode: AuthorizationCode("YOUR_AUTHORIZATION_CODE")) { result in
    do {
        let credentials = try result.get()
    } catch {
        // Handle any errors
    }
}
present(tinkLinkViewController, animated: true)

// Initialize with an access token. 
let tinkLinkViewController = TinkLinkViewController(userSession: .accessToken("YOUR_ACCESS_TOKEN")) { result in
    do {
        let credentials = try result.get()
    } catch {
        // Handle any errors
    }
}
present(tinkLinkViewController, animated: true)

If you want to update, refresh or authenticate a credentials for a user, you need to specify the Operation you want to perform when you initialize the view controller. For example, if you want to update a credentials:

let tinkLinkViewController = TinkLinkViewController(userSession: .accessToken("YOUR_ACCESS_TOKEN"), operation: .update(credentialsID: id)) { result in 
    do {
        let credentials = try result.get()
    } catch {
        // Handle any errors
    }
}

Tink Link iOS 0.12.0

29 May 14:07
c4b8104
Compare
Choose a tag to compare

Transfer initiation

Tink Link now supports initiating transfers. Read more in the tutorial.

Fetching transfer source accounts and destination beneficiaries

See more details on getting a source account and getting beneficiaries sections.

Initiate transfer

Initiate the transfer with the details specified. Read more on Initiating a transfer section.

Tink Link iOS 0.11.1

14 May 08:53
77d5aa2
Compare
Choose a tag to compare

Provider filtering and selection

Tink Link UI now supports opening directly to a specific provider.

TinkLinkViewController(market: "SE", scopes: scopes, providerPredicate: .name("se-test-open-banking-redirect")) { result in 
    // Handle result
}

The API for changing which providers to list has changed, use the new kinds case to only show certain providers.

TinkLinkViewController(market: "SE", scopes: scopes, providerPredicate: .kinds([.bank, .creditCard])) { result in 
    // Handle result
}

Carthage support

Tink Link can now be installed with Carthage. Add github "tink-ab/tink-link-ios" to your project's Cartfile and run carthage update to install.

Access type descriptions

Descriptions of different access types are now better described in Tink Link UI.

QR image improvements

The QR code in Tink Link UI is no longer blurry and matches the current theme.

Tink Link iOS 0.11.0

07 May 11:37
5d701d3
Compare
Choose a tag to compare

User session

The API to set the user access token is now a property on the Tink object instead of a method.
You can check if this property is not nil if you want to check if the Tink object is currently trying to authenticate with user session credentials.

Tink.shared.userSession = .accessToken(<#T##String#>)

Authenticating credentials

There's now a method to renew and extend the authentication for PSD2 connections.

credentialsContext.authenticate(credentials, progressHandler: { status in
    <#Handle status#>
}, completion: { result in
    <#Handle result#>
})

Update credentials

The update credentials method has a new parameter. Use the progress handler to handle additional authentication steps like supplemental information or authentication in a third party app.

credentialsContext.update(credentials, form: form, progressHandler: { status in
    switch status {
    case .awaitingSupplementalInformation(let supplementInformationTask):
        <#Present form for supplemental information task#>
    case .awaitingThirdPartyAppAuthentication(let thirdPartyAppAuthenticationTask):
        <#Open third party app deep link URL#>
    default:
        break
    }
}, completion: { result in
    <#Handle result#>
})

Tink Link iOS 0.10.0

27 Apr 15:18
5fb535f
Compare
Choose a tag to compare

Tink Link UI

A new UI framework has been added. Import TinkLinkUI and use TinkLinkViewController to display a ready-made authentication flow with a few lines of code.

TinkLinkViewController(market: "SE", scopes: [.accounts(.read)]) { result in
    do {
        let authorizationCode = try result.get()
        // Exchange the authorization code for a access token.
    } catch {
        // Handle any errors
    }
}

Authenticating

The methods to authenticate a permanent user has been renamed and moved to the Tink class.

Tink.shared.setCredential(.accessToken(“ACCESS_TOKEN”))

In addition to moving the authentication methods to the Tink object, the different context classes like ProviderContext no longer require a User to be initialized. Instead, they will be automatically authenticated when the corresponding Tink object successfully authenticates.

Refreshable items

You can now specify what refreshable items you wish to aggregate when creating and refreshing credentials.

credentialsContext.add(for: provider, form: form, refreshableItems: .accounts, ...)

ThirdPartyAppAuthenticationTask have been redesigned

There is now a handle method that is used to attempt to open the third party app. There is an optional closure you can provide if you wish to handle the case when the app is missing the third party app.

// Will attempt to open third party app. If unsuccessful, will 
// fallback to displaying a QR code or allowing the 
// user to authenticate on another device. 
task.handle { [weak self] result in
    switch result {
    case .qrImage(let image):
        // Display the provided QR image. 
    case .awaitAuthenticationOnAnotherDevice:
        // Waiting for authentication on other device.
    }
}

Tink Link iOS 0.9.7

24 Mar 16:29
7bea1b0
Compare
Choose a tag to compare
  • Fixed an issue where BankID could be opened twice or AddCredentialsTask would stop updating.

Tink Link iOS 0.9.6

24 Mar 15:04
8965546
Compare
Choose a tag to compare
  • Added missingInternetConnection error case for when device is offline.
  • Automatically retries requests when service is unavailable.