- Redirect their pay, in whole or in part, to a new or existing bank account
- Add a debit card for instant payouts on their gig platform
Set up
Our direct deposit switching (DDS) solution for website and application integrations is outlined below. For a no-code solution, visit our DDS through Console guide.Initialize Argyle Link for DDS
Argyle Link is the front-end application through which users can connect their payroll accounts. Our embedding Link guides cover how to initialize this payroll connection process in your application. Add the following lines to your Argyle Link initialization to include an additional step for DDS after a user connects a payroll account:- Set
payDistributionUpdateFlowtotrueto enable the DDS flow after a user connects a payroll account. - Set
payDistributionConfigto an encrypted string representing your DDS configuration. This configuration determines the user’s DDS experience, and contains any relevant bank account or debit card information. - The DDS configuration must be encrypted using the API to ensure sensitive banking and card information is never exposed.
Example code:
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Example payDistributionConfig after encryption
Example payDistributionConfig after encryption
Examples of full Argyle Link initializations for DDS
Examples of full Argyle Link initializations for DDS
- Web
- iOS
- Android
- React Native
Structure DDS configuration
- Decide which DDS flow to perform. This determines what to include in your DDS configuration, which in turn determines which screens and settings are shown to the user after they connect a payroll account.
- Structure your DDS configuration as an object. Depending on your use case, this object can include:
bank_account- an object containing bank account and routing information.<allocation settings>- listed key:value pairs or objects that determine what pay allocations are suggested to the user when redirecting payments to the provided bank_account.cardorcard_source- objects included when adding debit cards to gig platforms. See our add a debit card section below for more information.
- Encrypt this DDS configuration object using the API.
- Use the encrypted string returned by the API in step 3 as your
payDistributionConfigwhen initializing Argyle Link for DDS.
Customizations
The user’s DDS experience takes place within Argyle Link, the same front-end application they used to connect their payroll accounts. You can tailor Argyle Link’s appearance to your brand, or restrict which payroll accounts a user can connect to only those that support DDS. In Argyle Console:- Create a new customization using Flows.
- Enable the setting “Only show Link items that support direct deposit switching”.
- Tailor Argyle Link’s appearance to your brand if needed.
-
Save and apply your customization by including the following line in your Argyle Link initialization:
Sandbox testing
You can test your DDS configuration and customizations with Flows in Argyle Console. This allows you to simulate a user’s DDS experience and make any adjustments necessary.- Enable Sandbox mode using the toggle in the upper-left.
- Select your customization from the “Select Link customization” dropdown.
- Enable “Simulate a direct deposit switch” using the toggle in the lower-right.
- Select “Custom” from the “Direct deposit scenario” dropdown.
- Copy and paste the encrypted
payDistributionConfigyou would like to test.
DDS flows
Which of the below DDS flows you would like the user to perform determines what to include in your DDS configuration. The DDS configuration is then encrypted via the API and used as thepayDistributionConfig when initializing Argyle Link for DDS.
Add a bank account
Include abank_account object and <allocation settings> in your DDS configuration.
Full paycheck
User cannot restore previous bank accounts or adjust their pay allocations:Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Encrypted payDistributionConfig (for Sandbox testing)
Encrypted payDistributionConfig (for Sandbox testing)
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Encrypted payDistributionConfig (for Sandbox testing)
Encrypted payDistributionConfig (for Sandbox testing)
Partial paycheck
We recommend including bothpercent_allocation and amount_allocation with whole number values in your DDS configuration 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 your DDS configuration.
If both percent_allocation and amount_allocation are included in your DDS configuration and the user’s payroll system supports both formats, the user will be shown an initial screen allowing them to select which format they prefer:
percent_allocation and amount_allocation would be if you are only interested in receiving a specific dollar amount, usually in connection with a loan repayment. In this case you would only include amount_allocation.
You would like to receive an exact amount of the user’s paycheck:
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Encrypted payDistributionConfig (for Sandbox testing)
Encrypted payDistributionConfig (for Sandbox testing)
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Encrypted payDistributionConfig (for Sandbox testing)
Encrypted payDistributionConfig (for Sandbox testing)
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Encrypted payDistributionConfig (for Sandbox testing)
Encrypted payDistributionConfig (for Sandbox testing)
Add a debit card
/link-items API endpoint.
Your DDS configuration for adding debit cards will depend on whether you have PCI DSS compliance, which is required for managing sensitive data like card numbers and CVV2 security codes.
You are PCI DSS compliant
If you have PCI DSS compliance and are certified to handle sensitive card data, include thecard object in your DDS configuration.
We recommend populating every field in the card object to maximize compatibility with gig economy platforms that support this feature.
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Encrypted payDistributionConfig (for Sandbox testing)
Encrypted payDistributionConfig (for Sandbox testing)
You are not PCI DSS compliant
Argyle has partnered with Unit to support adding debit cards to gig economy platforms for instant payouts if you are not PCI DSS compliant. Unit is PCI DSS compliant and can serve as a third party for handling sensitive card data.card_source object in your DDS configuration.
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Add a bank account and card
Adding a bank account and debit card at the same time to a user’s payroll system is only supported if you are PCI DSS compliant. Include abank_account object, <allocation settings> for the bank account, and card object in your DDS configuration.
You would like to receive the user’s entire paycheck, and add a debit card:
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Unencrypted DDS configuration example object
Adjust existing pay allocations
bank_account object in your DDS configuration in the same way as if you were adding a new bank account, with the new <allocation settings> you would like the user to accept.
Remove a bank account
- We recommend deep linking the user directly to the payroll account containing the bank account to be removed.
-
Encrypt only the following JSON and set it as your
payDistributionConfigwhen initializing Argyle Link for DDS:
allocation_id by using the /pay-allocations endpoint. List pay allocations by account and use the id representing the bank account you would like to remove as the allocation_id.
You can also save the allocation_id returned in the payload of the accounts.pay_distribution_updated webhook after adding a bank account if you plan on removing the bank account later.
Status updates
Webhooks
Webhooks are automatic notifications that let you know in real-time when changes occur. If you are asking the user to add or remove a bank account, add a debit card, or adjust their existing pay allocations, you can monitor the status of these changes using accounts webhooks:- Subscribe to the
accounts.pay_distribution_updatedwebhook to be notified if the DDS flow you requested is successful. - Subscribe to the
accounts.pay_distribution_failedwebhook to be notified if the DDS flow you requested could not be completed.
Manual monitoring
You can view the status of any bank account or debit card updates to payroll accounts manually:-
via the API — use the
/accountsAPI endpoint and check the attributes within thepay_distributionobject. -
in Argyle Console — navigate to Connections, select a user, click the JSON toggle button, and check the
pay_distributionobject within the Account object that is listed at the top of the JSON view:
status will progress from scanning -> updating -> success/error.
DDS through Console
FAQ
How long does the DDS process take?
How long does the DDS process take?
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](/legacy/api-reference/link-items#object-max_allocations) listed in the /link-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](/legacy/api-reference/link-items#object-max_allocations) listed in the /link-items endpoint for that payroll system?
What happens if the user's paycheck is less than the amount they chose to allocate during the DDS process?
What happens if the user's paycheck is less than the amount they chose to allocate during the DDS 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 DDS configuration limit which payroll accounts are shown to the user when I have initialized Argyle Link for DDS?
Do the allocation settings in my DDS configuration limit which payroll accounts are shown to the user when I have initialized Argyle Link for DDS?
allocation settings used in your DDS configuration. This minimizes DDS configuration errors to ensure an optimal user experience.