{"title":"Pay by Bank (US) Android Component integration","category":"default","creationDate":1776961628,"content":"<p>This page explains how to add Pay by Bank (US) to your existing Android Components integration.<\/p>\n<h2>Requirements<\/h2>\n<p>Select the <a href=\"\/pt\/online-payments\/build-your-integration\">server-side flow<\/a> that your integration uses:<\/p>\n\n<div id=\"tabquz9I\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Sessions flow&quot;,&quot;content&quot;:&quot;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Requirement&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Integration type&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Make sure that you have built a Sessions flow &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/build-your-integration\\\/sessions-flow?platform=Android&amp;amp;integration=Components\\&quot;&gt;Android Components integration&lt;\\\/a&gt;.  &lt;br&gt; The minimum required version is 5.70.0. &lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Setup steps&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Before you begin, contact our &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/ca\\\/ca\\\/contactUs\\\/support.shtml?form=other\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Support Team&lt;\\\/a&gt; to add Pay by Bank (US) in your Customer Area.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&quot;,&quot;altTitle&quot;:&quot;sessions&quot;,&quot;oldTabId&quot;:&quot;sessions-before_1&quot;,&quot;relation&quot;:&quot;sessions&quot;},{&quot;title&quot;:&quot;Advanced flow&quot;,&quot;content&quot;:&quot;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Requirement&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Integration type&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Make sure that you have built an Advanced flow &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/build-your-integration\\\/advanced-flow?platform=Android&amp;amp;integration=Components\\&quot;&gt;Android Components integration&lt;\\\/a&gt;.  &lt;br&gt; The minimum required version is 5.70.0. &lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Setup steps&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Before you begin, contact our &lt;a href=\\&quot;https:\\\/\\\/ca-test.adyen.com\\\/ca\\\/ca\\\/contactUs\\\/support.shtml?form=other\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Support Team&lt;\\\/a&gt; to add Pay by Bank (US) in your Customer Area.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&quot;,&quot;altTitle&quot;:&quot;advanced&quot;,&quot;oldTabId&quot;:&quot;advanced-before_2&quot;,&quot;relation&quot;:&quot;advanced&quot;}]\"\n            :should-update-when-url-changes='true'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2>API reference<\/h2>\n<p>Select the endpoint you are using to make payments:<\/p>\n\n<div id=\"tabbGZYF\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;&lt;code&gt;\\\/sessions&lt;\\\/code&gt;&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;This is the default with &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/build-your-integration\\\/sessions-flow?platform=Android&amp;amp;integration=Component\\&quot;&gt;Components v5.0.0&lt;\\\/a&gt; or later.&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Parameter name&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: center;\\&quot;&gt;Required&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/sessions#request-countryCode\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;countryCode&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The shopper&#039;s country\\\/region. This determines the banks that our partner shows to the shopper. Format: the two-letter &lt;a href=\\&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/ISO_3166-1_alpha-2\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;ISO-3166-1 alpha-2&lt;\\\/a&gt; country code. Currently, only &lt;strong&gt;US&lt;\\\/strong&gt; is supported. This is also the default if you do not include this parameter.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&quot;,&quot;altTitle&quot;:&quot;sessions&quot;,&quot;oldTabId&quot;:&quot;sessions-api_1&quot;,&quot;relation&quot;:&quot;sessions&quot;},{&quot;title&quot;:&quot;&lt;code&gt;\\\/payments&lt;\\\/code&gt;&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;If you implemented an &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/build-your-integration\\&quot;&gt;additional use case&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Parameter name&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: center;\\&quot;&gt;Required&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments#request-countryCode\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;countryCode&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The shopper&#039;s country\\\/region. This determines the banks that our partner shows to the shopper. Format: the two-letter &lt;a href=\\&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/ISO_3166-1_alpha-2\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;ISO-3166-1 alpha-2&lt;\\\/a&gt; country code. Currently, only &lt;strong&gt;US&lt;\\\/strong&gt; is supported. This is also the default if you do not include this parameter. &lt;br&gt; The &lt;code&gt;countryCode&lt;\\\/code&gt; is not required, but we recommend implementing it because of future enhancements that will allow Pay by Bank (US) payments through non-US banks.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&quot;,&quot;altTitle&quot;:&quot;advanced&quot;,&quot;oldTabId&quot;:&quot;advanced-api_2&quot;,&quot;relation&quot;:&quot;advanced&quot;}]\"\n            :should-update-when-url-changes='true'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2>Component setup<\/h2>\n<p>There is no need for additional configuration specifically for Pay by Bank (US).<\/p>\n<h3>Import the module<\/h3>\n<p>Import the library and include the module for Pay by Bank (US) as described in the Android Components integration guide, using a value depending on the Components version that you have integrated with:<\/p>\n<ul>\n<li>For <strong>v5.8.0 or later<\/strong> use <span translate=\"no\"><strong>paybybank-us<\/strong><\/span>.<\/li>\n<li>For <strong>v5.7.1 or earlier<\/strong> use <span translate=\"no\"><strong>instant<\/strong><\/span>.<\/li>\n<\/ul>\n<p>This works in the same way for both the <a href=\"\/pt\/online-payments\/build-your-integration\/sessions-flow?platform=Android&amp;integration=Components&amp;version=5.8.0#import\">Sessions flow<\/a> and the <a href=\"\/pt\/online-payments\/build-your-integration\/advanced-flow?platform=Android&amp;integration=Components&amp;version=5.8.0#import\">Advanced flow<\/a>.<\/p>\n<h3>Create the Component<\/h3>\n<p>Launch and show Pay by Bank (US) using a Component class name depending on the Components version that you have integrated with:<\/p>\n<ul>\n<li>For <strong>v5.8.0 or later<\/strong> use <span translate=\"no\"><strong>PayByBankUSComponent<\/strong><\/span>.<\/li>\n<li>For <strong>v5.7.1 or earlier<\/strong> use <span translate=\"no\"><strong>InstantPaymentComponent<\/strong><\/span>.<\/li>\n<\/ul>\n<p>Create the Component as follows:<\/p>\n\n<div id=\"tabcjuxa\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;&lt;code&gt;\\\/sessions&lt;\\\/code&gt;&quot;,&quot;content&quot;:&quot;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Default way to create the Component&#039;\\&quot; :id=\\&quot;&#039;default_component_sessions&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;kotlin\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;val paymentMethod = checkoutSession.getPaymentMethod(PaymentMethodTypes.PAY_BY_BANK_US)\\\\n\\\\nval payByBankUSComponent = PayByBankUSComponent.PROVIDER.get(\\\\n    activity = activity, \\\\\\\/\\\\\\\/ or fragment = fragment\\\\n    checkoutSession = checkoutSession,\\\\n    paymentMethod = paymentMethod,\\\\n    configuration = checkoutConfiguration,\\\\n    componentCallback = callback,\\\\n)\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Create the Component as a stored payment method&#039;\\&quot; :id=\\&quot;&#039;stored_component_sessions&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;kotlin\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;storedPaymentMethods = checkoutSession.sessionSetupResponse.paymentMethodsApiResponse?.storedPaymentMethods\\\\nval storedPaymentMethod = storedPaymentMethods?.firstOrNull { PayByBankUSComponent.PROVIDER.isPaymentMethodSupported(it) }\\\\n\\\\nval payByBankUSComponent = PayByBankUSComponent.PROVIDER.get(\\\\n    activity = activity, \\\\\\\/\\\\\\\/ or fragment = fragment\\\\n    checkoutSession = checkoutSession,\\\\n    storedPaymentMethod = storedPaymentMethod,\\\\n    configuration = checkoutConfiguration,\\\\n    componentCallback = callback,\\\\n)\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&quot;,&quot;altTitle&quot;:&quot;sessions&quot;,&quot;oldTabId&quot;:&quot;sessions-5-config_1&quot;,&quot;relation&quot;:&quot;sessions&quot;},{&quot;title&quot;:&quot;&lt;code&gt;\\\/payments&lt;\\\/code&gt;&quot;,&quot;content&quot;:&quot;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Default way to create the Component&#039;\\&quot; :id=\\&quot;&#039;default_component_advanced&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;kotlin\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;val paymentMethod = paymentMethodsApiResponse?.paymentMethods.orEmpty().firstOrNull { it.type == PaymentMethodTypes.PAY_BY_BANK_US }\\\\n\\\\nval payByBankUSComponent = PayByBankUSComponent.PROVIDER.get(\\\\n    activity = activity, \\\\\\\/\\\\\\\/ or fragment = fragment\\\\n    paymentMethod = paymentMethod,\\\\n    configuration = checkoutConfiguration,\\\\n    componentCallback = callback,\\\\n)\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Create the Component as a stored payment method&#039;\\&quot; :id=\\&quot;&#039;stored_component_advanced&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;kotlin\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;val storedPaymentMethods = paymentMethodsApiResponse?.storedPaymentMethods\\\\nval storedPaymentMethod = storedPaymentMethods?.firstOrNull { PayByBankUSComponent.PROVIDER.isPaymentMethodSupported(it) }\\\\n\\\\nval payByBankUSComponent = PayByBankUSComponent.PROVIDER.get(\\\\n    activity = activity, \\\\\\\/\\\\\\\/ or fragment = fragment\\\\n    storedPaymentMethod = storedPaymentMethod,\\\\n    configuration = checkoutConfiguration,\\\\n    componentCallback = callback,\\\\n)\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&quot;,&quot;altTitle&quot;:&quot;advanced&quot;,&quot;oldTabId&quot;:&quot;advanced-5-config_2&quot;,&quot;relation&quot;:&quot;advanced&quot;}]\"\n            :should-update-when-url-changes='true'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2>Redirect handling<\/h2>\n<p>Your Components integration handles the redirect, so you do not need to do anything additional for Pay by Bank (US).<\/p>\n<h2>Payment outcome<\/h2>\n<p>Your Components integration gets the payment outcome, so you do not need to do anything additional for Pay by Bank (US).<\/p>\n<h2>Capture<\/h2>\n<p>We strongly recommend capturing Pay by Bank (US) payments immediately, to reduce the risk of insufficient funds at the time of capture. <\/p>\n<p>Through our partner Plaid, Adyen completes the checks on the shopper's bank account, including a balance check and risk checks, at the time of authorization. However, the issuing bank does not hold the authorized funds and thus it is possible that the account balance is no longer sufficient by the time you capture the payment. For that reason, you should capture Pay by Bank (US) payments as soon as possible.<\/p>\n<p>However, even with immediate capture there is still a risk of insufficient funds at the time of capture, because capturing is an asynchronous process on the ACH Direct Debit network.<\/p>\n<h2 id=\"recurring-payments\">Recurring payments<\/h2>\n<p>Pay by Bank (US) supports tokenization of the shopper's payment details for recurring transactions.<\/p>\n<div class=\"notices red\">\n<p>We strongly recommend that you ask explicit permission from the shopper if you intend to make future recurring payments. Being transparent about the payment schedule and the amount reduces the risk of chargebacks.<\/p>\n<\/div>\n<p>To make recurring payments, refer to <a href=\"\/pt\/online-payments\/tokenization\">Tokenization<\/a> to:<\/p>\n<ul>\n<li>Create a token through the initial payment.<\/li>\n<li>Use the token in subsequent payments.<\/li>\n<li>Manage tokens.<\/li>\n<\/ul>\n<h2 id=\"test-and-go-live\">Test and go live<\/h2>\n<p>You can test the payment flow as well as the chargeback flow.<\/p>\n<p>To go live, you need to await registration with our partner Plaid.<\/p>\n<h3>Test the payment flow<\/h3>\n<p>In the test environment, the redirect flow mimics the live flow, but not all refusal reasons can be simulated.<\/p>\n<p>To test the payment flow, you can either include a specific amount in your payment request to test a specific scenario, or you can specify <strong>custom_balances<\/strong> as your username when you are redirected to confirm the payment.<\/p>\n<p>These are the scenarios you can test:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Scenario<\/th>\n<th style=\"text-align: left;\">Username<\/th>\n<th style=\"text-align: left;\">Amount<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Approved<\/td>\n<td style=\"text-align: left;\">Not required, but you can use <strong>custom_chase<\/strong>, <strong>custom_boa<\/strong>, <strong>custom_citi<\/strong>, or <strong>custom_wellsfargo<\/strong> to test different bank accounts.<\/td>\n<td style=\"text-align: left;\">USD&nbsp;3.53<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Refused with refusal reason <strong>Failed: Risk of unauthorized returns<\/strong><\/td>\n<td style=\"text-align: left;\">Not required, but you can use <strong>custom_chase<\/strong>, <strong>custom_boa<\/strong>, <strong>custom_citi<\/strong>, or <strong>custom_wellsfargo<\/strong> to test different bank accounts.<\/td>\n<td style=\"text-align: left;\">USD&nbsp;27.53<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Test custom transaction amounts with different account balances, such as high value transactions or refusals due to an insufficient balance.<\/td>\n<td style=\"text-align: left;\"><strong>custom_balances<\/strong><\/td>\n<td style=\"text-align: left;\">Any USD amount<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Entering a username is not required to test the payment flow. Tests without a username all use the same bank account from CITIZENS BANK. The <strong>custom_balances<\/strong> username allows you to select from several bank accounts with different balances. For example, if you want to test high value transactions, you can use the <strong>custom_balances<\/strong> username and select a bank account with a high balance.<\/p>\n<ol>\n<li>\n<p>Make a test Pay by Bank (US) payment using an amount from the table with scenarios or your own amount.<\/p>\n<\/li>\n<li>\n<p>When you are redirected to <strong>First Platypus Bank<\/strong>, depending on your test scenario, either enter a username or leave this field blank.<\/p>\n<\/li>\n<li>\n<p>Leave the password blank and select <strong>Continue<\/strong>.<\/p>\n<\/li>\n<li>\n<p>Check the status of test payments in your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">test Customer Area<\/a> \u00a0&gt;\u00a0<strong>Transactions<\/strong>\u00a0&gt;\u00a0<strong>Payments<\/strong>.<\/p>\n<\/li>\n<\/ol>\n<h3>Test the chargeback flow<\/h3>\n<p>The chargeback mechanism for <a href=\"\/pt\/payment-methods\/pay-by-bank-us#chargebacks\">Pay by Bank (US) chargebacks<\/a> relies on the ACH Direct Debit network. You can simulate a Pay by Bank (US) chargeback by providing a username that indicates the chargeback scenario you want to test. In the test environment, the flow goes directly to the Chargeback stage.<\/p>\n<ol>\n<li>\n<p>Send a test Pay by Bank (US) payment request.<\/p>\n<\/li>\n<li>\n<p>When redirected to <strong>First Platypus Bank<\/strong>, specify the following username:<\/p>\n<ul>\n<li>\n<p><strong>custom_chargeback_rXX<\/strong> where <strong>XX<\/strong> is the dispute reason code without the leading <strong>R<\/strong>.<br \/>\nYou can use any of the <a href=\"\/pt\/risk-management\/understanding-disputes\/dispute-reason-codes\/#ach-direct-debit\">ACH Direct Debit reason codes<\/a>.<\/p>\n<p>Example: the username <strong>custom_chargeback_r01<\/strong> triggers a chargeback with reason code R01 for <em>Insufficient Funds<\/em>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Leave the password blank and select <strong>Continue<\/strong>.<\/p>\n<\/li>\n<li>\n<p>Note that the request succeeds with <code>resultCode<\/code>: <strong>Authorised<\/strong>.<br \/>\nThe chargeback flow starts after the test payment is captured and settled.<\/p>\n<\/li>\n<li>\n<p>Wait for the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Webhooks\/latest\/post\/CHARGEBACK\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CHARGEBACK<\/a> webhook and check your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">test Customer Area<\/a> &gt; <strong>Revenue &amp; risk<\/strong> &gt; <strong>Disputes<\/strong>.<br \/>\nThe webhook and your Customer Area show a chargeback with the return reason code that you specified in the test payment request.<\/p>\n<\/li>\n<\/ol>\n<h3>Go live<\/h3>\n<p>To go live, you need to <a href=\"\/pt\/payment-methods\/add-payment-methods\/\">add Pay by Bank (US) in your live Customer Area<\/a>. Our <a href=\"\/pt\/payment-methods\/pay-by-bank-us#plaid-partner\">partner Plaid<\/a> then registers your merchant account with participating banks, including some of the largest banks in the US. The registration takes up to one business week from the moment Plaid has started the process. During this time, your shoppers cannot connect their bank account to Plaid. For this reason, you cannot accept live Pay by Bank (US) payments until the registration process is completed.<\/p>\n<p>We send you a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/ManagementNotification\/latest\/post\/paymentMethod.created\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">paymentMethod.created<\/a> webhook when you can start accepting live Pay by Bank (US) payments.<\/p>\n<h2 id=\"see-also\">See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/online-payments\/build-your-integration\/sessions-flow?platform=Android&amp;integration=Components\"\n                        target=\"_self\"\n                        >\n                    Sessions flow Android Components integration guide\n                <\/a><\/li><li><a href=\"\/online-payments\/build-your-integration\/advanced-flow?platform=Android&amp;integration=Components\"\n                        target=\"_self\"\n                        >\n                    Advanced flow Android Components integration guide\n                <\/a><\/li><li><a href=\"\/development-resources\/webhooks\"\n                        target=\"_self\"\n                        >\n                    Webhooks\n                <\/a><\/li><li><a href=\"\/online-payments\/tokenization\"\n                        target=\"_self\"\n                        >\n                    Tokenization for recurring payments\n                <\/a><\/li><li><a href=\"\/risk-management\/chargeback-guidelines\/ach-chargebacks\"\n                        target=\"_self\"\n                        >\n                    ACH Direct Debit chargebacks\n                <\/a><\/li><li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/overview\"\n                        target=\"_blank\"\n                         class=\"external\">\n                    API Explorer\n                <\/a><\/li><li><a href=\"\/development-resources\/raw-acquirer-responses#pay-by-bank-us-raw-responses\"\n                        target=\"_self\"\n                        >\n                    Pay by Bank (US) raw refusal responses\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/payment-methods\/pay-by-bank-us\/android-component","articleFields":{"description":"Add Pay by Bank (US) to an existing Android Components integration.","parameters":{"component_class_name":"openBanking","integration":"Components","integration_guide_url":"build-your-integration\/sessions-flow?platform=Android&integration=Component","platform":"Android","component_name":"the Pay by Bank Component","component_name_capitalized":"The Component","payment_method":"Pay by Bank (US)","name_short":"Pay by Bank","payment_method_type":"paybybank_AIS_DD","component_js_const":"openBanking","return_url":"https:\/\/your-company.example.com\/checkout?shopperOrder=12xy..","currency":"USD","country_code":"US","shopper_locale":"en-US","add_version":true,"version":"5.70.0","import_module_before_58":"instant","import_module":"paybybank-us","android_component_before_58":"InstantPaymentComponent","android_component":"PayByBankUsComponent"}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/payment-methods\/pay-by-bank-us\/android-component","title":"Pay by Bank (US) Android Component integration","content":"This page explains how to add Pay by Bank (US) to your existing Android Components integration.\nRequirements\nSelect the server-side flow that your integration uses:\n\n\n    \n        \n        \n    \n\n\nAPI reference\nSelect the endpoint you are using to make payments:\n\n\n    \n        \n        \n    \n\n\nComponent setup\nThere is no need for additional configuration specifically for Pay by Bank (US).\nImport the module\nImport the library and include the module for Pay by Bank (US) as described in the Android Components integration guide, using a value depending on the Components version that you have integrated with:\n\nFor v5.8.0 or later use paybybank-us.\nFor v5.7.1 or earlier use instant.\n\nThis works in the same way for both the Sessions flow and the Advanced flow.\nCreate the Component\nLaunch and show Pay by Bank (US) using a Component class name depending on the Components version that you have integrated with:\n\nFor v5.8.0 or later use PayByBankUSComponent.\nFor v5.7.1 or earlier use InstantPaymentComponent.\n\nCreate the Component as follows:\n\n\n    \n        \n        \n    \n\n\nRedirect handling\nYour Components integration handles the redirect, so you do not need to do anything additional for Pay by Bank (US).\nPayment outcome\nYour Components integration gets the payment outcome, so you do not need to do anything additional for Pay by Bank (US).\nCapture\nWe strongly recommend capturing Pay by Bank (US) payments immediately, to reduce the risk of insufficient funds at the time of capture. \nThrough our partner Plaid, Adyen completes the checks on the shopper's bank account, including a balance check and risk checks, at the time of authorization. However, the issuing bank does not hold the authorized funds and thus it is possible that the account balance is no longer sufficient by the time you capture the payment. For that reason, you should capture Pay by Bank (US) payments as soon as possible.\nHowever, even with immediate capture there is still a risk of insufficient funds at the time of capture, because capturing is an asynchronous process on the ACH Direct Debit network.\nRecurring payments\nPay by Bank (US) supports tokenization of the shopper's payment details for recurring transactions.\n\nWe strongly recommend that you ask explicit permission from the shopper if you intend to make future recurring payments. Being transparent about the payment schedule and the amount reduces the risk of chargebacks.\n\nTo make recurring payments, refer to Tokenization to:\n\nCreate a token through the initial payment.\nUse the token in subsequent payments.\nManage tokens.\n\nTest and go live\nYou can test the payment flow as well as the chargeback flow.\nTo go live, you need to await registration with our partner Plaid.\nTest the payment flow\nIn the test environment, the redirect flow mimics the live flow, but not all refusal reasons can be simulated.\nTo test the payment flow, you can either include a specific amount in your payment request to test a specific scenario, or you can specify custom_balances as your username when you are redirected to confirm the payment.\nThese are the scenarios you can test:\n\n\n\nScenario\nUsername\nAmount\n\n\n\n\nApproved\nNot required, but you can use custom_chase, custom_boa, custom_citi, or custom_wellsfargo to test different bank accounts.\nUSD&nbsp;3.53\n\n\nRefused with refusal reason Failed: Risk of unauthorized returns\nNot required, but you can use custom_chase, custom_boa, custom_citi, or custom_wellsfargo to test different bank accounts.\nUSD&nbsp;27.53\n\n\nTest custom transaction amounts with different account balances, such as high value transactions or refusals due to an insufficient balance.\ncustom_balances\nAny USD amount\n\n\n\nEntering a username is not required to test the payment flow. Tests without a username all use the same bank account from CITIZENS BANK. The custom_balances username allows you to select from several bank accounts with different balances. For example, if you want to test high value transactions, you can use the custom_balances username and select a bank account with a high balance.\n\n\nMake a test Pay by Bank (US) payment using an amount from the table with scenarios or your own amount.\n\n\nWhen you are redirected to First Platypus Bank, depending on your test scenario, either enter a username or leave this field blank.\n\n\nLeave the password blank and select Continue.\n\n\nCheck the status of test payments in your test Customer Area \u00a0&gt;\u00a0Transactions\u00a0&gt;\u00a0Payments.\n\n\nTest the chargeback flow\nThe chargeback mechanism for Pay by Bank (US) chargebacks relies on the ACH Direct Debit network. You can simulate a Pay by Bank (US) chargeback by providing a username that indicates the chargeback scenario you want to test. In the test environment, the flow goes directly to the Chargeback stage.\n\n\nSend a test Pay by Bank (US) payment request.\n\n\nWhen redirected to First Platypus Bank, specify the following username:\n\n\ncustom_chargeback_rXX where XX is the dispute reason code without the leading R.\nYou can use any of the ACH Direct Debit reason codes.\nExample: the username custom_chargeback_r01 triggers a chargeback with reason code R01 for Insufficient Funds.\n\n\n\n\nLeave the password blank and select Continue.\n\n\nNote that the request succeeds with resultCode: Authorised.\nThe chargeback flow starts after the test payment is captured and settled.\n\n\nWait for the  CHARGEBACK webhook and check your test Customer Area &gt; Revenue &amp; risk &gt; Disputes.\nThe webhook and your Customer Area show a chargeback with the return reason code that you specified in the test payment request.\n\n\nGo live\nTo go live, you need to add Pay by Bank (US) in your live Customer Area. Our partner Plaid then registers your merchant account with participating banks, including some of the largest banks in the US. The registration takes up to one business week from the moment Plaid has started the process. During this time, your shoppers cannot connect their bank account to Plaid. For this reason, you cannot accept live Pay by Bank (US) payments until the registration process is completed.\nWe send you a  paymentMethod.created webhook when you can start accepting live Pay by Bank (US) payments.\nSee also\n\n\n                    Sessions flow Android Components integration guide\n                \n                    Advanced flow Android Components integration guide\n                \n                    Webhooks\n                \n                    Tokenization for recurring payments\n                \n                    ACH Direct Debit chargebacks\n                \n                    API Explorer\n                \n                    Pay by Bank (US) raw refusal responses\n                \n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Payment methods","lvl2":"Pay by Bank (US)","lvl3":"Pay by Bank (US) Android Component integration"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/payment-methods","lvl2":"https:\/\/docs.adyen.com\/pt\/payment-methods\/pay-by-bank-us","lvl3":"\/pt\/payment-methods\/pay-by-bank-us\/android-component"},"levels":4,"category":"Payment method","category_color":"green","tags":["Android","Component","integration"]}}
