Skip to content

v6.0.0

Latest

Choose a tag to compare

@melissaosullivan melissaosullivan released this 26 Jun 20:45

Plaid Link Android SDK 6.0.0 Release Notes

6.0.0 is a Kotlin rewrite of the SDK with a session-based API. You create a typed session per flow (createPlaidLinkSession, createPlaidLayerSession, createPlaidHeadlessSession, createPlaidEmbeddedLinkView), open it through the OpenPlaidLink ActivityResultContract, and receive a typed LinkResult from the launcher callback. Events arrive through a single global listener. There are no @Deprecated 5.x shims; see the migration guide for before/after code for every flow.

What's new

  • The SDK AAR is about 74% smaller (~4.5 MB → 1.2 MB).
  • onLoad callback: pre-initialize a session in the background and open Link once it's loaded, preventing jarring loading indicators.
  • More reliable LinkEvent delivery and improved internal logging for diagnosing session failures.
  • A session is single-use; build a fresh one per open. The server decides a token's flow type when the session preloads, so opening a token with the wrong session type fails fast (for example, a standard token opened as a headless session returns LinkErrorCode.SdkError.SESSION_TYPE_MISMATCH).

Breaking changes

See the migration guide for full details and code.

  • Plaid.create / PlaidHandler / FastOpenPlaidLink removed. Create a typed session with createPlaid*Session and open it with OpenPlaidLink (contract input retyped to PlaidSession).
  • LinkResultHandler removed. Use the OpenPlaidLink launcher callback for the launcher path, or Plaid.parseResult(requestCode, resultCode, data) for the classic open(Activity) path. open(Fragment) is removed; open(Activity) delivers to the host Activity's onActivityResult, and for Fragment-scoped results you register OpenPlaidLink with registerForActivityResult.
  • LinkResult is the type returned by the launcher callback; branch on LinkSuccess and LinkExit. Failures surface as typed LinkErrorCode / LinkErrorType.
  • Configuration slimmed to a token plus optional onLoad. logLevel is removed with no replacement; noLoadingState is removed in favor of createPlaidHeadlessSession. Adds LayerTokenConfiguration and EmbeddedLinkTokenConfiguration.
  • LinkEventListener is now a fun interface (was a typealias). Lambdas passed directly to Plaid.setLinkEventListener still work, but assigning a lambda to a LinkEventListener variable no longer compiles. From Java, onEvent returns void.
  • Exception hierarchy collapsed from 16 types to 2. Code that caught the old config-validation exceptions won't compile.

Requirements

Name Version
Android minSdk 26 (Android 8.0) — raised from 21 in 5.x
compileSdk 36
Java 11+ source/target (example app uses 17)
Kotlin 2.x