Plaid logo
Docs
ALL DOCS

Link

  • Overview
Platforms
  • Web
  • iOS
  • Android
    • Troubleshooting
  • React Native
  • Hosted Link
Core Link functionality
  • OAuth guide
  • Update mode
  • Preventing duplicate Items
  • Data Transparency Messaging migration
  • Returning user experience
Additional Link modes
  • Embedded Link
  • Multi-Item Link
  • Link Recovery (beta)
  • Modular Link (UK/EU only)
Optimizing Link
  • Optimizing Link conversion
  • Link analytics and tracking
  • Pre-Link messaging
  • Customizing Link
  • Choosing when to initialize products
Errors and troubleshooting
  • Troubleshooting
  • Handling an invalid Link Token
  • Institution status in Link
Legacy flows
  • Legacy public key integrations
  • Link Token migration guide
  • Webview integrations
Plaid logo
Docs
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about the Plaid API. Try asking questions like:
  • Do access tokens expire?
  • Why is /transactions/sync/ better than /get?
  • How do I enable IDV selfie checks?
Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.
Plaid.com
Log in
Get API Keys
Open nav

Link Android SDK

Learn how to integrate your app with the Link Android SDK

Overview

The Plaid Link SDK is a quick and secure way to link bank accounts to Plaid in your Android app. Link is a drop-in module that handles connecting a financial institution to your app (credential validation, multi-factor authentication, error handling, etc.), without passing sensitive personal information to your server.

To get started with Plaid Link for Android, clone the GitHub repository and try out the example application, which provides a reference implementation in both Java and Kotlin. Youʼll want to sign up for free API keys through the Plaid Dashboard to get started.

Examples of Plaid Link for Android

Prefer to learn by watching? A video guide is available for this content.

Initial Android setup

Before writing code using the SDK, you must first perform some setup steps to register your app with Plaid and configure your project.

Register your app ID

To register your Android app ID:

  1. Sign in to the Plaid Dashboard and go to the Developers -> API page.
  2. Next to Allowed Android Package Names click Configure then Add New Android Package Name.
  3. Enter your package name, for example com.plaid.example.
  4. Click Save Changes.

Your Android app is now set up and ready to start integrating with the Plaid SDK.

New versions of the Android SDK are released frequently, at least once every few months. Major releases occur annually. You should keep your version up-to-date to provide the best Plaid Link experience in your application.

Update your project plugins

In your root-level (project-level) Gradle file (build.gradle), add rules to include the Android Gradle plugin. Check that you have Google's Maven repository as well.

1buildscript {
2 repositories {
3 // Check that you have the following line (if not, add it):
4 google() // Google's Maven repository
5 mavenCentral() // Include to import Plaid Link Android SDK
6 }
7 dependencies {
8 // ...
9 }
10}
Add the PlaidLink SDK to your app

In your module (app-level) Gradle file (usually app/build.gradle), add a line to the bottom of the file. The latest version of the PlaidLink SDK is Maven Central and can be found on Maven Central.

1android {
2 defaultConfig {
3 minSdkVersion 21 // or greater
4 }
5}
6
7dependencies {
8 // ...
9 implementation 'com.plaid.link:sdk-core:<insert latest version>'
10}
Enable camera support (Identity Verification only)

If your app uses Identity Verification, a user may need to take a picture of identity documentation or a selfie during the Link flow. To support this workflow, the CAMERA , WRITE_EXTERNAL_STORAGE, RECORD_AUDIO, and MODIFY_AUDIO_SETTINGS permissions need to be added to your application's AndroidManifest.xml. (While Plaid does not record any audio, some older Android devices require these last two permissions to use the camera.) The WRITE_EXTERNAL_STORAGE permission should be limited to < Android 9 (i.e. maxSdk=28). If these permissions are not granted in an app that uses Identity Verification, the app may crash during Link.

Opening Link

Before you can open Link, you need to first create a link_token by calling /link/token/create from your backend. This call should never happen directly from the mobile client, as it risks exposing your API secret. The /link/token/create call must include the android_package_name parameter, which should match the applicationId from your app-level build.gradle file. You can learn more about applicationId in Google's Android developer documentation.

