Banyan SDK


The Banyan Client SDK platform allows you to extend your existing mobile application using our mobile framework to gain access to detailed receipt information to provide a better experience to your existing user base.

Our framework, BYConnect, allows your users to connect to their insititions and attach a card number to start receiving more relevant data about their transactions.


  • Customizable UI: Customize the look and feel of the BYConnect framework your brand.
  • Easy Integration: Integrate and customize the BYConnect framework in just a few lines of code.
  • Secure: We use MX and VGS to protect user data and never get in touch with it.
  • Card Scanning: Allow your users to quickly sync their card number with our cloud server using their device's camera.


  • iOS 13+
  • Swift 5
  • Third party services (you might notice these services being installed when you install our framework via CocoaPods):


BYConnect is currently only available for integration via CocoaPods.


CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects.

You can install the BYConnect framework into your application by following these steps:

  1. If you have not installed CocoaPods previously, install the latest version of CocoaPods by running the following commands in your terminal:
$ gem install cocoapods
$ pod setup

Depending on your system settings, you may have to use sudo in order to install cocoapods as follows:

$ sudo gem install cocoapods
$ pod setup
  1. In your main project directory (the directory where your *.xcodeproj resides), run the following command in terminal to create a Podfile for your project.
$ pod init
  1. Edit the podfile to include the pods you want to integrate into your project, like the BYConnect framework in this instance.
    As a result, your podfile might look something like this:
target 'YourTarget' do
    pod 'BYConnect'
  1. Then run the following command:
$ pod install

If you were unable to install BYConnect using the pod install command, try the below command instead:

$ pod install --repo-update
  1. Once the installation is complete, you will find a newly generated *.xcworkspace file in your project's directory with XCode.

You can do this by issuing the following command in your project folder:

$ xed .

Logging into MX

Log into MX with the following test credentials:
username: test_atrium
password: password


Card Scanner and Camera Usage

One of the features included in BYConnect is card scanning, which makes use of the user's camera.

If you have already included a Camera Usage Description in your info.plist then you can skip this step.

If not, please follow these steps:

  • Right click on your info.plist file from the navigator pane in Xcode and select
  • From the menu that follows, choose Open As and select Source Code
  • Include the following lines of code into your info.plist file:
<string>We need to use the camera to scan your credit number info</string>

Import BYConnect into your file

Add the following at the top of the swift file along with your other include statements

import BYConnect

Initialize a BYConnectController

Initialize a BYConnectController by passing it a clientId string. The clientId is simply the unique identifier of your customer currently using your mobile application.

var customerId = yourApplicationCustomerId()
var byConnectController = BYConnectController(withClientId: customerId)

Initialize a BYConnectController with an environment

Our Connect platform supports multiple environments, namely Laboratory, Development and Production, which you might want to make use of to support your own development and production app versions.

In order to specify the environment, you need to initialize a BYConnectController with a clientId and your desired environment, for example:

var customerId = yourApplicationCustomerId()
byConnectController = BYConnectController(withClientId: customerId, andEnvironment: .Laboratory)

Please note: Currently we are unable to support switching environments at run time so you need to set your desired environment at compile time and restart your application if you need to switch your environment.


Logging is switched off by default, however you can choose to switch this on which might be helpful if you face any errors during integration. Include this line of code to enable logging:

byConnectController?.shouldShowLogs = true


By default, The BYServiceSDK defaults to the the user's device apperance mode.

However, your application can customize the look and feel of various elements contained within the SDK to match your brand.

First, set the allowsCustomUI property to true otherwise any customization will be ignored.

Here is an example of what can be customized within the BYServiceSDK at the moment:

byConnectController?.allowsCustomUI = true

let black = UIColor(red: 8.0/255.0, green: 7.0/255.0, blue: 5.0/255.0, alpha: 1.0)
let green = UIColor(red: 4.0/255.0, green: 114.0/255.0, blue: 77.0/255.0, alpha: 1.0)
let blue = UIColor(red: 184.0/255.0, green: 219.0/255.0, blue: 217.0/255.0, alpha: 1.0)
byConnectController?.setLayoutColor(black, forKey: .viewBackgroundColor)
byConnectController?.setLayoutColor(green, forKey: .actionColor)
byConnectController?.setLayoutColor(blue, forKey: .inputBackgroundColor)
byConnectController?.setLayoutColor(blue, forKey: .titleTextColor)
byConnectController?.setLayoutFontName("Ubuntu-Regular") file

Presenting the BYConnectController

byConnectController?.present(on: self, animated: true, completion: nil)

Full Code Sample

import UIKit
import BYConnect

class SampleViewController: UIViewController {

var byConnectController: BYConnectController?
let customerId = "1234567"

    func launchBYServiceSDK() {
    byConnectController = BYController(withClientId: userId)
    byConnectController?.shouldShowLogs = true
    byConnectController?.allowsCustomUI = true
    byConnectController?.setLayoutColor(.white, forKey: .viewBackgroundColor)
    byConnectController?.setLayoutColor(.purple, forKey: .actionColor)
    byConnectController?.setLayoutColor(.lightGray, forKey: .inputBackgroundColor)
    byConnectController?.setLayoutColor(.blue, forKey: .titleTextColor)
    byConnectController?.present(on: self, animated: true, completion: nil)

Demo Application

Demo application for setting up BYConnect and customizing the layout can be found here


To follow BYConnect updates and changes check the releases page.


The documentation provided here is all you need to get your app integrated with our Banyan Connect platform.

We also provide native, Apple style documentation for our classes and functions to support you within Xcode itself.


BYConnect currently does not support Bitcode builds. In order for you to be able to archive your app and distribute it to the app store you will need to:

  • Select your project from the navigator pane in Xcode
  • Select the target which you intend to release to the app store
  • Go to Build Settings
  • Search for Enable Bitcode
  • Set this to No

Did this page help you?