Implementation
Integrating your deposit switching solution.
This guide provides a step-by-step process for first time implementations of Argyle's deposit switching solution.
After set-up, your users will be able to redirect their paychecks to your bank in just a few clicks:
You can also visit our dedicated Deposit Switching Guide for more examples and additional use cases, such as adding a debit card to a user's gig platform so they can cash out to your card.
How deposit switching works#
Deposit switching happens through Argyle Link:
- Your users search for their employer or payroll provider and provide their login credentials
- After each successful payroll connection, the user is presented with the deposit switching flow you set in your configuration
You can embed Argyle Link in your website or application, or use Argyle Console to invite users to an instance of Argyle Link hosted by Argyle.
Add your company logo#
After initial sign-up, access Argyle Console and navigate to Settings in the top nav bar. Upload your company name and logo from the Company details tab.
Configure the deposit switch#
If you are sending invitations to new users through Argyle Console, visit our guide to setting up deposit switching in Console.
If you are embedding Argyle Link, follow the steps in the section below.
Embedded configurations#
To enable the deposit switching flow if you are embedding Argyle Link, you will need to provide a deposit switching configuration in your Argyle Link initialization code.
This deposit switching configuration contains the bank account details where you want the user's paycheck to be sent, and the allocation settings that determine how much of that paycheck you want to receive.
Below is an example configuration that transfers the entirety of the user's paycheck to the provided bank account. A full list of example configurations, including how to receive exact amounts or percentages of a user's pay, can be found in our dedicated Deposit Switching Guide.
1// Receive 100% of paycheck 2 3{ 4 "bank_account": { 5 "bank_name": "YellowHorizon", 6 "routing_number": "084101234", 7 "account_number": "9483746361234", 8 "account_type": "checking" 9 }, 10 "entire_allocation": true, 11 "allow_editing": false 12}
In order to protect sensitive bank account details, this deposit switch configuration needs to be encrypted before including it in your Argyle Link initialization.
To encrypt the configuration, make a POST request to our API encryption endpoint. Include the unencrypted configuration above in the request body.
You should received an encrypted configuration in the response that looks similar to:
1{ 2 "encrypted_config": "CiQAB/5lecrbJVrkdodwk4sgqacFNCiaH638IgDAHa8/peRjEEoShwIA8Gmka0Ea+JAa75M5HxfTckMklvPVvRxPYV3ND+YisxMhcHk6Fig0bwUUJiotuw/L5YkbHysTMPU6PSvXnHs19lNDZfVO6qpo44U6eMRdqO65HC864QEEi5n/u7QQT3DcG43RiVoRCnDiBlcdGIOPxth+gX6JgygigFHLEFhfOKWaQdyOmHDuf9cZNxp3M26IBEEtgmznl4oSm1qFt6ZzMcvdvKd2nOMS5co3Nc4f6F67GlnCRHEjzszBUnkgpsj60KFKggQ0e/CRQWi5pM/wa7UCb80LAKKm8Tl07kDJVFZcb9rsGwcfPY8ZCxcD0MtV/Q+yflCbaLL4RYcKXCBZXv0yOJEhxw==" 3}
This encrypted configuration will be used in your Link initialization.
Initialize a deposit switch#
If are sending invitations through Argyle Console, the deposit switching flow will automatically be enabled in Argyle Link if you completed the deposit switching setup process.
If you are embedding Argyle Link, below are the basic initializations for Web, iOS, Android, and React Native. Visit our embedding Link guides for how to include optional parameters such as callbacks or search limits in your initialization.
Embedded Argyle Link initializations for deposit switching:
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8" />
5 </head>
6
7 <body>
8 <script src="https://plugin.argyle.com/argyle.web.v3.js"></script>
9 <script type="text/javascript">
10 const argyle = Argyle.create({
11 linkKey: 'YOUR_LINK_KEY', // Found in Argyle Console
12 apiHost: 'https://api-sandbox.argyle.com/v1', // Sandbox testing environment
13 userToken: 'USER_TOKEN', // Used to authenticate users
14 payDistributionUpdateFlow: true, // Enables deposit switching flow
15 payDistributionConfig: 'ENCRYPTED_CONFIGURATION', // Your encrypted deposit switching configuration
16 });
17 argyle.open();
18 </script>
19 </body>
20</html>
Link Keys — Link keys connect your embedded instance of Argyle Link to your Argyle account. Your Sandbox and Production link keys can be found in the Link key section of Argyle Console. Make sure the type of link key in your configuration matches the environment.
Environment — Argyle Link can run in two types of environments: Sandbox mode (for testing) or Production mode (for real payroll account connections and deposit switches).
- Sandbox configurations use
https://api-sandbox.argyle.com/v1
- Production configurations use
https://api.argyle.com/v1
User tokens — Argyle utilizes user tokens to authenticate users (your applicants).
Pay Distribution Update Flow — Enables the deposit switching flow in Argyle Link.
Pay Distribution Config — Where you pass your encrypted deposit switching configuration. For our 100% of paycheck example, you would include the following:
1// 100% of paycheck example 2 3payDistributionConfig: "CiQAB/5lecrbJVrkdodwk4sgqacFNCiaH638IgDAHa8/peRjEEoShwIA8Gmka0Ea+JAa75M5HxfTckMklvPVvRxPYV3ND+YisxMhcHk6Fig0bwUUJiotuw/L5YkbHysTMPU6PSvXnHs19lNDZfVO6qpo44U6eMRdqO65HC864QEEi5n/u7QQT3DcG43RiVoRCnDiBlcdGIOPxth+gX6JgygigFHLEFhfOKWaQdyOmHDuf9cZNxp3M26IBEEtgmznl4oSm1qFt6ZzMcvdvKd2nOMS5co3Nc4f6F67GlnCRHEjzszBUnkgpsj60KFKggQ0e/CRQWi5pM/wa7UCb80LAKKm8Tl07kDJVFZcb9rsGwcfPY8ZCxcD0MtV/Q+yflCbaLL4RYcKXCBZXv0yOJEhxw=="
Set up notifications#
Argyle uses webhooks to notify you when different events occur, such as a new payroll account connection or if a deposit switch is successful.
You can subscribe to webooks from the webhooks page in Console, or using the API.
We recommend subscribing to the following webhooks that are relevant to deposit switching to get started:
accounts.connected
notifies you when a payroll account connection attempt is successful.accounts.failed
lets you know if a connection attempt failed, and provides error details for the event.accounts.pay_distribution_updated
notifies you when a deposit switch successfully completes.accounts.pay_distribution_failed
notifies you when a deposit switch attempt is unsuccessful.
Visit our Webhooks Reference for a full list of available webhooks.
Connect test accounts#
If you are testing an embedded instance of Argyle Link that uses the Sandbox environment, you can connect sample users using the test login credentials below:
Bob | Sarah | Joe | |
---|---|---|---|
test1@argyle.com | test2@argyle.com | test3@argyle.com | |
Username | test_1 | test_2 | test_3 |
Password | passgood | passgood | passgood |
Verification code | 8081 | 8082 | 8083 |
Phone number | (800) 900-0010 | (800) 900-0020 | (800) 900-0030 |
Driver's license # | D1230010 | D1230020 | D1230030 |
If a login field does not match one of the fields above, the closest field can be used. For example, a username value can be used for a "UserID" login field.
You can also test deposit switching in Console by using Flows. Enable the "Simulate a direct deposit update" toggle in the sidebar and choose your desired scenario from the dropdown menu.
Going live#
When you are ready to transition from Sandbox testing to Production mode, make the following adjustments:
- If you are using Argyle Console's invite feature for making deposit switches, simply flip the toggle switch in the upper left to enter Production mode.
- If you are embedding Argyle Link:
- Adjust your Argyle Link configuration to use
https://api.argyle.com/v1
instead ofhttps://api-sandbox.argyle.com/v1
- Swap the Sandbox link key to the Production link key in your Argyle Link initialization code
- Make API requests to
https://api.argyle.com/v1
instead ofhttps://api-sandbox.argyle.com/v1
- Adjust your Argyle Link configuration to use
After a user confirms a deposit switch in Argyle Link, the update process typically takes fifteen to thirty seconds on most payroll systems, and up to two minutes on the slowest payroll systems.