Overview
Learn how to update your users' direct deposit information through Argyle's pay distribution solution.
Pay distribution allows users to update their direct deposit information and include your bank account in their pay distribution. You can perform Deposit Switch with cards as well.
You can set up a process where users distribute their pay to bank accounts in percentages (for example, a 60%-40% split) or dollar amounts (for example, $2,000 to one account and the remainder to another). Minimum, maximum, and suggested values can be defined to accommodate your business goals.
You cannot associate an allocation value to a card. If your configuration contains both cards and bank accounts, allocation fields represent the amount of money that is allocated to the bank account. See the Configuration section to learn more.
Users can also allocate their pay to a platform-specific card issued by a platform such as Uber or Lyft, together with their banking partner. This forms an additional tranche in a user's pay distribution.
From your application, users are prompted to add:
- Bank accounts
- Cards
- Cards and bank accounts
Argyle is PCI DSS Level 2 compliant. Learn more about security and compliance at Argyle here.
Pay distribution to cards is a feature that is subject to change as the Argyle team keeps improving this solution.
When a card and bank account are added simultaneously, they are treated as one unit. The user must confirm these details together to add the two payout options. If the user does not want to confirm one of the options, neither can be added through this workflow.
If users have an existing payout card through their employer but would like to direct pay to your card instead, instruct the user to disable the original card.
Process overview
- Argyle Link (with pay distribution configuration) is initiated in your application on a button click allowing users to change their pay distribution information.
- In the pay distribution configuration, you can determine the percentage and/or dollar amount values of the user's pay to be allocated to your bank account. You can also add a card option, but any allocation value you input does not apply to the card—allocation values apply to bank accounts only.
- Pay distribution configuration is encrypted to ensure your bank account details are never exposed on the front-end. Your full routing and account numbers always appear encrypted on the end user's device.
- You can read direct deposit accounts and the pay distribution set up on your end user's platform via the /v1/pay-allocations endpoint.
- After subscribing to pay distribution webhooks, your back-end systems will be notified when allocations are added, changed, or removed.
Please refer to this diagram for an explanation of how the relevant endpoints are related:
This is the complete pay distribution life cycle, featuring the associated account statuses and webhooks.
Pay distribution configuration
Argyle Link initiates a pay distribution update process if a pay distribution configuration is provided. The Pay distribution configuration describes the desired outcome of that update.
Pay distribution update functionality is currently limited to U.S. employment accounts only. Pay distribution update is not yet supported for users with Canadian, or a combination of Canadian and American bank accounts.
If pay distribution update gets initiated and a Canadian bank account is observed in the user’s employment platform, the update fails with the
unsupported_bank_accounts
error code.
See these sample configurations for bank accounts, cards, and cards and bank accounts to understand how to set up your configuration.
Bank account configuration
You can configure pay distribution to allow users to only add bank accounts.
// Argyle Link will request 20% of user's pay
// to be transferred to the account specified.
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"percent_allocation": {
"value": "20"
}
}
// Argyle Link will request 200 of user's pay
// to be transferred to the account specified.
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"amount_allocation": {
"value": "200"
}
}
Allocations shown in the example pay distribution configuration are just recommendations. Users can modify the amounts or percentage of their pay to go to your account.
If you want to prevent the user from modifying the allocation value, set min_value
equal to max_value
, as shown in the amount_allocation
example below. In this case, the user is not allowed to change the value of $200, only accept or reject it:
// Argyle Link will default to the amount view, but it will
// let the user chose if they want to transfer 20 percent or 200 dollars.
// Percent value will be 20 by default,
// but the user will be able to change it with a value
// in the range from 10 to 30.
// Amount value will be fixed to 200.
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"default_allocation_type": "amount",
"percent_allocation": {
"value": "20",
"min_value": "10",
"max_value": "30"
},
"amount_allocation": {
"value": "200",
"min_value": "200",
"max_value": "200"
}
}
If the config contains only a percent allocation, Argyle restricts the options to percent only for the user. In the same way, if only the amount allocation is configured, the user will not be able to transfer you a percentage of their pay.
If you want to assign the entire user's net pay to a single allocation, set entire_allocation
to true
.
In this case, no specific allocation (percent or amount) is accepted in pd_config
.
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"default_allocation_type": "amount",
"entire_allocation": true
}
Setting
entire_allocation
totrue
has implications on other pay distribution config parameters. For more details, refer to theentire_allocation
parameter in the API Reference.
Card configuration
You can configure pay distribution to allow users to only add a card. Use feature.pay_distribution_card_update
to learn which Link items support cards.
Argyle recommends populating every field in the
card
object when creating a pay distribution configuration for cards, including the optional fields. Doing so enables compatibility with all platforms that support card pay distribution.
{
"card": {
"card_number": "4253177385403456",
"cardholder_title": "Mr",
"cardholder_first_name": "John",
"cardholder_last_name": "Doe",
"card_name": "Viza",
"expiration_year": 2030,
"expiration_month": 10,
"card_cvc_cvv": "900",
"address_line1": "759 Victoria Plaza",
"address_line2": "Unit 12",
"city": "Los Angeles",
"state": "CA",
"postal_code": "90210",
"country": "US"
}
}
Card and bank account configuration
You can also add a bank account and card simultaneously, though this approach is not recommended as your user must accept both card and bank allocation options to use either.
Argyle recommends populating every field in the
card
object when creating a pay distribution configuration for cards, including the optional fields. Doing so enables compatibility with all platforms that support card pay distribution.
{
"bank_account": {
"bank_name": "New Bank",
"account_type": "checking",
"routing_number": "123451678",
"account_number": "1234567890"
},
"percent_allocation": {
"value":"100"
},
"card": {
"card_number": "4253177385403456",
"cardholder_title": "Mr",
"cardholder_first_name": "John",
"cardholder_last_name": "Doe",
"card_name": "Viza",
"expiration_year": 2030,
"expiration_month": 10,
"card_cvc_cvv": "900",
"address_line1": "759 Victoria Plaza",
"address_line2": "Unit 12",
"city": "Los Angeles",
"state": "CA",
"postal_code": "90210",
"country": "US"
}
}
You cannot associate an allocation value to a card. If the
pd_config
contains both cards and bank accounts, allocation fields (amount_allocation
,percent_allocation
, andentire_allocation
) represent the amount of money that is allocated to the bank account. Allocation fields do not apply to cards.
Pay distribution configuration parameters
For detailed descriptions of each pay distribution configuration parameter, refer to the Pay Distribution configs in the API Reference.
For visual examples of all customizable UI elements on the Pay Distribution screen in Link, refer to the Link customization guide.
Use Cases
You can use these sample pay distribution configs in Console’s Link Emulator and instantly see the resulting Link flows the way your users would see them. Enable Sandbox mode in Console and paste the encrypted configs into the Encrypted PD Config
optional field to try them out.
Argyle recommends that you select a Link customization with Link items that support pay distribution.
Adding a $200 allocation
Argyle Link requests $200 of the user's pay be transferred to the bank account specified. The user is allowed to change the allocation to have other amount values.
Configurations
CiQAB/5leRC6iGLxikbAYI6BBM8/T03SG2Iq2Vp1A6eC0QFjLmES9gEAfV+QlfdxQv7FWp85YYwblaV9gnxxe2q4mBhsXf0ou+THzRzpTtUbP6wJ/JTlCF/KoEs/7PfRqurvZ3TAZZqjtBRXWT27/I0gaOZjZtk5rp02/gFvnaoUwAg3GBiNZj9UuZPzkrz08O60Gy2reOg2N8wUwX4LzlhCGUU/gr3rjrjHW87WQlYxLzYGa3s9Tl6k5OACJCugBG8CtDjsD3X1QZfX2iSAqPOZAiah4Zat5JumIwIah6mGbY+wpaMjDqzGflYmP0NqNXM6+rtPklRLn/g7+D+fWdoF2jXvK4izVkur6780b7bV6JFHoDfahaDnR8aLUzM=
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"amount_allocation": {
"value": "200"
}
}
Adding an amount allocation which cannot be changed by the user
Argyle Link requests $54.53 of the user's pay be transferred to the bank account specified. The user is not allowed to change the value of the newly added allocation.
Configurations
CiQAB/5leXgFotFYMF/3SoQb1w1uO5jqHSX6a2bXZ8EPG2WBhY0SpAIAfV+Qlf9BH0tpooe9jW3W8Vm5wmO8Balpkb7l9ElU+cz6DMvjC5bu3MgPOX6Kfxz02946ATvj042d2bFFRv05G9tmMWLg3YQXdR7aVtxpi899VFLxIWzR4teKCYifu7Utceih/c28q87Ykn0n9MOSCJMTKPn+X1ErYszrJPbkbEGoilqYXnpMJNowI2cYvUUtCCBnQi1zI9RoCSQfSNRS9G2Kdcu9L5g6dYeZCN7qTX6V6rw5NrY8ZhplnKSUw0eMlEq/7Lf7YWn2PbFfKHJ2ai1T34FVwB02OSlRxlemzD9FqjFRJFQwj4c9jHqyPPoXZkZD+wSP9pWLRfWxso1WLYz8KASD6CewJo21XyDsOrU+yDORy+ptdD/JvpJ6qLIWTkam
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"amount_allocation": {
"value": "54.53",
"min_value": "54.53",
"max_value": "54.53"
}
}
Letting the user choose between a fixed percent allocation and a variable amount allocation
Argyle Link defaults to the percent allocation view and lets the user choose if they want to transfer 20% or $150 of their pay to the bank account specified. The percent value is fixed at 20%. The amount value is $150 by default, but the user is able to change it to a value in the range of $100 to $200.
Configurations
CiQAB/5leVczIYGCzRsVsDWaq04av06rTNitmqEYnLyW67wl2FsSkQMAfV+Qlfcwa+9yTG4iJnXY8vaWZB4zUMZuP4BSGoRH/x9y878obUCrcu0NnyJP2pMbUY03V5TD+GUrccN7it+5wSp2/j9LxlT7SrK1v//jbZFpXYIzU9OM6QPSdVkjXV3l9VlI+nicFMMcs+LWa+vFiVGsqC5vdvwMuQQY2ZGS4QzRuKGQb89n09FvyyAmMgz39PDk4ycWu3Z+AcTFx6+cKiSKb6AJ5PnFPQpuDtgBNAHm4l3XADHijOlwa/07tIYs2oqPK5Cx2gPbUI5t3wDFX0RgyjbpPtvV6NEEXXWRK2VJZ+f69OVmCKuRX/i/0q9N02E9kZY1Mfaky7TiQDUIJyp1mF0K7NysLEcKvjcEdcW9n8AnFAvNH0vzlrn0wSQPuezomsLPfsyDl1jBPd2HF540AfOETt3Kzaxfo9PPyfIyBCtKjDITeNN017DkzBP6L1HEmwvUFKJv9o8+VtGUMnwWYLq/AB1ojbW5If4b6h9Mp04EAGgPeW6XG1HELancflCusDdtMv94QGzGjYAedw==
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"default_allocation_type": "percent",
"amount_allocation": {
"value": "150",
"min_value": "100",
"max_value": "200"
},
"percent_allocation": {
"value": "20",
"min_value": "20",
"max_value": "20"
}
}
Letting the user choose between a fixed amount allocation and a variable percent allocation
Argyle Link defaults to the amount allocation view and lets the user choose if they want to transfer 20% or $200 of their pay to the bank account specified. The percent value is 20% by default, and the user is able to change it to a value in the range of 10% to 30%. The amount value is fixed to $200.
Configurations
CiQAB/5leWvq2Ln32VVbtOf0NfoHpOe7cyZncuTjD2veodFiXPQSkAMAfV+Qla8yeSWC0HOGMgSzv6igNruPYKwhnVvmv+W8nwvZolyAn1cjWsaRsBibEkTwcNx/MIYb+iHPAdnFFW1dWW8LRzPiGsn/1T0sqJ/70zcZ9s1eoOnZXy6D+h7SP3Ee+v90abXqvI2GG9ZGRxAGUKFyDqYfYHuTEYzoOxoAx9oARUI/GpVxwX0a8h1F+g+nIvbA7iCKWQOce3WyZLciVj04QE6f8iGMMgtETFtICdogcDtXoo8F2d9sOxOLINQnNz2Y94e0YhOznCUjOhTeY8SbnwyuJmQB4UthHG1zfAenhXXuhUVV/55WNXLURlfl4zyYsrvgKrA3yMkmE9ShIF2sy1nd5URfRoLigNxdO/L84Z+wPJ4NERLwq8s+S2AssBjpf1pnPDs8qLHJtvHNrQw/UkvRyzzeJ2kx0iuoS55imnwcXkZ4MNkOiMa5/ivkbMBv1rCLn4+ILtQxoth+CHDzpKzlNKk42EY3lzPzopi4PYh9kCch4kn7kPickkVpKlp3jIBCO59XBrVfnVqx
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"default_allocation_type": "amount",
"percent_allocation": {
"value": "20",
"min_value": "10",
"max_value": "30"
},
"amount_allocation": {
"value": "200",
"min_value": "200",
"max_value": "200"
}
}
Allocating the user's entire pay
Argyle Link requests the user's entire net pay to be transferred to the account specified. The user only sees this newly added allocation on the screen and is not allowed to modify its value.
Configurations
CiQAB/5lefKMWuhbPYgudwmr0qAC3tyQLjlpktXdjAXLo9Aem4YSjwIAfV+Qld5gO0AXj3Tsy6MYOsimBx9kxfudREELXAT8sYnsOGiZVe08PrQbdiwkDRsvsDEN1bh7PpC7rjDtk/wS9K4Rh3hxcCu1SpwFfxOWU+V8L2BbfXq4pICj97CiAaos5AgRtJzj7LMVw9LtiCfIM4Jxib/VvRqtmEZZQycbZQjHTpnx2TPL3jUU3Cz7Wxb9nN0HkXycsoWH7s7ZRIQRqhIg3jUYt0uECQzoU5q1edXwh7CenSVo2MC4IXz7V1PogcWB6GU6fu/nkTjFHyVOqLfv1a8snbiR4U6+pGi5VKFqJ4udN8zZFjIxAT46hhkNTc97/7MfZliJZq4TIuNsLkYZduSOc73JYLiUoTxx
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"default_allocation_type": "amount",
"entire_allocation": true
}
Adding a payout card
The specified payout card is displayed to the user as being added to their employment account.
Configurations
CiQAB/5leejFD7BabWgeI5Ec57f3v1fmHxPqsjgfNPrPYgD4Ue0SvAMAL2UHl1skfcsHQQqnOA1FaT9YINKrYOuEG59ayu88VKAwnRmyElu7xxcJWYGwLKDlKwFM+ICaKmN34SZnhY14pyn3Pf/y3u5x/qEmc2tbwjWNqE0Qof+2FvojoBJ/C9Ue7qiJTPVjfPbY/A5kxTmaGne1GSlYicW7UOrMc3YamYuUGjgWGJL+IenTWpHc5a/bgrkwwqG6sIZEywWYCAPWauLV3mx8SS4XoLCLVfh2AvMHpPKDpTcXa7U9n8MTtyfZVuCewg5QBnQtioJ/FZ+zOFnRIPvGIt95hDLLfhAgivgpkTG5kJ5aO23VGHLdpOprmb2/v69nOJpiW1kZDJmjhGAz14pQ4pi2mOupY+fILlnOWhCo6l/hnjv55bwnyV0FG1Sz9RvFNo8oqmb7lqKQCPEhXkHivGs+sjAWP+bYirWVdmfdNksLeOHnJ/HjIhXkN3+dKAnqVKRX6JjFvJCGQ/k1G/BeLOohY6qVAzFnpkej2s+1wOFv4TnxNR2ME0S872POnZj5mHoxJMk3WDDwtCZIha5O0LwH9SwgBklNGqihBvZvQ5Iw/kGI53ri3leI0l3uTDUg9tO+TxE=
{
"card": {
"card_number": "4253177385403456",
"cardholder_title": "Mr",
"cardholder_first_name": "John",
"cardholder_last_name": "Doe",
"card_name": "Viza",
"expiration_year": 2030,
"expiration_month": 10,
"card_cvc_cvv": "900",
"address_line1": "759 Victoria Plaza",
"address_line2": "Unit 12",
"city": "Los Angeles",
"state": "CA",
"postal_code": "90210",
"country": "US"
}
}
Adding a $200 allocation, and a payout card
Argyle Link requests $200 of the user's pay be transferred to the bank account specified. The user is allowed to change the allocation to have other amount values. The specified payout card is displayed to the user as being added to their employment account.
Configurations
CiQAB/5leepwEn0jP4ZI9WpApv8aAldh6/sD8kcoe18811fPurMS7AQAL2UHlzkRkNm4pMP/r8+hA0ejpWB806suAB+7LCXshwSXmt3T0kFuEvGVlTktXM0jF2Iy7XRh5arvkbAgfmHiAAklGcCW2plHB/KClOAFqWJiswNjyuFeQD6SUeLvdxr2XXpzenpCzyM3EK8+/GIkv/iv6aSElBWt5lJEgpUCvcJ6GAHTtgPrjU9Qe3JAUv9Jasx4hyWrcqTUfol2SmbpdqGnef5OqUWD2MvTzcWBXOrz3/V5WFZ2YsMEXzKBpL5Uim1zA1Rg4bAYmnNyCPYvX0o2dLLv9ME2vuRORolD1nKr9FJLJKThZDLgAoK+Ur6AunredcfQeoiGsPSdd+reiXwyJ9TkV/2acokAe/rydVajHLLEUNTDrWU2k71nSULwjAFfu8BUNtoMVRcZRrFGAR5HywI6Mcqp+J767ZOC4qgSA+/Rm8pia/hjrGrIAYkva68BCHOsVw/Q/HkWH/y0z6c8lDjliObCDdoY1/bWeE6xBXeawz+Gy1BX1SYX1csKRktB3YpBBR4fN6AJh0D0XSmABfSkpqYBqiRMzhKRRAixcBeNh1naRO+R96cve3qu45M/l41x8Fm0AdsV59rHOuQr/r3QCro9JgNyrCQiue+pTEYg4/qTThZ99Vnxeb0cDVj67OZtq1MT+HZZ16DBeh5Lp9f91zZeavN5CVYSE2wY3qJf7QdgJJiogVn6xSO8LHbSM2F5LAqgEOTgdyCuEkN+a+RhqZmpAgTI6yGUaG/mGC4OIqVLvySZb8OKWaDm+aCLmeZNttl0/Yvho0nLq3kAGUQbFslapWCHLbqZb3XEfxChQf1SjAO+UQ==
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"card": {
"card_number": "4253177385403456",
"cardholder_title": "Mr",
"cardholder_first_name": "John",
"cardholder_last_name": "Doe",
"card_name": "Viza",
"expiration_year": 2030,
"expiration_month": 10,
"card_cvc_cvv": "900",
"address_line1": "759 Victoria Plaza",
"address_line2": "Unit 12",
"city": "Los Angeles",
"state": "CA",
"postal_code": "90210",
"country": "US"
},
"amount_allocation": {
"value": "200"
}
}
Adding a 20% allocation, and a payout card
Argyle Link requests 20% of the user's pay be transferred to the bank account specified. The user is allowed to change the allocation to have other percent values. The specified payout card is displayed to the user as being added to their employment account.
Configurations
CiQAB/5leQgcglFavRCp0w4HKxEsd+C8fSk3u0eQvJn4Q6r05/kS7AQAL2UHl4BkKFllK1Hxv6VtGdA6a9VOLNvBXRI56ppkqipJpMkNX4PJ/Weh30Z6oyaZQUOMxY+ZpJHP5ezEheRZlgitschbPoJRWkLjzKKy3X2IQ3f/34r+Uk3ad2oosuPgbku0HmP4ACG3FQhIUNeA8TTc1XzRSMx+lFsryrzmv+SpuKAJYn6ULseB4c26tqaD5LcKEIoDmitJUjMQtDdMR+z5fpfKlQXCmkDHHef9XUcpzkY5LKqiZlQy2Tn7iWQTn9CNSPXukVRZGaYWpdPa7bYa+cowd0M6yq4N1ML5eRdrU2WmHzWoMpViRtTjrtbU4zb7fUsFOGJfinq1fz4xSeOhJUg4RsTCZifVhVQ53ESBKnl/Rw2qqaf4tPREVG/oaC/v6Vr4P2rUbfJ/NiV84wVh1Und+6F60TLwjPTEePzmrUD0/GweC/pvRMbBYypHd17vljLd/YypymNU0rVVwAc/HGpdm0kSzPv59E6sT0WMQaVD+qKcqb9RvKNcZubWgfstn5y0ivw38DECj8TZQNaY00tzNfNJqJf8FsSbompt1oFMItEwi5cg5Nei1wpDB+1c4d09Y99sf3Eghbwu6yYtm102MsNluNtZdaggCIbNdrs72qaUi1tSqNXCZ/uaq+kvxr6B4Ncvwuj02hjB9e+mnMWqOs3fa0oTs05BvREl0vJejmPDq2loxWjAUh1It1HB0jgRB7dFlA9h/wrvD7PKJdP1dNO/J84iXL8DlrLDYycHKL30JuplAfLcZaT1kFdmmRTMPdBxN2nwWqvu6VOcBUiCrIdK1xzYtwfPYe0GWC86pyZQYVXVmQ==
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"card": {
"card_number": "4253177385403456",
"cardholder_title": "Mr",
"cardholder_first_name": "John",
"cardholder_last_name": "Doe",
"card_name": "Viza",
"expiration_year": 2030,
"expiration_month": 10,
"card_cvc_cvv": "900",
"address_line1": "759 Victoria Plaza",
"address_line2": "Unit 12",
"city": "Los Angeles",
"state": "CA",
"postal_code": "90210",
"country": "US"
},
"percent_allocation": {
"value": "20"
}
}
Allocating the user's entire pay, and adding a payout card
Argyle Link requests the user's entire net pay to be transferred to the account specified. The user only sees this newly added allocation on the screen and is not allowed to modify its value. The specified payout card is displayed to the user as being added to their employment account.
Configurations
CiQAB/5leT7O7tuqZTNRlvgzuORNFdZu0tYaImtc7v5uTy5vBc0S4AQAL2UHl11enTB971I0t8Tx0U729+vnVIIX8splHDJijiiDEtcScd3W8b52FmFpg/IL3eHs7umRmd6JO8mvORDhBGQqF+x0XrZhzaZC4qB+ZiEs2rztEYGLMPgoYKegh7oKauNc9ZDf43l/KFDCYlYgW2Zd7LbB4M+PN39E8+GgMqHYTOKgpXFMYVBAniV8r58eu2PI9FV8sZ0JXRlOX2YTXAkEFC3XeX174olNQU4Eu1xlu+EPf61yCF1/UBvetVB7rSXMW/IcFrYkZCFVw+1YlDtGgk7uksStCB6ePuyWeu0/erjOitZidL5FwCx90OS0AEoMDqsXVQq+nyB+rCe2IAX9YFEL/xiWCB5gGXxzE+Y814WinVKq3YsSzsaMOhpKOpLfFuOb8YhQDzsq+OTlMx6W6RjOPSaqk29yQYWTDOaH37/iOABqnM8YWwbdz434KbuH02vo9gpS5Ny4MEyYTk5Uy0l8Z9rCce+/hUIRjqGNPQgim+kNwBp204V3tGX96fI/3JLwTeTUcmk4JrSK3G/LfDWQrxz+UYvxKO3BV56I6lvJcXMPrAlDGTzlxHOO9jUhSpBun0mU/gdbUXr9wunufZrb/Zc+4th+YCeVoBuwJ/TReBP8+fCfo0WQGXCX3wKGB5kl+PaoxRmTSrj24iSJLRCFTCygEeyW3/IFNK6/lCbYCLitJgLeOlz+oh+//1IDIrwj7f0h61ZQ15UdHqXBua0dJ/INxUjlUKyfmG8tMY5fCJaLLQkfhe/E0StQ8JdzYTbq2YGQIBfDuWCJpRbXYHQ40L7mQGXPDF+ocA==
{
"bank_account": {
"bank_name": "New Bank",
"routing_number": "084101234",
"account_number": "9483746361234",
"account_type": "checking"
},
"card": {
"card_number": "4253177385403456",
"cardholder_title": "Mr",
"cardholder_first_name": "John",
"cardholder_last_name": "Doe",
"card_name": "Viza",
"expiration_year": 2030,
"expiration_month": 10,
"card_cvc_cvv": "900",
"address_line1": "759 Victoria Plaza",
"address_line2": "Unit 12",
"city": "Los Angeles",
"state": "CA",
"postal_code": "90210",
"country": "US"
},
"entire_allocation": true
}
Link integration
To start the pay distribution update process in Link you must initialize it with the payDistributionConfig
parameter set to an encrypted version of your pay distribution configuration.
The encryption is necessary to ensure your bank account details are never exposed on the front-end. Your full routing and account numbers always appear encrypted on the end user's device.
To encrypt your pay distribution config make a POST
request into pay-distribution-configs/encrypt
with your pay distribution config in the payload.
POST /v1/pay-distribution-configs/encrypt
{
"bank_account": {
"bank_name": "New Bank",
"account_type": "checking",
"routing_number": "123456789",
"account_number": "1234567890"
},
"percent_allocation": {
"value": "60"
}
}
You get a response that contains the encrypted version of your config:
{
"encrypted_config": "CiQAB/5leUoeFUzgHsoDLSjZqnh4pk+S4dMkrXIi/MORRH2nLRYS8wEAfV+QlRZrPnvXdWJOQ4pKzBoJzJicJUIa4y7q3RSUVi2s8pRiG15i1SwdTeJ++imc+tInpDk5G69EZj4HCef2BBhctysILGdi3nYMRoNv8dVSS5wUJUbod7oG1PMBi7CeObu73A91nmxL6edSumWQMMqmd/4nWHOHHNtb4fttgnKwCf1E7ZBLKRCYnIe/+EopIF3D470qi20fCDL9zvY0a1N9uKg9nnFueIzo04haEY9ujh9ErL+HLdve1ExV5VvTkZkH4mAulqKcTpS8VHCAM3sqFTLExSJhbqRUzeS5DLnsVReFfUaKHR/7I/7sloyy+cU="
}
Initializing Link with the payDistributionConfig
parameter with the encrypted pay distribution configuration value will set up Link to run the pay distribution update process.
Link initialization with pay distribution config
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<script src="https://plugin.argyle.com/argyle.web.v3.js"></script>
<script type="text/javascript">
const argyle = Argyle.create({
linkKey: 'YOUR_LINK_KEY',
apiHost: 'https://api-sandbox.argyle.com/v1',
payDistributionItemsOnly: true,
payDistributionUpdateFlow: true,
payDistributionConfig: "CiQAB/5leUoeFUzgHsoDLSjZqnh4pk+S4dMkrXIi/MORRH2nLRYS8wEAfV+QlRZrPnvXdWJOQ4pKzBoJzJicJUIa4y7q3RSUVi2s8pRiG15i1SwdTeJ++imc+tInpDk5G69EZj4HCef2BBhctysILGdi3nYMRoNv8dVSS5wUJUbod7oG1PMBi7CeObu73A91nmxL6edSumWQMMqmd/4nWHOHHNtb4fttgnKwCf1E7ZBLKRCYnIe/+EopIF3D470qi20fCDL9zvY0a1N9uKg9nnFueIzo04haEY9ujh9ErL+HLdve1ExV5VvTkZkH4mAulqKcTpS8VHCAM3sqFTLExSJhbqRUzeS5DLnsVReFfUaKHR/7I/7sloyy+cU="
})
argyle.open()
</script>
</body>
</html>
let PD_CONFIG = "CiQAB/5leUoeFUzgHsoDLSjZqnh4pk+S4dMkrXIi/MORRH2nLRYS8wEAfV+QlRZrPnvXdWJOQ4pKzBoJzJicJUIa4y7q3RSUVi2s8pRiG15i1SwdTeJ++imc+tInpDk5G69EZj4HCef2BBhctysILGdi3nYMRoNv8dVSS5wUJUbod7oG1PMBi7CeObu73A91nmxL6edSumWQMMqmd/4nWHOHHNtb4fttgnKwCf1E7ZBLKRCYnIe/+EopIF3D470qi20fCDL9zvY0a1N9uKg9nnFueIzo04haEY9ujh9ErL+HLdve1ExV5VvTkZkH4mAulqKcTpS8VHCAM3sqFTLExSJhbqRUzeS5DLnsVReFfUaKHR/7I/7sloyy+cU=" // your encrypted pay distribution config
_ = Argyle.shared
.loginWith(linkKey: "YOUR_LINK_KEY", apiHost: "https://api-sandbox.argyle.com/v1")
.payDistributionUpdateFlow(true)
.payDistributionConfig(PD_CONFIG)
.payDistributionItemsOnly(true) // only Link items that support pay distribution update will be shown to users.
.resultListener(self)
let argyle = Argyle.shared.controller
argyle.modalPresentationStyle = .fullScreen
self.present(argyle, animated: true, completion: nil)
val PD_CONFIG = "CiQAB/5leUoeFUzgHsoDLSjZqnh4pk+S4dMkrXIi/MORRH2nLRYS8wEAfV+QlRZrPnvXdWJOQ4pKzBoJzJicJUIa4y7q3RSUVi2s8pRiG15i1SwdTeJ++imc+tInpDk5G69EZj4HCef2BBhctysILGdi3nYMRoNv8dVSS5wUJUbod7oG1PMBi7CeObu73A91nmxL6edSumWQMMqmd/4nWHOHHNtb4fttgnKwCf1E7ZBLKRCYnIe/+EopIF3D470qi20fCDL9zvY0a1N9uKg9nnFueIzo04haEY9ujh9ErL+HLdve1ExV5VvTkZkH4mAulqKcTpS8VHCAM3sqFTLExSJhbqRUzeS5DLnsVReFfUaKHR/7I/7sloyy+cU=" // your encrypted pay distribution config
val config = ArgyleConfig.Builder()
.loginWith("YOUR_LINK_KEY", "https://api-sandbox.argyle.com/v1", "")
.payDistributionConfig(PD_CONFIG)
.payDistributionItemsOnly(true) // only Link items that support pay distribution update will be shown to users.
.payDistributionUpdateFlow(true)
.setCallbackListener(object : Argyle.ArgyleResultListener {
// callbacks
})
.build()
Argyle.instance.init(config)
Argyle.instance.startSDK(this)
import ArgyleSdk from '@argyleio/argyle-plugin-react-native'
const PD_CONFIG = 'CiQAB/5leUoeFUzgHsoDLSjZqnh4pk+S4dMkrXIi/MORRH2nLRYS8wEAfV+QlRZrPnvXdWJOQ4pKzBoJzJicJUIa4y7q3RSUVi2s8pRiG15i1SwdTeJ++imc+tInpDk5G69EZj4HCef2BBhctysILGdi3nYMRoNv8dVSS5wUJUbod7oG1PMBi7CeObu73A91nmxL6edSumWQMMqmd/4nWHOHHNtb4fttgnKwCf1E7ZBLKRCYnIe/+EopIF3D470qi20fCDL9zvY0a1N9uKg9nnFueIzo04haEY9ujh9ErL+HLdve1ExV5VvTkZkH4mAulqKcTpS8VHCAM3sqFTLExSJhbqRUzeS5DLnsVReFfUaKHR/7I/7sloyy+cU=' // your encrypted pay distribution config
// Configure the SDK before hand, once. only call ArgyleSdk.start() when the UI is needed
ArgyleSdk.loginWith("YOUR_LINK_KEY", "https://api-sandbox.argyle.com/v1", "")
ArgyleSdk.payDistributionConfig(PD_CONFIG)
ArgyleSdk.payDistributionUpdateFlow(true)
ArgyleSdk.payDistributionItemsOnly(true) // only Link items that support pay distribution update will be shown to users.
// Launch the SDK
ArgyleSdk.start()
Limiting the number of Link items in the company selection screen
You can limit the number of companies or platforms that are shown to users in Link during the company selection step:
- If the
payDistributionItemsOnly
is set to true, Link will only show Link items that support direct deposit update functionality. - Additionally, if you define only the
amount_allocation
orpercent_allocation
values in the pay distribution config, then only the Link items that support amount or percent allocations will be shown to the user. To find out which Link items support which types of allocations, please refer to thefeatures.pay_distribution_update
object in the /link-items endpoint.
Account statuses
The account object retrieved from accounts will have the pay_distribution
object containing status,
error_code
, error_message
, and updated_at
fields.
The account object refers to the pay distribution process as a whole, which can consist of multiple pay allocations.
The pay distribution object represents the status of the pay distribution update process.
Here is an example of an account after a successful pay distribution update:
{
"id": "7c21d391-a7df-4ad5-b7d3-d2d7a6b3e740",
"user": "9a498925-2766-41d4-a094-5fb1ce22afd7",
...,
"pay_distribution": {
"status": "success",
"error_code": null",
"error_message": null,
"updated_at": "2020-09-27T15:56:20.734617"
}
}
Attributes
pay_distribution.status string
Denotes the point in the process of the pay distribution update process. Possible values:
idle
- pay distribution update process has not been initiated.
awaiting_confirmation
- waiting for the user to confirm updated pay distribution.
awaiting_connection
- waiting to establish connection to the user's employment account.
scanning
- scanning existing pay allocations prior to update process.
updating
- updating the user's pay distribution.
success
- pay distribution update successful.
error
– pay distribution update unsuccessful. See the pay_distribution.error_code
below for details.
pay_distribution.error_code string
Provides information on why the pay distribution update was unsuccessful when pay_distribution.status
is error
.
Each error_code
has a corresponding error_message
.
For more information on possible values, common causes, and troubleshooting suggestions for these errors, see the Pay Distribution Errors reference page.
pay_distribution.error_message string
Provides additional information on why the pay distribution update error occurred. Each error_message
corresponds to a particular error_code
(see above). The list below is formatted as:
error_code
- error_message
For more information on possible values and troubleshooting suggestions, see the Pay Distribution Errors reference page.
pay_distribution.updated_at string
Timestamp denoting the last time pay distribution was updated. Timestamps follow the ISO 8601 standard.
Reading pay allocations
You can read direct deposit accounts, and the pay distribution set up on your end user's platform via the pay allocations endpoint.
The Argyle API returns pay allocation details for users with U.S., Canadian, or even a combination of bank accounts, where a user might have pay allocations for a US bank account and a Canadian bank account simultaneously.
However, pay distribution update functionality is currently limited to U.S. employment accounts only. Pay distribution update is not yet supported for users with Canadian, or a combination of Canadian and American bank accounts.
Webhooks
You can get notified about the result of a pay distribution update by subscribing to these webhooks:
accounts.pay_distribution_updated
lets you know when a pay distribution updates successfully.accounts.pay_distribution_failed
lets you know when a pay distribution fails to update.
The Argyle API also provides dedicated webhooks to notify you when your users add, update, or remove pay allocations. Visit the Pay allocations webhooks reference for more details.
Learn how to subscribe to notifications about changes in your users' data in the Webhooks reference.
Updated 1 day ago