← Decision Records

Finicity Webviews

Context and Problem Statement

In the past, display of webview content has primarily been driven by where it is displayed (i.e. dashboard, from the menu, etc.). With the addition of third party account aggregation through Finicity, we’ve had to alter this strategy and choose the option required by the content.

Decision Drivers

  • Ensure customers requiring two-factor authentication can utilize the Finicty integration.
  • Stay compliant with the requirements coming from the most used financial providers.

Decision Outcome

Webview content for the Finicity integration will be presented using the custom variant of SFSafariViewController through a specialized presentation path. The presentation path ensures the web content will still be presented once a customer enters their PIN as the result of navigating away, then to the app again. This provides an acceptable solution for the following scenarios:

  • A customer needs to provide a second form of authentication that will take them outside of the app.
  • A customer is attempting to aggregate an account through Chase.

For additional background on the issues that led to this decision, please see the folling Slack threads:

https://banno.slack.com/archives/C048W6VNWUD/p1681415358287759 https://banno.slack.com/archives/C048W6VNWUD/p1682022958439069 https://banno.slack.com/archives/C048W6VNWUD/p1688057627954319

Considered Options

  • Taking on a large scale refactor of the navigational architecture of the app.
  • Attempting to bypass default behavior of BNPriorityViewController to remedy the issue of navigating away from the app.
  • Switching the content over to SFSafariViewController so all authentication methods can be supported properly.