Direct deposit switching

Learn how to update your users' direct deposit information through Argyle's pay distribution solution.

Overview

Direct deposit switching 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.

Argyle Link flow when a Link item doesn't support pay distributions, and there is a single 100% allocation.Argyle Link flow when a Link item doesn't support pay distributions, and there is a single 100% allocation.


Direct deposit switching flow

  1. Argyle Link (with pay distribution configuration) is initiated in your application on a button click allowing users to change their pay distribution information.
  2. 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.
  3. 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.
  4. You can read direct deposit accounts and the pay distribution set up on your end user's platform via the /v1/pay-allocations endpoint.
  5. 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:

undefinedundefined

This is the complete pay distribution life cycle, featuring the associated account statuses and webhooks.

Pay distribution process overviewPay distribution process overview


Configure deposit switching

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.

Pay distribution allocation typesPay distribution allocation types

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 to true has implications on other pay distribution config parameters. For more details, refer to the entire_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"
    }
}

PD cardPD card

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, and entire_allocation) represent the amount of money that is allocated to the bank account. Allocation fields do not apply to cards.

Pay distribution card bankPay distribution card bank

Manage card data through a third-party provider

Offering instant payouts to cards depends on managing sensitive data like card numbers and CVV2 security codes, which requires PCI DSS compliance.

Argyle has partnered up with Unit, a banking-as-a-service platform, to create a seamless and secure integration that enables you to offer instant payouts to cards, even if you do not have PCI DSS compliance.

This integration allows Argyle to retrieve the card details needed to populate the pay distribution configuration directly from Unit, removing the need for you to handle sensitive data.

👍

Both Argyle and Unit are PCI DSS compliant. Learn more about security and compliance at Argyle here.

This is what the integration looks like:

Unit integrationUnit integration

For detailed descriptions of the card_source object and its attributes, visit the Pay Distribution configs in the API Reference.

Reach out to your Customer Success Manager if you want to leverage Argyle’s integration with Unit, or your preferred third-party financial service provider in your application.


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.

Pay distribution use casesPay distribution use cases

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
}

Integrate into Link

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 or percent_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 the features.pay_distribution_update object in the /link-items endpoint.

See 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 direct deposit switching 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 direct deposit switching errors reference page.


pay_distribution.updated_at string

Timestamp denoting the last time pay distribution was updated. Timestamps follow the ISO 8601 standard.


Read 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:

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.

FAQ

pay distribution flowpay distribution flow

With Argyle, you can update a user's pay distribution to include an allocation to you for loan repayments or other use cases. A user pay distribution consists of one or more pay allocations that add up to the total income that a user earns during their pay cycle.

If you have any questions that are not answered on this page, please contact our customer support.

❗️

Depending on the payroll platform, account and routing numbers retrieved via the API can be partially or fully obfuscated.


What is the difference between pay distribution and pay allocations?

A single pay distribution for one account is composed of multiple pay allocations. See example below:

alt namealt name


What happens if the users allocate a higher amount than they receive?

The users may, for some reason, confirm an update with a higher allocation value than their income. On the example below, a user with $150 income confirms the following pay distribution:

IncomeAllocation AAllocation BAllocation C
$150$100$200remainder

The $150 income is not enough to satisfy all allocations. How this amount is distributed varies from platform to platform. However, the most common scenario we have observed is the one where allocations are satisfied in the order they are presented until there is no money left, as the example below:

IncomeAllocation AAllocation BAllocation C
$150$100 -> $100$200 -> $50remainder -> $0

Although we cannot control this behavior, whenever possible, Argyle inserts your allocation on the top of the list (the highest priority).


How to check if the user has enough income for the payment allocation?

Refer to the /payouts endpoint and verify that the users' regular income (for example, net salary or bonuses) is, at least, as large as the total value of the allocations.

In the example below, the payout_date and value fields are used to calculate one user's income in a specific time period. The <account-id> refers to their Argyle account:

GET /payouts?account=<account-id>
{
    "count": 2,
    "results": [
        {
            "currency": "USD",
            "gross_pay": "115.00",
            "net_pay": "100.00",
            "payout_date": "2021-09-16T04:48:17Z",
            ...
            },
        {
            "currency": "USD",
            "gross_pay": "57.50",
            "net_pay": "50.00",
            "payout_date": "2021-09-15T11:10:33Z",
            ...
        },
    ],
    ...
}

What happens if a user tries to add a new allocation, but all allocation slots are already filled?

When the user tries to add an allocation that exceeds the number of allocations allowed (determined by the max_allocations attribute in the Link items endpoint), our system suggests a new pay distribution that includes the new allocation and removes an existing one. See the example below:

max allocationsmax allocations