Select Language
1const request: LinkTokenCreateRequest = {
2 user: {
3 client_user_id: 'user-id',
4 },
5 client_name: 'Plaid Test App',
6 products: ['auth', 'transactions'],
7 country_codes: ['GB'],
8 language: 'en',
9 webhook: 'https://sample-web-hook.com',
10 android_package_name: 'com.plaid.example'
11 },
12};
13try {
14 const response = await plaidClient.linkTokenCreate(request);
15 const linkToken = response.data.link_token;
16} catch (error) {
17 // handle error
18}
Create a LinkTokenConfiguration

Each time you open Link, you will need to get a new link_token from your server and create a new LinkTokenConfiguration object with it.

Select Language
1val linkTokenConfiguration = linkTokenConfiguration {
2 token = "LINK_TOKEN_FROM_SERVER"
3}

The Link SDK runs as a separate Activity within your app. In order to return the result to your app, it supports both the standard startActivityForResult and onActivityResult and the ActivityResultContract result APIs.

Select group for content switcher
Register a callback for an Activity Result
Select Language
1private val linkAccountToPlaid =
2registerForActivityResult(FastOpenPlaidLink()) {
3 when (it) {
4 is LinkSuccess -> /* handle LinkSuccess */
5 is LinkExit -> /* handle LinkExit */
6 }
7}
Create a PlaidHandler

Create a PlaidHandler - A PlaidHandler is a one-time use object used to open a Link session. It should be created as early as possible to warm up Link so that it opens quickly. We recommend doing this as early as possible, since it must be completed before Link opens, and if you create it just before opening Link, it can have a perceptible impact on Link startup time.

Select Language
1val plaidHandler: PlaidHandler =
2 Plaid.create(application, linkTokenConfiguration)
Open Link
Select Language
1linkAccountToPlaid.launch(plaidHandler)

At this point, Link will open, and will trigger the onSuccess callback if the user successfully completes the Link flow.

onSuccess

The method is called when a user successfully links an Item. The onSuccess handler returns a LinkConnection class that includes the public_token, and additional Link metadata in the form of a LinkConnectionMetadata class.

onSuccess
publicToken
StringString
Displayed once a user has successfully completed Link. If using Identity Verification or Beacon, this field will be null. If using Document Income or Payroll Income, the public_token will be returned, but is not used.
metadata
ObjectObject
Displayed once a user has successfully completed Link.
accounts
List<LinkAccount>List<LinkAccount>
A list of accounts attached to the connected Item. If Account Select is enabled via the developer dashboard, accounts will only include selected accounts.
id
stringstring
The Plaid account_id
name
stringstring
The official account name
mask
nullablestringnullable, string
The last 2-4 alphanumeric characters of an account's official account number. Note that the mask may be non-unique between an Item's accounts, it may also not match the mask that the bank displays to the user.
subtype
LinkAccountSubtypeLinkAccountSubtype
The account subtype. See the Account schema for a full list of possible values
type
LinkAccountTypeLinkAccountType
The account type. See the Account schema for a full list of possible values
verification_status
nullablestringnullable, string
Indicates an Item's micro-deposit-based verification or database verification status. Possible values are:
pending_automatic_verification: The Item is pending automatic verification
pending_manual_verification: The Item is pending manual micro-deposit verification. Items remain in this state until the user successfully verifies the deposit.
automatically_verified: The Item has successfully been automatically verified
manually_verified: The Item has successfully been manually verified
verification_expired: Plaid was unable to automatically verify the deposit within 7 calendar days and will no longer attempt to validate the Item. Users may retry by submitting their information again through Link.
verification_failed: The Item failed manual micro-deposit verification because the user exhausted all 3 verification attempts. Users may retry by submitting their information again through Link.
database_matched: The Item has successfully been verified using Plaid's data sources.
database_insights_pending: The Database Insights result is pending and will be available upon Auth request.
null: Neither micro-deposit-based verification nor database verification are being used for the Item.
institution
nullableobjectnullable, object
An institution object. If the Item was created via Same-Day micro-deposit verification, will be null.
name
stringstring
The full institution name, such as 'Wells Fargo'
institution_id
stringstring
The Plaid institution identifier
linkSessionId
nullableStringnullable, String
A unique identifier associated with a user's actions and events through the Link flow. Include this identifier when opening a support ticket for faster turnaround.
metadataJson
nullableMapnullable, Map
The data directly returned from the server with no client side changes.
Select Language
1val success = result as LinkSuccess
2
3// Send public_token to your server, exchange for access_token
4// (if using Item-based products)
5val publicToken = success.publicToken
6val metadata = success.metadata
7metadata.accounts.forEach { account ->
8 val accountId = account.id
9 val accountName = account.name
10 val accountMask = account.mask
11 val accountSubType = account.subtype
12}
13val institutionId = metadata.institution?.id
14val institutionName = metadata.institution?.name

