
Platform support
To check if a specific Item supports deposit switching:- Console — In the Coverage tab, filter or search for Items where direct deposit switching (DDS) is supported. Selecting an individual Item will display additional information on the underlying platform’s DDS capabilities.
- API - Filter Items using an Item filter or retrieve an individual Item by its ID and check the
direct_deposit_switchobject to see ifdeposit_accountdirect deposit switches aresupported.
Embedded Link setup
Our direct deposit switching (DDS) solution for embedded Link integrations is outlined below.Structure a target deposit destination
Target deposit destinations contain the bank account information details used in a deposit switch. The steps outlined in DDS flows show how to construct target deposit destinations for different use cases, such as receiving the entirety or a partial amount of the user’s paycheck.Create a deposit switch customization
We recommend limiting searchable Items in Link to only those that support deposit switching:- Create a new customization using Flows in Console.
- Enable the setting “Only show Link items that support direct deposit switching.”
- Add additional branding, messaging, or other customizations as needed.
- After saving your customized Flow, pass in its ID via the
flowIdparameter in your Link initialization.
Initialize Link for DDS
Use the optionalddsConfig Link initialization parameter to include an additional step for DDS after a user connects a payroll account.
/target-deposit-destinations encryption endpoint before being passed to your Link initialization via the ddsConfig parameter when adding deposit switching flows.
Returning users
Depending on your use case, you may want users to initially connect their payroll accounts through Link, return to your website or application for additional steps, and then return to Link for DDS. To initiate the DDS process for a previously connected account:- Check the Item’s platform supports DDS.
- Include a
ddsConfigin your Link initialization. - (Optional)

accountId of the existing account in your Link initialization:

itemId related to the existing account in an items array to your Link initialization:
DDS flows — direct deposits
Which DDS flow below you would like to perform determines what to include in your target deposit destination. As mentioned above, target deposit destinations must then be encrypted via the API to protect sensitive banking information before being passed to theddsConfig Link initialization parameter.
Entire paycheck
Entire paycheck — user cannot make adjustments:
Entire paycheck — user cannot make adjustments:
Entire paycheck — user cannot make adjustments:
Entire paycheck — user cannot make adjustments:

Entire paycheck — user can make adjustments:
Entire paycheck — user can make adjustments:
Entire paycheck — user can make adjustments:
Entire paycheck — user can make adjustments:
- Users are able to restore and edit previous bank accounts, where they can then allocate part of their paycheck.
- Any unallocated remainder will be sent to the bank account specified in the target deposit destination.

Entire paycheck — user can make adjustments and choose dollar amount or percent allocations:
Entire paycheck — user can make adjustments and choose dollar amount or percent allocations:
Entire paycheck — user can make adjustments and choose dollar amount or percent allocations:
Entire paycheck — user can make adjustments and choose dollar amount or percent allocations:
- Users are able to restore and edit previous bank accounts, where they can then allocate part of their paycheck.
- Users can switch between dollar amount or percent allocations (when both types are supported by the underlying payroll platform).
- Any unallocated remainder will be sent to the bank account specified in the target deposit destination.

Partial paycheck
We recommend including bothpercent_allocation and amount_allocation with whole number values in your target deposit destination objects used for partial paychecks. Because some payroll systems only support one format, either amount values or percent values, this maximizes the number of payroll systems that will support a deposit switch with your specifications.
Receive an exact amount or percentage — user cannot make adjustments:
Receive an exact amount or percentage — user cannot make adjustments:
Receive an amount or percentage — user can make adjustments:
Receive an amount or percentage — user can make adjustments:
Receive an amount or percentage — user can only make adjustments down to the minimum value:
Receive an amount or percentage — user can only make adjustments down to the minimum value:
Receive an amount or percentage — user can only make adjustments up to the maximum value:
Receive an amount or percentage — user can only make adjustments up to the maximum value:
Receive an amount or percentage — user can make adjustments within a certain range:
Receive an amount or percentage — user can make adjustments within a certain range:
Receive an amount or percentage — user can make adjustments within a certain range:
Receive an amount or percentage — user can make adjustments within a certain range:

