From the desks of the plaid team

Announcing Plaid Link for iOS



Date

Mar 9, 2017
Authors

Alexis, Al & Michael

We want to make it as easy as possible to work with financial data, and today, we’re thrilled to share Link iOS, a native iOS SDK that makes connecting with user bank accounts even better on mobile. We launched Link in 2015 to help developers focus on building great applications—not on the intricacies of connecting with banks. With just a few lines of code, Link makes it possible to connect with the thousands of financial institutions we support, making it the best way to integrate with Plaid and interact with financial data.

This launch brings to iOS all the same features and functionality as Link’s Javascript SDK: great UI, thousands of banks pre-configured, end-to-end tokenization of sensitive data, and seamless MFA and error handling. Best of all, Link iOS requires zero changes to your backend integration.

We wrote LinkKit with modern iOS applications in mind. It can be integrated into Objective-C and Swift applications as an embeddable framework (so it requires at least iOS 8.0). It fully supports VoiceOver, which also helps to make Plaid Link accessible to a wider audience.

Integrating Plaid Link into your iOS applications using LinkKit takes only 3 steps and mirrors Link’s configuration on the web. Here’s how to get started:

Configuration

Create an instance of PLKConfiguration to set up Plaid Link iOS with your public_key, the Plaid product you’d like to add, and the Plaid environment you’re working in.

PLKConfiguration* linkConfiguration;
linkConfiguration = [[PLKConfiguration alloc] initWithKey:@"<#YOUR_PLAID_PUBLIC_KEY#>"
                                              env:PLKEnvironmentDevelopment
                                              product:PLKProductAuth];

Initialization

We recommend initializing Link with your public_key upon application startup. In the background, this will also retrieve the latest institution data from Plaid’s servers, ultimately creating a better experience for your users:

[PLKPlaidLink setupWithConfiguration:linkConfiguration completion:^(BOOL success, NSError * _Nullable error) {
        if (success) {
            // Handle success here, e.g. by posting a notification
            NSLog(@"Plaid Link setup was successful");
        }
        else {
            NSLog(@"Unable to setup Plaid Link due to: %@", [error localizedDescription]);
        }
    }];

Presentation

Create an instance of PLKPlaidLinkViewController, passing in an object that adopts the PLKPlaidLinkViewDelegate protocol (see below) and present the PLKPlaidLinkViewController object on screen:

id<PLKPlaidLinkViewDelegate> linkViewDelegate  = self;
PLKPlaidLinkViewController* linkViewController = [[PLKPlaidLinkViewController alloc] initWithConfiguration:linkConfiguration delegate:linkViewDelegate];
[self presentViewController:linkViewController animated:YES completion:nil];

Delegate protocol implementation

Adopt the PLKPlaidLinkViewDelegate protocol and implement the following delegate methods, which will be called when Plaid Link iOS finishes. Note that you’ll want to dismiss the PLKPlaidLinkViewController and account for the exit or errors that might come up.

- (void)linkViewController:(PLKPlaidLinkViewController*)linkViewController
 didSucceedWithPublicToken:(NSString*)publicToken
                  metadata:(NSDictionary<NSString*,id>* _Nullable)metadata {
[self dismissViewControllerAnimated:YES completion:nil];
    // Handle successful item creation here
}

- (void)linkViewController:(PLKPlaidLinkViewController*)linkViewController
          didExitWithError:(NSError* _Nullable)error
                  metadata:(NSDictionary<NSString*,id>* _Nullable)metadata {
    [self dismissViewControllerAnimated:YES completion:nil];
    // Handle pre-mature exit or error here
}

Start building

You can integrate Link iOS into your app today! Head to our docs to get started, or jump right to our example Swift and Objective-C integrations. As always, let us know what you think!

Authors:

  • Alexis

    Born and raised in the heart of Berlin, Alexis experienced history first-hand when the Wall came down. He studied informatics at the Brandenburg University of Applied Science and focuses on the native mobile experience for Plaid. Apart from all things Unix, Alexis enjoys preparing and eating raw vegan delicacies complemented by fresh juices and a fine selection of exquisite music.
  • Al

    • Twitter
    • Github
    Al is a designer dedicated to building technology that makes banks more useful for developers. Prior to joining Plaid, he led design at Gumroad, a company designing a better commerce experience for the creative economy. When not working, he can usually be found exploring the Bay Area, practicing yoga, making music, or reorganizing his closet.
  • Michael

    • Twitter
    • Github
    Originally hailing from Washington, DC, Michael studied Computer Science at Duke University. He enjoys building on all things Plaid. When not writing code, he spends his days finding not-so-hilly running routes around San Francisco.

company

  • auth
  • transactions
  • company
  • careers
  • security
  • Terms & Privacy

about plaid

Plaid builds the infrastructure that powers financial applications from big to small. Learn more about our products.

We're hiring

Plaid is currently looking for talented, passionate folks to help us change finance for the better.
Apply now.

contact

  • Plaid
  • info@plaid.com