Before you begin
This guide assumes that you know how to:
Accept payments with Stripe ACH
Prepare the API
Stripe ACH requires the following data to process a payment successfully. Pass the following data in the client session, or in the payment request (for manual payment creation).
Parameter Name | Required | Description |
---|---|---|
3-letter currency code in ISO 4217 format. For Stripe ACH only USD is supported. | ||
Details of the line items of the order | ||
In order to have Stripe ACH successful, you need to pass your device info: IP address and user agent in the metadata.
|
Prepare the SDK for payments
Handle payment method
Stripe ACH requires instance of Redirect Manager in order to be presented to the user:
1
const manager = await headless.createPaymentMethodManager('STRIPE_ACH')
STRIPE_ACH
must be returned as PaymentMethod.type
in the onAvailablePaymentMethodsLoad
callback.
When the user has selected the payment method, call the start
function. This function automatically:
- opens a popup to present a loading indicator, then the payment method web page
- shows an overlay on top of your page that prompts the user to focus on the popup
123
myButton.addEventListener('click', () => { manager.start()})
This code is intended solely for illustrative purposes. As many redirect payment methods share a common approach, it is recommended to centralize the implementation of these methods within your codebase. For a practical demonstration of how to achieve this, please refer to the guide on how to handle payment methods with redirect.
Test
You can test payments using USD as the currency.
Sandbox testing
- After selecting the payment method button in the Checkout, the page will navigate to a form
- After you complete the form, the Stripe pop-up will appear
- After finishing the steps inside the Stripe pop-up, the user will be taken back to the Checkout to confirm / decline mandate
- At the end of this flow, the payment status will be first
PENDING
in the Primer Dashboard and depending on the user actions or external factors, like insufficient funds in the bank account, it will be eitherDECLINED
,CANCELLED
orSETTLED
for successful completion in Primer Dashboard - To simulate the receiving of funds and transition the payment to
SETTLED
, you can choose in the Stripe pop-up:Test Institution
andSuccess
account in the next screen. Next you will be taken back to Checkout to confirm the mandate. Primer will receive a webhook and subsequently update the payment toSETTLED
.
Go live
You don’t need to do anything particular to go live — just make sure to use production credentials.