onExit

The onExit handler is called when a user exits Link without successfully linking an Item, or when an error occurs during Link initialization. The PlaidError returned from the onExit handler is meant to help you guide your users after they have exited Link. We recommend storing the error and metadata information server-side in a way that can be associated with the user. You’ll also need to include this and any other relevant information in Plaid Support requests for the user.

onExit
error
Map<String, Object>Map<String, Object>
An object that contains the error type, error code, and error message of the error that was last encountered by the user. If no error was encountered, error will be null.
displayMessage
nullableStringnullable, String
A user-friendly representation of the error code. null if the error is not related to user action. This may change over time and is not safe for programmatic use.
errorCode
StringString
The particular error code. Each errorType has a specific set of errorCodes. A code of 499 indicates a client-side exception.
json
StringString
A string representation of the error code.
errorType
StringString
A broad categorization of the error.
errorMessage
StringString
A developer-friendly representation of the error code.
errorJson
nullableStringnullable, String
The data directly returned from the server with no client side changes.
LinkExitMetadata
Map<String, Object>Map<String, Object>
An object containing information about the exit event
linkSessionId
nullableStringnullable, String
A unique identifier associated with a user's actions and events through the Link flow. Include this identifier when opening a support ticket for faster turnaround.
institution
nullableobjectnullable, object
An institution object. If the Item was created via Same-Day micro-deposit verification, will be null.
name
stringstring
The full institution name, such as 'Wells Fargo'
institution_id
stringstring
The Plaid institution identifier
status
nullableStringnullable, String
The point at which the user exited the Link flow. One of the following values.
requires_questions
User prompted to answer security questions
requires_selections
User prompted to answer multiple choice question(s)
requires_recaptcha
User prompted to solve a reCAPTCHA challenge
requires_code
User prompted to provide a one-time passcode
choose_device
User prompted to select a device on which to receive a one-time passcode
requires_credentials
User prompted to provide credentials for the selected financial institution or has not yet selected a financial institution
requires_account_selection
User prompted to select one or more financial accounts to share
institution_not_found
User exited the Link flow on the institution selection pane, typically after unsuccessfully (no results returned) searching for a financial institution.
institution_not_supported
User exited the Link flow after discovering their selected institution is no longer supported by Plaid
unknown
An exit status that is not handled by the current version of the SDK
requestId
nullableStringnullable, String
The request ID for the last request made by Link. This can be shared with Plaid Support to expedite investigation
Select Language
1val exit = result as LinkExit
2
3val error = exit.error
4error?.let { err ->
5 val errorCode = err.errorCode
6 val errorMessage = err.errorMessage
7 val displayMessage = err.displayMessage
8}
9val metadata = exit.metadata
10val institutionId = metadata.institution?.id
11val institutionName = metadata.institution?.name
12val linkSessionId = metadata.linkSessionId;
13val requestId = metadata.requestId;

onEvent

The onEvent callback is called at certain points in the Link flow. Unlike the handlers for onSuccess and onExit, the onEvent handler is initialized as a global lambda passed to the Plaid class. OPEN, LAYER_READY, and LAYER_NOT_AVAILABLE events will be sent in real-time, and remaining events will be sent when the Link session is finished and onSuccess or onExit is called. Callback ordering is not guaranteed; onEvent callbacks may fire before, after, or surrounding the onSuccess or onExit callback, and event callbacks are not guaranteed to fire in the order in which they occurred. If you need the exact time when an event happened, use the timestamp property.
The following onEvent callbacks are stable, which means that they are suitable for programmatic use in your application's logic: OPEN, EXIT, HANDOFF, SELECT_INSTITUTION, ERROR, BANK_INCOME_INSIGHTS_COMPLETED, IDENTITY_VERIFICATION_PASS_SESSION, IDENTITY_VERIFICATION_FAIL_SESSION, LAYER_READY, LAYER_NOT_AVAILABLE. The remaining callback events are informational and subject to change, and should be used for analytics and troubleshooting purposes only.