Before confirming the suggestion, the user can edit the value and/or replace the selected accounts by removing a suggested account and restoring the removed one.


How long does it take to confirm a pay allocation?

The duration depends on how fast the platform processes the request. From the moment the user confirms the update, it varies from 15 to 30 seconds on most platforms, up to two minutes on the slowest platforms.


What happens if the payment fails?

Unfortunately, Argyle cannot control what happens after passing the allocation information to the provider. Users must contact the provider for further clarification in case of any issues with the payment.


How can I confirm if the pay allocation was added successfully?

It is possible to fetch the user's pay allocations via the GET /pay-allocations endpoint and confirm if the details were created correctly.


Are Link items filtered based on the pay distribution config?

Yes. There are many different permutations of pay distribution configs with amount and/or percent values, with min & max values ranges, with or without decimal values, etc. Whatever the pay distribution config, the Link item list only shows those items that satisfy the parameters defined in the config.

Here are some examples to illustrate this point:

  • Only defining an amount_allocation filters out Link items that solely support percent-based allocations.
  • Setting amount_allocation.max_value = 500 filters out Link items that have a minimum value of more than $500 for allocations.
  • Setting percent_allocation.max_value < 100 filters out Link items that support only a single 100% allocation.

Briefly, the users only see Link items which allow them to confirm a pay allocation based on the criteria that you set in the pay distribution config. This eliminates incompatible config errors and ensures an optimal user experience.


Does the pay distribution revert to original settings after an allocation is removed via API?

Removing a pay allocation via the API changes the remaining allocations on the payroll platform. We cannot guarantee that the original pay distribution settings will be observed and therefore you have to:

  1. Retrieve the current pay allocations and determine if they are distributed correctly. You might need to check with the user to confirm this.
  2. If the pay distribution is incorrect, you have to ask the user to go into their payroll platform and adjust the pay distribution settings themselves.

Removing pay allocations

Explore this guide to learn how you can remove bank pay allocations through two processes:

📘

Some income and payroll platforms allow you to remove the last pay allocation remaining on an account, but others do not. If the platform allows it, you can remove a user’s pay allocation via the API method only.

Remove via Link

Use this process to remove bank pay allocations via Link. Argyle recommends using this approach if it is available for your application’s platform, as it:

To remove a pay allocation via Link, follow the usual process for a pay distribution update. When removing a pay allocation, you must include these items in the user’s pay distribution config (pd_config):

{
  "action": "remove-allocation",  
  "allocation_id": "0181d8c4-31ed-3338-1859-05fc7f1ca501"
}

These items are:

  • "action": "remove-allocation" - an action that removes a pay allocation.
  • allocation_id - the allocation ID of the pay allocation you wish to remove.

🚧

The option to remove pay allocations via Link is currently available for customers with Web integrations only. This option will be made available for customers that use iOS, Android, and React Native in an upcoming Link release. You can remove pay allocations via the Argyle API if your integration uses one of these SDKs.

Remove via the Argyle API

Use this process to remove bank pay allocations on behalf of your users without initializing Argyle Link.

Removing a bank pay allocation via the API changes the remaining allocations on the payroll platform. Argyle cannot guarantee that the original pay distribution settings are observed and so you must:

  1. Retrieve the current bank pay allocations and determine if they are distributed correctly. You must consult with the user to confirm this.
  2. If the pay distribution is incorrect, you must ask the user to go into their payroll platform and adjust the pay distribution settings themselves.

Send a request to remove the allocation

Send a POST request (with no payload) to the /v1/pay-allocations/<id>/remove endpoint, where <id> is the ID of the allocation to remove. Here’s what the request looks like:

POST <https://argyle.com/v1/pay-allocations/><id>/remove

Typically it takes between 15-90 seconds to remove the pay allocation, depending on the Link item. Removal is faster than updating the pay distribution because you do not require confirmation from the user.

Monitor allocation removal progress

You can call GET /v1/accounts/<account-id> and extract pay_distribution.status and pay_distribution.error from the payload. Here’s what the request looks like:

GET https://argyle.com/v1/accounts/<account-id>

{
    ...
 "pay_distribution": {
 ...
     "status": ...,
        "error": ...
    }
}

The status progresses like this: scanning -> updating -> success.

After the process is complete, these webhooks can be triggered:

Troubleshooting

If you are having trouble removing a pay allocation, see these sections for guidance:

Errors when initiating the removal

When you initiate a pay allocation removal with a POST request, you can sometimes receive a 400 Bad Request like this:

POST /v1/pay-allocations/<id>/remove

RESPONSE 400 Bad Request

