Skip to content

Simplified kevin. integration for the iOS clients.

License

Notifications You must be signed in to change notification settings

getkevin/kevin-ios

Repository files navigation

kevin.

Carthage compatible License

The kevin. iOS SDK enables to easily integrate AIS and PIS services in your mobile application. We provide neat, customisable UI screens so integration would be as quick as possible. We also expose the low-level APIs that power those UIs so that you can build fully custom experiences.

If you're a developer:

  • Get started with our SDK reference
  • Get started with our Developer Portal
  • Check out our Samples for an example of how you can easily integrate kevin. iOS SDK for the most common cases

Optionally:

  • Visit our Demo App for a showcase of a fully featured iOS app utilising kevin. iOS SDK

Features

  • Account linking - we provide an easy solution to authenticate and manage user bank accounts.
  • Bank payments - we provide a possibility to integrate bank payments in your app with both SCA and non-SCA options.

Installation

  • Swift Package Manager - kevin. iOS SDK supports Swift Package Manager, which is the recommended option. Add a dependency to your project with: .package(url: "https://github.com/getkevin/kevin-ios", from: "2.2.12")
  • CocoaPods: - add pod 'kevin-ios' to your Podfile

Usage example

Initiate Bank Payment

import Kevin

let paymentID = "UUID" // Put your actual payment's ID here

let configuration = try KevinPaymentSessionConfiguration.Builder(paymentId: paymentID)
    .setPaymentType(.bank)
    .build()

KevinPaymentSession.shared.delegate = self // Set the delegate to obtain payment session result
KevinPaymentSession.shared.initiatePayment(configuration: configuration)

Implement KevinPaymentSessionDelegate

extension YourClassName: KevinPaymentSessionDelegate {
    func onKevinPaymentInitiationStarted(controller: UINavigationController) {
        // Present payment controller
        present(controller, animated: true)
    }

    func onKevinPaymentCanceled(error: Error?) {
        // Handle errors
    }

    func onKevinPaymentSucceeded(paymentId: String, status: KevinPaymentStatus) {
        // Handle success
    }
}

See more samples to check the most common use cases.

Documentation

  • iOS SDK documentation can be found here
  • The API reference is located here

Cross-platform support

At the moment Flutter and React Native integrations are supported. Please check respective cross-platform documentation for a tutorial on how to do it.

Contributing

We welcome contributions of any kind including new features, bug fixes, and documentation improvements. Please first open an issue describing what you want to build if it is a major change so that we can discuss how to move forward. Otherwise, go ahead and open a pull request for minor changes such as typo fixes and one liners.