percent_allocation or only amount_allocation in your target deposit destination, respectively.
Suggest an exact percentage — user can make adjustments:
Suggest an exact percentage — user can make adjustments:
Receive an exact percentage — user cannot make adjustments:
Receive an exact percentage — user cannot make adjustments:
Suggest an exact amount — user can make adjustments
Suggest an exact amount — user can make adjustments
Receive an exact amount — user cannot make adjustments:
Receive an exact amount — user cannot make adjustments:
Receive an exact amount — user cannot make adjustments:
Receive an exact amount — user cannot make adjustments:

DDS flows — reference table
The table below contains the required and optional parameters of target deposit destinations for different types of DDS flows.- Entire Paycheck
- Partial Paycheck
Adjust existing direct deposits
In some situations, such as when a user’s final loan payment is lower than the previous payments, you may want to adjust the pay allocations for the bank accounts that have already been added to the user’s payroll system:-
Include an
ach_deposit_accountobject in your target deposit destination as you normally would, and add the new allocation settings you would like the user to accept.

Remove a bank account
Using the following steps, users can confirm through Link they would like to remove the designated bank account from their payroll system’s direct deposit settings. The user will be able to adjust in Link how pay is allocated to their remaining bank accounts, as well as handle any multi-factor authentication (MFA) requests their payroll system requires.- Use the direct login method to directly connect the user to the relevant account.
-
Encrypt the following target deposit destination and pass it to the
ddsConfigparameter in your Link initialization:
deposit_destination (bank account) can be found using the deposit destinations API endpoint.

Sandbox testing
You can test your target deposit destinations and customizations with Flows in Console. This allows you to simulate a user’s deposit switch experience and make any adjustments necessary:- Enable Sandbox mode in Console using the toggle.
- Select a custom or demo Flow.
- Open the Deposit switch setting below the preview screen.
- Enable Request deposit switch and select Custom.
- Copy and paste the encrypted target deposit destination (
ddsConfig) you would like to test.

Webhooks
To monitor the progress of deposit switches, we recommend subscribing to our deposit destinations webhooks and direct deposit switches webhooks.Status monitoring
You can view the status of any bank account updates:- Via the API, by checking the
direct_deposit_switchobject of an account. - Via Console, by checking the same object using the JSON toggle on the individual user’s page.
status value will progress from scanning to updating to success/error.
FAQ
How long does the DDS process take?
How long does the DDS process take?
Will new allocations be applied to the current pay cycle?
Will new allocations be applied to the current pay cycle?
deposit_destinations.added webhook is sent, which confirms the new allocation has been added and was detected during the payroll account’s most recent scan, the timing of when the allocation is applied depends on the specific payroll system. Some systems apply the new allocation immediately and will apply it to the current pay cycle, while others will only apply the new allocation starting with the following full pay cycle.What happens if I want a user to add a new bank account to their payroll system to receive partial paychecks, but this would exceed the [max_allocations](/api-reference/items#object-features-direct_deposit_switch) found in the Items endpoint for that payroll system?
What happens if I want a user to add a new bank account to their payroll system to receive partial paychecks, but this would exceed the [max_allocations](/api-reference/items#object-features-direct_deposit_switch) found in the Items endpoint for that payroll system?
What happens if the user's paycheck is less than the amount they chose to allocate during the deposit switch process?
What happens if the user's paycheck is less than the amount they chose to allocate during the deposit switch process?
What happens if you do not receive an expected payment from an account the user added to their payroll system?
What happens if you do not receive an expected payment from an account the user added to their payroll system?
If a user revokes access to their payroll account, or the payroll account becomes disconnected, does this remove the pay allocations that were added to the payroll account?
If a user revokes access to their payroll account, or the payroll account becomes disconnected, does this remove the pay allocations that were added to the payroll account?
Do the allocation settings in my target deposit destination limit which payroll accounts are shown to the user when I have initialized Link for deposit switching?
Do the allocation settings in my target deposit destination limit which payroll accounts are shown to the user when I have initialized Link for deposit switching?
After a successful deposit switch, [listing](/api-reference/deposit-destinations#list) the account's deposit destinations shows it was correctly added, but why is the bank_name different from the one I used in my target deposit destination?
After a successful deposit switch, [listing](/api-reference/deposit-destinations#list) the account's deposit destinations shows it was correctly added, but why is the bank_name different from the one I used in my target deposit destination?
bank_name included in your target deposit destination and instead use a bank name they derive from another source, such as the routing number of the account.Argyle retrieves and returns the bank name as it is stored by the payroll system.