Direct deposit switching errors
Learn about errors that may occur during direct deposit switching.
This page provides common causes and troubleshooting suggestions for errors that may occur during the direct deposit switching flow. When there is an error in the direct deposit switching flow:
- Error codes are returned as part of the accounts object
accounts.pay_distribution.status
returns erroraccounts.pay_distribution.error_code
shows the error codeaccounts.pay_distribution.error_message
provides additional information about the error
Some error messages shown to the user have placeholders for [Link item name]
and [Company name]
. In such cases, for the screens samples below, they were replaced by Starbox and GoodLoans, respectively.
Error example in an account object:
1{ 2 "id": "ac81e2bc-2157-4535-8ca4-fb1f068df1fc", 3 ... 4 "connection": { 5 "status": "connected", 6 "error_code": null, 7 "error_message": null, 8 "updated_at": "2019-11-29T08:37:42.112859" 9 }, 10 "pay_distribution": { 11 "status": "error", 12 "error": "invalid_mfa", 13 "error_message": "This user did not provide the correct multi-factor authentication response.", 14 "updated_at": "2019-11-29T08:37:42.164522Z" 15 } 16 ... 17}
account_disconnected
#
This error triggers the accounts.pay_distribution_failed
webhook.
The payroll provider has disconnected a previously connected account. This may happen when a user changes the employment account credentials. Some payroll providers have short-living sessions and require users to re-authenticate more often.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "account_disconnected", 6 "error_message": "This user's connection has expired and requires re-authentication.", 7 "updated_at": "2022-03-29T08:37:42.164522Z" 8 } 9 ... 10}
bank_and_card_update_failed
#
This error triggers the accounts.pay_distribution_failed
webhook.
Something unexpected happened when trying to update bank account and payout card deposit settings.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "bank_and_card_update_failed", 6 "error_message": "Argyle encountered a problem when updating bank account and card deposit settings. Our team has been notified and is investigating.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
card_update_failed
#
This error triggers the accounts.pay_distribution_failed
webhook.
Something unexpected happened when trying to update payout cards.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "card_update_failed", 6 "error_message": "Argyle encountered a problem when updating user’s payout card settings. Our team has been notified and is investigating.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
confirmation_timeout
#
This error triggers the accounts.pay_distribution_failed
webhook.
The user did not confirm the suggested direct deposit update within the given time period.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "confirmation_timeout", 6 "error_message": "This user did not finish confirming the direct deposit switch.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
incompatible_auth
#
Platform does not allow making direct deposit updates with the user's selected authentication method.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "incompatible_auth", 6 "error_message": "This user's employment platform does not support direct deposit switching with this user's selected login method.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
incompatible_config
#
Although platforms define specification parameters as default (e.g. min_allocation
), they can set a different specification for a particular user. In this case, the information submitted in the DDS configuration is compatible with the general specification but not with the custom specification on this user's account.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "incompatible_config", 6 "error_message": "The provided direct deposit switch configuration is not compatible with this user's employment account.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
invalid_account_state
#
This error triggers the accounts.pay_distribution_failed
webhook.
Direct deposit switching was initiated in Argyle Link, but could not be completed because the user's account connection failed.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "invalid_account_state", 6 "error_message": "This user's account connection failed, preventing direct deposit switching.", 7 "updated_at": "2022-03-29T08:37:42.164522Z" 8 } 9 ... 10}
invalid_mfa
#
This user did not provide the correct multi-factor authentication (MFA) response that was requested by the platform (for example, SMS code, click on link in email, etc.)
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "invalid_mfa", 6 "error_message": "This user did not provide the correct multi-factor authentication response.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
mfa_attempts_exceeded
#
This error triggers the accounts.pay_distribution_failed
webhook.
The platform permanently disabled login attempts for this employment account because the user entered invalid MFA too many times. This issue can only be resolved by the user resetting MFA directly on their employment platform.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "mfa_attempts_exceeded", 6 "error_message": "This user failed multi-factor authentication too many times, causing them to be unable to attempt further logins until multi-factor authentication method is reset.", 7 "updated_at": "2022-03-29T08:37:42.164522Z" 8 } 9 ... 10}
mfa_exhausted
#
This error triggers the accounts.pay_distribution_failed
webhook.
The platform temporarily disabled direct deposit update attempts for this employment account due to entering invalid MFA too many times.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "mfa_exhausted", 6 "error_message": "This user failed multi-factor authentication too many times, requiring them to re-authenticate.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
mfa_not_configured
#
This error triggers the accounts.pay_distribution_failed
webhook.
The platform does not allow to access the employment data of this account as it does not have a mandatory multi-factor authentication set up.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "mfa_not_configured", 6 "error_message": "This user has not configured multi-factor authentication for their employment account, restricting access to the user's employment data.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
mfa_timeout
#
This error triggers the accounts.pay_distribution_failed
webhook.
The user did not submit the requested MFA response necessary to complete their direct deposit update within the given time period.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "mfa_timeout", 6 "error_message": "This user did not complete multi-factor authentication.", 7 "updated_at": "2022-11-08T08:37:42.164522Z" 8 } 9 ... 10}
missing_allocation
#
This error triggers the accounts.pay_distribution_failed
webhook.
The user has either no editable pay allocations set up or no pay allocations set up at all, but the DDS configuration has minimum or maximum bounds set. There must be at least one other pay allocation to allocate the remainder before adding a constrained pay allocation.
Account object:
1{ 2 ... 3 "connection": { 4 "status": "error", 5 "error_code": "missing_allocation", 6 "error_message": "This user's employment account does not have any allocation set up which is required to allocate the remainder.", 7 "updated_at": "2021-08-29T08:37:42.164522Z" 8 } 9 ... 10}
missing_allocation_type
#
Argyle is not able to do direct deposit switching because the allocation type (percent/amount/remainder) is missing.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "missing_allocation_type", 6 "error_message": "One or more of this account's pay allocations is missing a type (percent/amount/remainder), preventing direct deposit switching.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
not_supported
#
Argyle is not able to perform direct deposit switching because the user's employment account does not support it.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "not_supported", 6 "error_message": "This user's employment account does not support direct deposit switching.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
not_supported_by_employer
#
Argyle is not able to do direct deposit switching because changes are not supported by the platform — possibly because the employer disabled editing of this information.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "not_supported_by_employer", 6 "error_message": "This user's employment account does not support direct deposit switching because the employer has disabled users from editing this information.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
physical_mfa_unsupported
#
This error triggers the accounts.pay_distribution_failed
webhook.
The user attempted to use a physical multi-factor authentication method that Argyle does not support.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "physical_mfa_unsupported", 6 "error_message": "This user's employment account uses a physical multi-factor authentication method that Argyle does not currently support.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
rejected_bank_account
#
This error triggers the accounts.pay_distribution_failed
webhook.
The provided bank account details are valid, but the bank denied this update request on behalf of the platform because of security concerns.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "rejected_bank_account", 6 "error_message": "The provided bank account was rejected by the user's employment platform. Please provide a different bank account.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
rejected_card
#
This error triggers the accounts.pay_distribution_failed
webhook.
Something unexpected happened when trying to add payout cards.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "rejected_card", 6 "error_message": "The provided card cannot be used for direct deposit switching. Please provide a different card.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
rejected_routing_number
#
This error triggers the accounts.pay_distribution_failed
webhook.
The platform rejects the update due to some internal routing number validation.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "rejected_routing_number", 6 "error_message": "The provided routing number is considered invalid by this user's employment account.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
service_unavailable
#
This error triggers the accounts.pay_distribution_failed
webhook.
This platform is currently experiencing downtime, pay allocation updates are not available at this time.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "service_unavailable", 6 "error_message": "This user's employment platform is experiencing downtime and is currently unable to process direct deposit switching.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
system_error
#
This error triggers the accounts.pay_distribution_failed
webhook.
Something unexpected happened when trying to update the bank account's deposit settings.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "system_error", 6 "error_message": "Argyle encountered a problem while updating user’s deposit settings. Our team has been notified and is investigating.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
unsupported_allocation_type
#
The allocation type is not one we currently support (percentage allocation and amount allocation).
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "unsupported_allocation_type", 6 "error_message": "This user's deposit settings contain pay allocations of unsupported types preventing the direct deposit switch. Supported allocation types are percent, amount and remainder.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
unsupported_bank_accounts
#
Argyle only supports updating pay allocations that have checking or savings bank account types associated with them.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "unsupported_bank_accounts", 6 "error_message": "This user's deposit settings contain pay allocations of unsupported bank account types like HSAs, preventing the direct deposit switch.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
unsupported_bank_account_country
#
This error triggers the accounts.pay_distribution_failed
webhook.
This user's employment account includes pay allocations to bank accounts of countries that Argyle does not yet support.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "unsupported_bank_account_country", 6 "error_message": "This user's deposit settings contain pay allocations of unsupported countries, preventing direct deposit switching.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
unsupported_mfa_method
#
This error triggers the accounts.pay_distribution_failed
webhook.
The user's employment account uses an MFA method currently not supported by Argyle.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "unsupported_mfa_method", 6 "error_message": "This user's employment account uses a multi-factor authentication method that Argyle does not currently support.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}
waiting_period
#
This error triggers the accounts.pay_distribution_failed
webhook.
The user's direct deposit switch was rejected because some employers require a waiting period after a recent deposit setting update or after initial account creation.
Account object:
1{ 2 ... 3 "pay_distribution": { 4 "status": "error", 5 "error": "waiting_period", 6 "error_message": "Direct deposit switching is temporarily unavailable due to employer requiring a waiting period after a recent direct deposit switch or initial account connection.", 7 "updated_at": "2019-11-29T08:37:42.164522Z" 8 } 9 ... 10}