Pay by bank with validated ACH
Pay by bank with validating ACH payments in real-time when processing payments
ACH payments are online payments that move funds to a merchant from a user's bank account. ACH validation is the process of validating a user's bank account to help avoid data entry errors and reduce fraud when a user wants to pay by bank. In the Rainforest ecosystem, we refer to this type of payment as a Validated ACH.
Rainforest utilizes a third-party partner, Plaid, for real-time validation by requesting the user authenticate into their online bank account to collect the bank account information. This ensures the bank account is active and the user was able to successfully authenticate with their bank account credentials.
Configure the merchant
Sandbox
In the Rainforest Sandbox environment, the Validated ACH Payment flow is automatically enabled. This guide will walk you through how to configure your Payment Component to accept Validated ACH payments.
Production
In the Rainforest Production environment, Rainforest will need to enable this feature for your platform and merchants. Once you're ready to enable in Production, reach out to [email protected] and Rainforest will help your with your merchant's billing profile setup and enabling ACH Validation for your merchants.
Set the ACH validation fee
An ACH validation fee is applied when storing the payment method, which occurs when using the Payment Component to process a payment or store a payment method. ACH validation fees can be passed onto the merchant via the merchant billing profile. See the billing merchants section for additional information on how the ACH validation fee is billed to the merchant.
We can update the ACH validation fee on an existing billing profile that currently has the ACH validation fee set to $0. Or head over to the Rainforest Platform Portal to create a new billing profile with an ACH validation fee.
Enable the merchant
Let us know if you'd like to enable the Validated ACH payment method option for a specific merchant or for all your merchants and any merchants onboarded going forward.
The payment component must still be configured to display the Validated ACH payment method option to your user.
Configure the payment component
Plaid compatibility
If you use a Content Security Policy (CSP), you will need to add the following directives to allow Plaid, the third-party partner, to run on your page:
default-src https://cdn.plaid.com/
script-src https://cdn.plaid.com/
frame-src https://cdn.plaid.com/
connect-src https://production.plaid.com/
Enable the Validated ACH method
When rendering the Payment Component, add VALIDATED_ACH
to the list of allowed-methods
:
<rainforest-payment
session-key='REPLACE_ME'
payin-config-id='REPLACE_ME'
- allowed-methods="CARD,ACH"
+ allowed-methods='CARD,ACH,VALIDATED_ACH'
></rainforest-payment>
Rainforest will display the Validated ACH payment method option, if it is enabled and configured for the merchant. If you do not see the Validated ACH payment method, reach out to support to confirm the merchant is enabled.
Customize the component
Head over to the Component Studio for more attributes you can provide to customize the component's appearance and behavior.
Embedded
The default display is an embedded search. After choosing their bank, the Plaid modal will popup for the user to authenticate with their bank account. When Validated ACH is an available payment method option, it will be preferred over entering bank account details manually.
Button
The other display option is a "Connect with bank login" button that will popup the Plaid modal for the user to authenticate with their bank account.
When rendering the Payment Component, set the validated-ach-view
prop to BUTTON
:
<rainforest-payment
session-key='REPLACE_ME'
payin-config-id='REPLACE_ME'
allowed-methods='CARD,ACH,VALIDATED_ACH'
+ validated-ach-view='BUTTON'
></rainforest-payment>
Customize the Connect with bank login button
By default, the "Connect with bank login" button color will be the inverse of the style-button-color
prop. You can customize the button with the following props:
style-secondary-button-color
- sets the fill color of the buttonstyle-secondary-button-font-color
- sets the font color within the button
Default account purpose
The account purpose will be set to Personal by default when rendering the Payment Component. To change the default to Business, add the field-defaults
prop and set it to the following:
<rainforest-payment
session-key='REPLACE_ME'
payin-config-id='REPLACE_ME'
allowed-methods='CARD,ACH,VALIDATED_ACH'
+ field-defaults='{"ach": {"account_holder_type": "BUSINESS"}}'
></rainforest-payment>
Event listeners
If Validated ACH is requested via the allowed-methods
prop, we'll let you know if it is supported and available for the specified merchant via events.
The loaded
event will return a payload in the following format:
type ValidatedACHPartner = 'PLAID';
type LoadedPayload = {
apple_pay: {
is_supported: boolean;
};
validated_ach: {
partner: Nullable<ValidatedACHPartner>;
is_supported: boolean;
};
};
Listen to this event and parse the event data to know if Validated ACH is supported:
const component = document.getElementById('payment-component');
component.addEventListener('loaded', function (data) {
if (data.detail[0].validated_ach.is_supported) {
console.log('Validated ACH is supported!');
}
});
Handle the new payment method type
Payments processed via Validated ACH will be represented in the API as a separate type of payment method.
Check if you have any code that looks at a Rainforest Payin
or PaymentMethod
and gets data from the ach
sub-object. For a Validated ACH payment, the following will be different:
method_type
will bePLAID_ACH
ach
will benull
plaid_ach
will be populated with relevant information on the payment method
{
// ...
"method_type": "PLAID_ACH",
"ach": null,
"plaid_ach": {
"account_number_last_4": "0000",
"routing_number": "091000022",
"bank_name": "US BANK",
"account_type": "CHECKING",
"account_holder_type": "PERSONAL"
}
}
Validated ACH payments in reports
There will be two indicators in reporting if a payment was processed with a Validated ACH payment method.
- The payment method icon includes a check mark indicating it was validated.
- The Related info section includes an "ACH Validation" field that indicates the third-party partner, Plaid, utilized for validation.
Saving a payment method
To support the Validated ACH payment method option when saving a payment method with the Payment Component, you need to set the billable_merchant_id
when creating a payment method config. This is required for billing if the ACH validation fee should be passed on to the merchant. The payment method can still be utilized across merchants on your platform after it's been stored.
This field is required on the Rainforest API version 2024-10-16. If your integration is on the latest version, there are no changes you need to make.
Upgrade your API version
If your integration is not on the latest API version, 2024-10-16, we highly encourage you to upgrade to get access to new features Rainforest has released. However, the Validated ACH payment method can be supported on earlier versions, but requires the
billable_merchant_id
field to be set when creating a payment method config.
Billing merchants
When a Validated ACH payment method is created, there is a one time ACH validation fee that can be passed onto the merchant via the merchant billing profile. After this the Validated ACH payment method can be used for recurring payments without an additional fee for validation.
In the merchant's daily funding deposit, an adjustment will be included for all Validated ACH payment methods created the day before with an 11pm daily cutoff.
For example, the merchant's deposit on December 19, 2024 would include an adjustment for the ACH payment methods created between December 17th 11:00pm ET and December 18th 11:00pm ET.
Updated 3 days ago