Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.argyle.com/llms.txt

Use this file to discover all available pages before exploring further.

Run Link via the Web, iOS, Android, React Native, or Flutter.

Overview

The platform-specific guides below discuss how to initialize Link for first time implementations, or adjust your existing implementation to add new functionalities. For steps on how to update an existing Link implementation to a newer version, visit our Upgrade Guide instead.
For iOS, Android, and React Native implementations, Link SDKs are maintained and updated through Argyle’s public GitHub repository. For Flutter implementations, follow the steps in our Flutter initialization guide below.

Choose your initialization path

  • Payroll verification sessions — Preferred for payroll verification workflows.
    • Use connectUrl to initialize Link.
  • Direct embedded Link — Supported for general embedded Link implementations.
    • Use userToken and sandbox to initialize Link.

Required initialization parameters

ParameterTypeDescription
connectUrlstringThe payroll session link URL returned when creating a session during the verifications workflow.
Link’s environment is already encoded in the URL and does not need to be set explicitly via the sandbox parameter.
userTokenstringToken used to identify and authenticate users. See our User Tokens Guide for more information.
sandboxbooleanDetermines Link’s environment — true for Sandbox, false for Production.

Optional initialization parameters

Some optional parameters below are configured when creating a session for payroll verification workflows instead of being passed in the initialization code.
ParameterTypeDescription
flowIdstringID used to customize the Link flow. Saved IDs can be found in the Flows section of Console.
Flow IDs are not environment-specific. The same Flow ID will apply consistent behavior across both Sandbox and Production.
itemsarray of stringsLimits Link search to the provided list of Items. Providing a single Item in the array will skip Link search and take the user directly to that Item’s login screen.
accountIdstringUsed for direct logins to an account that the user has previously connected or attempted to connect.
<Callback Name>stringCallbacks are activated by specific events in Link.
Hosted Link for payroll verification workflows does not support callbacks.
languagestringSpecifies the display language in Link.
  • EN and ES are available across all platforms and employers
  • RU and ZH currently limited to gig platforms
  • Can be used in combination with other optional initialization parameters including flowId
  • Certain platform-generated messages (such as multi-factor authentication prompts) will be shown as-received, and depend on the user’s language preferences selected within their platform’s settings.
  • In Console, you can test Spanish in Sandbox mode by changing the Language dropdown when previewing an Embedded Experiences Link Flow.
Possible values: EN (English), ES (Spanish), RU (Russian), ZH (Chinese).
*Flutter uses lowercase en, es, ru, zh.

Web

Before you start

  1. When using a webview component, make sure localStorage is always enabled, and set domStorageEnabled to true and incognito to false.
  2. If your security policy limits outgoing traffic, allow API calls by whitelisting outgoing traffic from Link by including these two content sources at minimum:
<meta http-equiv="Content-Security-Policy" content="connect-src https://*.argyle.com; worker-src 'self' blob:" />
  1. Create a session as part of a payroll verification workflow.
  2. Copy the response link.
  3. Pass that value as connectUrl in your Link initialization.
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <!-- This is needed in order to apply proper scaling on mobile devices -->
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
  </head>

  <body>
    <script src="https://plugin.argyle.com/argyle.web.v5.js"></script>
    <script type="text/javascript">
      const linkInstance = Argyle.create({
          connectUrl: 'SESSION_LINK',
          // (Optional) A few recommended callbacks:
          onAccountConnected: payload => console.log('onAccountConnected', payload),
          onAccountError: payload => console.log('onAccountError', payload)
      })
      linkInstance.open()
      // linkInstance.close() // Manually close Link (typically the user closes Link).
    </script>
  </body>
</html>

iOS

Argyle’s iOS Link SDK provides a way to integrate Link into your iOS app. First-time installation instructions are below. To update versions, visit our iOS Link upgrade guide.

Requirements - iOS SDK

iOS 14.0+, Xcode 14.0+, Swift 5.5+

Installing the iOS SDK

If using Cocoapods:
  1. In the Podfile of your Xcode project, add pod 'Argyle', '<Version Number>'
  2. Run pod install to install the Argyle pod
  3. Run pod update to ensure the most recent Argyle pod is installed

Directly opening email clients

To enhance the multi-factor authentication (MFA) experience of users, the iOS Link SDK supports directly opening the user’s email client. To enable this feature, add the following property to your Info.plist file:
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>googlegmail</string>
    <string>ymail</string>
    <string>ms-outlook</string>
</array>
  1. Create a session as part of a payroll verification workflow.
  2. Copy the response link.
  3. Pass that value as connectUrl in your Link initialization.
