Powens Documentation
DocumentationChangelogConsoleWebsite
  • Documentation
  • Integration guides
    • Quick Start
      • API Overview
      • Add a first user and connection
    • ➖Bank
      • Introduction to Bank
      • Bank integration guide
    • ➖Check
    • ➖Wealth
    • ➖Pay
      • Getting started with Pay
      • Initiating a one-time payment with the Webview
      • Initiating a bulk payment with the Webview
      • Initiating a recurring payment with the Webview
      • Cancelling a payment
      • Validating your implementation with the test connector
      • Advanced
        • Listing connectors with Pay enabled programmatically
        • Implementing your own payment validation webview
        • Confirming payments manually
        • Changing the manual expiration time
        • Changing the maximum amounts for payments
    • ➖Trust
    • ➖Advisory (obsolete)
    • ➖Indicators
    • SCA & connection states
    • Webhooks
    • Advanced
      • Custom connection implementation
      • End-to-end encryption
      • Response signature
  • SDK
    • Connect SDK
    • Powens Connect iOS
  • Reference
    • API Reference
    • Console & Webview documentation
  • Ressources
    • Tools
      • Institutions & capabilities
      • Demo integration
      • Demo product
    • Glossary
  • Changelog
  • Legal notice
Powered by GitBook
On this page
  • Installation
  • Configuration
  • Usage
  • License

Was this helpful?

  1. SDK

Powens Connect iOS

Learn how to integrate our UI iOS SDK with your app.

PreviousConnect SDKNextTools

Last updated 6 months ago

Was this helpful?

The Powens Connect SDK allows you to quickly and easily implement aggregation journeys and connect with Powens APIs in your iOS app.

Installation

From Cocoapods

  1. If you haven’t already, install the latest version of .

  2. If you don’t have an existing , run the following command to create one at the root of your Xcode project:

pod init
  1. Add this line to your Podfile:

pod 'PowensConnect', '1.0.0-beta'
  1. Run the following command:

pod install
  1. From now on you will use the .xcworkspace file to open your Xcode project instead of the .xcodeproj file.

  2. To update to the latest version of the SDK in the future, run:

pod update PowensConnect

Manually

  1. Download and unzip this Github project.

  2. Drag PowensConnect.xcframework to the Frameworks, Libraries and Embedded Content section of the General settings in your Xcode project. Make sure to select Copy items if needed.

  3. Repeat the above steps in the future to update to the latest version of the SDK.

Configuration

  1. Right-click your Info.plist file and choose Open as > Source Code.

  2. Paste the following into the body of your file (within <dict>…</dict>) to configure your Powens domain.

<key>PowensDomain</key>
<string>YOUR_DOMAIN</string>

Replace YOUR_DOMAIN with your actual Powens domain, without the .biapi.pro extension.

  1. Paste the following into the body of your file (within <dict>…</dict>) to configure the Powens Connect dedicated URL scheme. If you already have custom URL schemes, simply paste the additional CFBundleURLSchemes to your CFBundleURLTypes array.

<key>CFBundleURLTypes</key>
<array>
	<dict>
		<key>CFBundleURLSchemes</key>
		<array>
			<string>powens-CLIENT_ID</string>
		</array>
	</dict>
</array>

Usage

  1. Register for Powens Webview callback notifications from the view controller you wish to present the Powens Webview from.

// Registering for Webview callback notifications
// Allows the automatic dismissal of the presented Webview controller from the source controller
Powens.shared.handler.registerWebviewCallback(sourceViewController: self)
Task {
    do {
        // Building the Connect flow URL and generating a temporary auth code when provided with an access token
        let handle = try await Powens.shared.launcher.connectFlow(accessToken: token, state: nil, options: options)
        // Building the Manage flow URL and generating a temporary auth code
        let handle = try await Powens.shared.launcher.manageFlow(accessToken: token, connectionId: nil, state: nil, options: options)
        // Building the Reconnect flow URL and generating a temporary auth code
        let handle = try await Powens.shared.launcher.reconnectFlow(accessToken: token, connectionId: connectionId, resetCredentials: resetCredentials, state: nil)
                
        // Presenting the Webview controller from the current view controller
        handle.presentOn(sourceViewController: self)                
    } catch {
        NSLog(error.localizedDescription)
    }
}
  1. Handle the data received from the app callback URL.

do {
    try Powens.shared.handler.handleConnectCallback(url: url) { result in
        switch onEnum(of: result) {
            case .webviewConnectCallbackSuccess(let result): self.onConnectSuccess(result: result)
            case .webviewCallbackError(let error): self.onError(error: error)
        }
    }
    try Powens.shared.handler.handleManageCallback(url: url) { result in
        switch onEnum(of: result) {
            case .webviewManageCallbackSuccess(let result): self.onManageSuccess(result: result)
            case .webviewCallbackError(let error): self.onError(error: error)
        }
    }
    try Powens.shared.handler.handleReconnectCallback(url: url) { result in
        switch onEnum(of: result) {
            case .webviewCallbackError(let error): self.onError(error: error)
            default: break
        }
    }
} catch {
    NSLog(error.localizedDescription)
}

License

Replace CLIENT_ID with your client application ID. You can find your client applications IDs in the , under Applications within your domain.

Open the desired Webview flow among Connect, Manage & Reconnect. Visit our for more information about the Webview flows and their usage.

Please refer to the from this repository for a complete example of the PowensConnect SDK usage.

The Powens Connect SDK is available under the LGPLv3 license. See the file for more information.

Cocoapods
Podfile
administration console
documentation
example Xcode project
LICENSE