Stripe ACH can be used to accept direct debit transactions from US bank accounts.
Overall, the interaction with Stripe is fairly similar to the Stripe credit card integration, in that you’re working to create a Stripe PaymentIntent & tie a Stripe PaymentMethod to it. In this case, we have an ACH-based PaymentMethod, instead of a credit-card-based PaymentMethod.
With ACH, there are a few unique aspects that we must account for:
ACH only supports AuthorizeAndCapture
and Refund
transactions.
As part of providing the bank account details (i.e. creating a Stripe PaymentMethod), the customer must approve a mandate, granting your business approval to debit their account.
To satisfy Nacha’s account validation rules, Stripe provides two forms of account verification: instant verification & micro-deposit verification.
Note: In many ways, micro-deposit verification is similar to 3DS verification for credit cards.
Transaction results are always provided asynchronously.
This applies for both AuthorizeAndCapture
and Refund
transactions.
See the Checkout Payment Architecture documentation to get a better sense of how we handle checkout submissions when payment transaction results are provided asynchronously.
This causes webhooks to play a key role in understanding transaction results.
By default, it takes 4 business days to complete a transaction, but Stripe also allows you opt-into two-day settlement via their dashboard.
ACH interactions require a few additional email communications with the customer.
When the ACH mandate is approved, an email is sent to the customer serving as confirmation of the mandate’s approval.
When micro-deposit verification is required, the customer is provided a link where they can input the transaction descriptor code or amounts.
If the asynchronous ACH transaction fails, then the customer should be notified of the failure.
To prepare your environment to execute ACH transactions with Stripe, please follow the ACH environment setup guide.
For details on the frontend integration, please follow the Stripe ACH Frontend Integration guide.
Stripe has the ability to facilitate the mandate approval email & they provide a hosted micro-deposit verification page. With that being said, you’re not given any control over the look & feel or messaging of these interactions.
To provide more of a white-glove experience, Stripe also gives you the option to send your own mandate approval emails & provide your own micro-deposit verification page.
To get a better sense of how to achieve these customizations with Broadleaf, take a look at the White-glove Experience guide.
Via Stripe, you’re able to store ACH payment methods for future use, either via the user’s My Account section or as part of the checkout process. See the Stripe ACH Frontend Integration guide for more details on how this can be done.