400 Bad Request responses are returned with one of these error messages, indicating what went wrong and what you should do:

  • This user's connection has expired and requires re-authentication.
  • A PD update for this account is currently in progress. Please try again in a few minutes.
  • Argyle encountered a problem when updating pay distribution information. Our team has been notified and is investigating.
  • This user's employment account does not support updating pay distribution information.

Standard HTTP errors, such as 401 Unauthorizedand 404 Not Found, can also occur.

Errors after the removal has been initiated

If the pay allocation cannot be removed due to constraints in the user’s income or payroll platform, such as having zero allocations set when the platform requires at least one, an incompatible_config pay_distribution.error is returned.

If the platform asks Argyle to reauthenticate and this cannot be done without the user's input, the removal is not executed. In some cases, the platform can request that the user submit an MFA token.

Reading webhooks

When the pay allocation is successfully removed, the accounts.pay_distribution_updated webhook is triggered. This webhook:

  • Contains the flow field, which denotes the type of pay distribution flow that triggered the update.
  • The flow field is populated with removal, which indicates that the pay distribution was successfully updated by a pay allocation removal.

When the pay allocation removal fails, the accounts.pay_distribution_failed webhook is triggered.

The pay_allocations.removed webhook is triggered if the allocation was removed. When removal is initiated:

  1. The account is scanned.
  2. Any previously unknown changes cause pay_allocations.added, pay_allocations.updated, and/or pay_allocations.removed to fire.
  3. Argyle performs the removal and fires the webhook(s) for any effects caused by the removal.

For example, you want to remove AccX and Argyle has AccA and AccX in their records. 15 minutes ago the user added AccB that Argyle does not have in their records yet:

What Argyle knows       What Argyle scans       After removal
=================       =================       ==============
AccA remainder          AccA remainder          AccA remainder
AccX      $100          AccX      $100          AccB       $50
                        AccB       $50

                        ^^^^^^^^^^^^^^          ^^^^^^^^^^^^^^
                        pay_allocations.added   pay_allocations.removed
                        fires for AccB          fires for AccX

First, pay_allocations.added fires to announce that Argyle has scanned AccB. Later, pay_allocations.removed fires to announce that Argyle has removed AccX.

Side effects after removing a pay allocation

When you remove a user’s pay allocations, this can cause changes to the user's other allocations. These side effects can occur if you remove the pay allocation via Link or via the API.

See these two example scenarios to understand how these side effects can occur:

  • If the removed allocation was the remainder, one other allocation may take its place as the remainder:
Acc1                 $50         Acc1          $50
Acc2                $100   -->   Acc2    remainder
AccToRemove    remainder
  • PERCENT values may adjust to reach the sum of 100:
Acc1           50%   -->   Acc1    100%
AccToRemove    50%

Microdeposit verification

New pay allocations may be created in either pending or needs_confirmation state. A pending allocation undergoes internal verification by the payroll platform and eventually becomes active with no external action required.

Allocations in needs_confirmation state require additional input — microdeposit verification — to become active. The payroll platform transfers a random small amount of money into the bank account. That amount is the verification code. The owner of the bank account reads it off the transaction and submits it to the platform. After the correct code is submitted, the allocation becomes active.

To complete a microdeposit verification via the Argyle API, you have to:

  1. Check if a microdeposit verification is available.
  2. Submit the verification value.

Check for availability

Allocations that require microdeposit verification will have status = needs_confirmation. To find allocations with this status, list all allocations for an account and check their statuses:

GET /pay-allocations?account=<account-id>

RESPONSE 200 OK
{
    "count": 3,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "ab13901d-5e93-1c7d-49c7-f1d67ef09198",
            "account": "<account-id>",
            "status": "active",
                ...
        },
        {
            "id": "7f7314ca-3504-3860-236b-cface7891277",
            "account": "<account-id>",
            "status": "needs_confirmation",
                ...
        },
        {
            "id": "dbf88932-70c7-9ae7-b9a4-f3df1740fc9c",
            "account": "<account-id>",
            "status": "active",
                ...
        }
    ]
}

Getting a specific pay allocation by its ID will show the list of actions available for that pay allocation. Microdeposit verification is available if that list contains deposit.

GET /v1/pay-allocations/<id>

RESPONSE 200 OK
{
    "actions": ["deposit"],
        ...
}

Please note that the actions field is not available when fetching multiple pay allocations at once.


Submit the verification code

Send a POST request to /v1/pay-allocations/<id>/activate endpoint:

POST /v1/pay-allocations/<id>/activate

with the following body:

{
  "type": "deposit",
  "value": <code>
}

where <id> is the ID of the pay-allocation that requires microdeposit verification and <code> is the verification code. For example, if you transfer $0.07, then the activation code is "0.07".


Did this page help you?