var config = LinkConfig(
    connectUrl: "SESSION_LINK"
)
// (Optional) A few recommended callbacks:
config.onAccountConnected = { data in
    print("Result: onAccountConnected \(data)")
}
config.onAccountError = { data in
    print("Result: onAccountError \(data)")
}

ArgyleLink.start(from: viewController, config: config)
// ArgyleLink.close()   // Manually close Link (typically the user closes Link).

Android

Argyle’s Android Link SDK provides a way to integrate Link into your Android app. First-time installation instructions are below. To update versions, visit our Android Link upgrade guide.

Requirements - Android SDK

  • Android 8.0 (minSdk/API level 26) and above
  • compileSdk 34 and above

Installing the Android SDK

  1. Add the line below within the dependencies of your build.gradle configuration file.
  2. Sync your Android project to import the build configuration changes.
dependencies {
    implementation 'com.argyle:argyle-link-android:5.x.x'
}
Make sure to exclude the Link SDK package com.argyle.*. For example, add the following line to the proguard-rules.pro file of your ProGuard configuration:
-keep class com.argyle. { *; }
  1. Create a session as part of a payroll verification workflow.
  2. Copy the response link.
  3. Pass that value as connectUrl in your Link initialization.
val config = LinkConfig(
    connectUrl = "SESSION_LINK"
)
// (Optional) A few recommended callbacks:
config.onAccountConnected = { data ->
    Log.d("Result", "onAccountConnected $data")
}
config.onAccountError = { data ->
    Log.d("Result", "onAccountError $data")
}

ArgyleLink.start(context, config)
// ArgyleLink.close()   // Manually close Link (typically the user closes Link).

React Native

Argyle’s React Native Link SDK provides a way to integrate Link into your React Native application. First-time installation instructions are below. To update versions, visit our React Native Link upgrade guide.

Requirements - React Native SDK

  • React Native version 0.73.0 or higher
  • iOS-specific — iOS 14.0+
  • Android-specific:
  • Android 8.0 (minSdk/API level 26) and above
  • compileSdk 34 and above
Make sure to exclude the Link SDK package com.argyle.*. For example, add the following line to the bottom of your ProGuard configuration:
-keep class com.argyle. { *; }

Installing the React Native SDK

  1. Navigate to the directory for your React Native project.
  2. Install the packages from your terminal:
npm install @argyleio/argyle-plugin-react-native --save
After installation:
  1. Run cd ios to navigate to the ios folder.
  2. Run pod install to install the Argyle pod.
  3. Run pod update to ensure the most recent Argyle pod is installed.
  1. Create a session as part of a payroll verification workflow.
  2. Copy the response link.
  3. Pass that value as connectUrl in your Link initialization.
import { ArgyleLink } from '@argyleio/argyle-plugin-react-native';

// ...

const config = {
  connectUrl: 'SESSION_LINK',
  // (Optional) Callback examples:
  onAccountConnected: (payload) => console.log('onAccountConnected', payload),
  onAccountError: (payload) => console.log('onAccountError', payload),
};

ArgyleLink.start(config);
// ArgyleLink.close()   // Manually close Link (typically the user closes Link).

Flutter

Argyle’s Flutter SDK provides a way to integrate Link into your mobile applications. First-time installation instructions are below. To update versions, visit our Flutter upgrade guide.

Requirements - Flutter SDK

  • Android 8.0 (minSdk/API level 26) and above
  • compileSdk 34 and above
Set the minSdkVersion in your android/app/build.gradle file to:
android {
    defaultConfig {
        minSdkVersion 26 // or greater
    }
}

Installing the Flutter SDK

Add argyle_link_flutter as a dependency in your pubspec.yaml file.
Using Flutter, run the command:
$ flutter pub add argyle_link_flutter
This will add a line to your pubspec.yaml file with the latest SDK version:
dependencies:
  argyle_link_flutter: ^1.x.x
You can now import the package into your Dart code using:
import 'package:argyle_link_flutter/argyle_link_flutter.dart';
  1. Create a session as part of a payroll verification workflow.
  2. Copy the response link.
  3. Pass that value as connectUrl in your Link initialization.
import 'package:argyle_link_flutter/link_config.dart';
// (Required if using callbacks) Callback argument type definitions:
import 'package:argyle_link_flutter/account_data.dart';
import 'package:argyle_link_flutter/argyle_link.dart';
import 'package:argyle_link_flutter/form_data.dart';

// ...

final config = LinkConfig(
  connectUrl: 'SESSION_LINK',
  // (Optional) Callback examples:
  onAccountConnected: (payload) => debugPrint('onAccountConnected'),
  onAccountError: (payload) => debugPrint('onAccountError'),
);

ArgyleLink.start(config);
// ArgyleLink.close()   // Manually close Link (typically the user closes Link).