onEvent
eventName
StringString
A string representing the event that has just occurred in the Link flow.
AUTO_SUBMIT_PHONE
The user was automatically sent an OTP code without a UI prompt. This event can only occur if the user's phone phone number was provided to Link via the /link/token/create call and the user has previously consented to receive OTP codes from Plaid.
BANK_INCOME_INSIGHTS_COMPLETED
The user has completed the Assets and Bank Income Insights flow.
CLOSE_OAUTH
The user closed the third-party website or mobile app without completing the OAuth flow.
CONNECT_NEW_INSTITUTION
The user has chosen to link a new institution instead of linking a saved institution. This event is only emitted in the Link Remember Me flow.
ERROR
A recoverable error occurred in the Link flow, see the error_code metadata.
EXIT
The user has exited without completing the Link flow and the onExit callback is fired.
FAIL_OAUTH
The user encountered an error while completing the third-party's OAuth login flow.
HANDOFF
The user has exited Link after successfully linking an Item.
IDENTITY_MATCH_FAILED
An Identity Match check configured via the Account Verification Dashboard failed the Identity Match rules and did not detect a match.
IDENTITY_MATCH_PASSED
An Identity Match check configured via the Account Verification Dashboard passed the Identity Match rules and detected a match.
IDENTITY_VERIFICATION_START_STEP
The user has started a step of the Identity Verification flow. The step is indicated by view_name.
IDENTITY_VERIFICATION_PASS_STEP
The user has passed a step of the Identity Verification flow. The step is indicated by view_name.
IDENTITY_VERIFICATION_FAIL_STEP
The user has failed a step of the Identity Verification flow. The step is indicated by view_name.
IDENTITY_VERIFICATION_PENDING_REVIEW_STEP
The user has reached the pending review state.
IDENTITY_VERIFICATION_CREATE_SESSION
The user has started a new Identity Verification session.
IDENTITY_VERIFICATION_RESUME_SESSION
The user has resumed an existing Identity Verification session.
IDENTITY_VERIFICATION_PASS_SESSION
The user has passed their Identity Verification session.
IDENTITY_VERIFICATION_FAIL_SESSION
The user has failed their Identity Verification session.
IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION
The user has completed their Identity Verification session, which is now in a pending review state.
IDENTITY_VERIFICATION_OPEN_UI
The user has opened the UI of their Identity Verification session.
IDENTITY_VERIFICATION_RESUME_UI
The user has resumed the UI of their Identity Verification session.
IDENTITY_VERIFICATION_CLOSE_UI
The user has closed the UI of their Identity Verification session.
LAYER_NOT_AVAILABLE
The user phone number passed to Link is not eligible for Layer.
LAYER_READY
The user phone number passed to Link is eligible for Layer and open() may now be called.
MATCHED_SELECT_INSTITUTION
The user selected an institution that was presented as a matched institution. This event can be emitted either during the legacy version of the Returning User Experience flow or if the institution's routing_number was provided when calling /link/token/create. To distinguish between the two scenarios, see LinkEventMetadata.match_reason.
MATCHED_SELECT_VERIFY_METHOD
deprecateddeprecated,
The user selected a verification method for a matched institution. This event is emitted only during the legacy version of the Returning User Experience flow.
OPEN
The user has opened Link.
OPEN_MY_PLAID
The user has opened my.plaid.com. This event is only emitted when Link is initialized with Assets as a product.
OPEN_OAUTH
The user has navigated to a third-party website or mobile app in order to complete the OAuth login flow.
SEARCH_INSTITUTION
The user has searched for an institution.
SKIP_SUBMIT_PHONE
The user has opted to not provide their phone number to Plaid. This event is only emitted in the Link Remember Me flow.
SELECT_BRAND
The user selected a brand, e.g. Bank of America. The SELECT_BRAND event is only emitted for large financial institutions with multiple online banking portals.
SELECT_DEGRADED_INSTITUTION
The user selected an institution with a DEGRADED health status and was shown a corresponding message.
SELECT_DOWN_INSTITUTION
The user selected an institution with a DOWN health status and was shown a corresponding message.
SELECT_FILTERED_INSTITUTION
The user selected an institution Plaid does not support all requested products for and was shown a corresponding message.
SELECT_INSTITUTION
The user selected an institution.
SUBMIT_ACCOUNT_NUMBER
The user has submitted an account number. This event emits the account_number_mask metadata to indicate the mask of the account number the user provided.
SUBMIT_CREDENTIALS
The user has submitted credentials.
SUBMIT_MFA
The user has submitted MFA.
SUBMIT_OTP
The user has submitted an OTP code during the phone number verification flow. This event is only emitted in the Link Returning User Experience flow.
SUBMIT_PHONE
The user has submitted their phone number. This event is only emitted in the Link Remember Me flow.
SUBMIT_ROUTING_NUMBER
The user has submitted a routing number. This event emits the routing_number metadata to indicate user's routing number.
TRANSITION_VIEW
The TRANSITION_VIEW event indicates that the user has moved from one view to the next.
UPLOAD_DOCUMENTS
The user is asked to upload documents (for Income verification).
VERIFY_PHONE
The user has successfully verified their phone number using OTP. This event is only emitted in the Link Remember Me flow.
VIEW_DATA_TYPES
The user has viewed data types on the data transparency consent pane.
UNKNOWN
The UNKNOWN event indicates that the event is not handled by the current version of the SDK.
LinkEventMetadata
Map<String, Object>Map<String, Object>
An object containing information about the event.
accountNumberMask
StringString
The account number mask extracted from the user-provided account number. If the user-inputted account number is four digits long, account_number_mask is empty. Emitted by SUBMIT_ACCOUNT_NUMBER.
errorCode
StringString
The error code that the user encountered. Emitted by: ERROR, EXIT.
errorMessage
StringString
The error message that the user encountered. Emitted by: ERROR, EXIT.
errorType
StringString
The error type that the user encountered. Emitted by: ERROR, EXIT.
exitStatus
StringString
The status key indicates the point at which the user exited the Link flow. Emitted by: EXIT.
institutionId
StringString
The ID of the selected institution. Emitted by: all events.
institutionName
StringString
The name of the selected institution. Emitted by: all events.
institutionSearchQuery
StringString
The query used to search for institutions. Emitted by: SEARCH_INSTITUTION.
isUpdateMode
StringString
Indicates if the current Link session is an update mode session. Emitted by: OPEN.
matchReason
nullablestringnullable, string
The reason this institution was matched. This will be either returning_user or routing_number if emitted by: MATCHED_SELECT_INSTITUTION. Otherwise, this will be SAVED_INSTITUTION or AUTO_SELECT_SAVED_INSTITUTION if emitted by: SELECT_INSTITUTION.
routingNumber
Optional<String>Optional<String>
The routing number submitted by user at the micro-deposits routing number pane. Emitted by SUBMIT_ROUTING_NUMBER.
linkSessionId
StringString
The link_session_id is a unique identifier for a single session of Link. It's always available and will stay constant throughout the flow. Emitted by: all events.
mfaType
StringString
If set, the user has encountered one of the following MFA types: code device questions selections. Emitted by: SUBMIT_MFA and TRANSITION_VIEW when view_name is MFA.
requestId
StringString
The request ID for the last request made by Link. This can be shared with Plaid Support to expedite investigation. Emitted by: all events.
selection
StringString
Either the verification method for a matched institution selected by the user or the Auth Type Select flow type selected by the user. If selection is used to describe selected verification method, then possible values are phoneotp or password; if selection is used to describe the selected Auth Type Select flow, then possible values are flow_type_manual or flow_type_instant. Emitted by: MATCHED_SELECT_VERIFY_METHOD and SELECT_AUTH_TYPE.
timestamp
StringString
An ISO 8601 representation of when the event occurred. For example 2017-09-14T14:42:19.350Z. Emitted by: all events.
viewName
StringString
The name of the view that is being transitioned to. Emitted by: TRANSITION_VIEW.
ACCEPT_TOS
The view showing Terms of Service in the identity verification flow.
CONNECTED
The user has connected their account.
CONSENT
We ask the user to consent to the privacy policy.
CREDENTIAL
Asking the user for their account credentials.
DATA_TRANSPARENCY
We disclose the data types being shared.
DATA_TRANSPARENCY_CONSENT
We ask the user to consent to the privacy policy and disclose data types being shared.
DOCUMENTARY_VERIFICATION
The view requesting document verification in the identity verification flow (configured via "Fallback Settings" in the "Rulesets" section of the template editor).
ERROR
An error has occurred.
EXIT
Confirming if the user wishes to close Link.
INSTANT_MICRODEPOSIT_AUTHORIZED
The user has authorized an instant micro-deposit to be sent to their account over the RTP or FedNow network with a 3-letter code to verify their account.
KYC_CHECK
The view representing the "know your customer" step in the identity verification flow.
LOADING
Link is making a request to our servers.
MATCHED_CONSENT
deprecateddeprecated,
We ask the matched user to consent to the privacy policy and SMS terms. Used only in the legacy version of the Returning User Experience flow.
MATCHED_CREDENTIAL
deprecateddeprecated,
We ask the matched user for their account credentials to a matched institution. Used only in the legacy version of the Returning User Experience flow.
MATCHED_MFA
deprecateddeprecated,
We ask the matched user for MFA authentication to verify their identity. Used only in the legacy version of the Returning User Experience flow.
MFA
The user is asked by the institution for additional MFA authentication.
NUMBERS
The user is asked to insert their account and routing numbers.
NUMBERS_SELECT_INSTITUTION
The user goes through the Same Day micro-deposits flow with Reroute to Credentials.
OAUTH
The user is informed they will authenticate with the financial institution via OAuth.
RECAPTCHA
The user was presented with a Google reCAPTCHA to verify they are human.
RISK_CHECK
The risk check step in the identity verification flow (configured via "Risk Rules" in the "Rulesets" section of the template editor).
SAME_DAY_MICRODEPOSIT_AUTHORIZED
The user has authorized a same day micro-deposit to be sent to their account over the ACH network with a 3-letter code to verify their account.
SCREENING
The watchlist screening step in the identity verification flow.
SELECT_ACCOUNT
We ask the user to choose an account.
SELECT_AUTH_TYPE
The user is asked to choose whether to Link instantly or manually (i.e., with micro-deposits).
SELECT_BRAND
The user is asked to select a brand, e.g. Bank of America. The brand selection interface occurs before the institution select pane and is only provided for large financial institutions with multiple online banking portals.
SELECT_INSTITUTION
We ask the user to choose their institution.
SELECT_SAVED_ACCOUNT
The user is asked to select their saved accounts and/or new accounts for linking in the Link Remember Me flow.
SELECT_SAVED_INSTITUTION
The user is asked to pick a saved institution or link a new one in the Link Remember Me flow.
SELFIE_CHECK
The view in the identity verification flow which uses the camera to confirm there is real user that matches their ID documents.
SUBMIT_PHONE
The user is asked for their phone number in the Link Remember Me flow.
UPLOAD_DOCUMENTS
The user is asked to upload documents (for Income verification).
VERIFY_PHONE
The user is asked to verify their phone OTP in the Link Remember Me flow.
VERIFY_SMS
The SMS verification step in the identity verification flow.
metadataJson
nullableStringnullable, String
The data directly returned from the server with no client side changes.
Select Language
1Plaid.setLinkEventListener { event -> Log.i("Event", event.toString()) }

Submit

The submit function is currently only used in the Layer product. It allows the client application to submit additional user-collected data to the Link flow (e.g. a user phone number).

submit
submissionData
objectobject
Data to submit during a Link session.
phoneNumber
StringString
The end user phone number.
Select Language
1val submissionData = SubmissionData(phoneNumber)
2plaidHandler.submit(submissionData)

Upgrading

The latest version of the SDK is available from GitHub. New versions of the SDK are released frequently. Major releases occur annually. The Link SDK uses Semantic Versioning, ensuring that all non-major releases are non-breaking, backwards-compatible updates. We recommend you update regularly (at least once a quarter, and ideally once a month) to ensure the best Plaid Link experience in your application.

SDK versions are supported for two years; with each major SDK release, Plaid will stop officially supporting any previous SDK versions that are more than two years old. While these older versions are expected to continue to work without disruption, Plaid will not provide assistance with unsupported SDK versions.

Next steps

If you run into problems integrating with Plaid Link on Android, see Troubleshooting the Plaid Link Android SDK.

Once you've gotten Link working, see Link best practices for recommendations on further improving the Link flow.

Was this helpful?
Developer community
GitHub
GitHub
Stack Overflow
Stack Overflow
YouTube
YouTube
Discord
Discord