Skip to main content

Get started with ACH via Stripe

Before you begin

If this is your first payment method, make sure to follow the Get started guide to begin processing payments with Primer.
ACH via Stripe needs to be enabled for your account. Contact your account manager or Primer Support before you offer this payment method.

Configure in the Dashboard

  1. Add Stripe to your Dashboard
    Go to the Integrations section of the Dashboard and look for Stripe.
    Follow the instructions to connect your Stripe account to your Primer Dashboard. Make sure ACH is selected for your Stripe connection.
  2. Activate ACH on the Checkout
    Go to the Checkout section of the Dashboard and activate the ACH payment method.
  3. Configure a Workflow to process payments made with Stripe ACH
    Go to Workflows, and ensure there is a workflow with the Authorize payment action configured to process APM payments.

Prepare the client session

ACH via Stripe leverages the following parameters to process a payment. Pass them when creating the client session.
If Stripe rejects the payment after the shopper accepts the mandate, for example because metadata.deviceInfo or part of the billing address is missing, the payment stays PENDING and the shopper sees a success screen. Test your client session in sandbox and check that payments settle.

Vault the bank account

To save the bank account for future payments, set vaultOnAgreement when creating the client session. The bank account is vaulted when the shopper accepts the mandate.
paymentType: "FIRST_PAYMENT" is optional. Set it if you plan to charge the saved bank account without the shopper present, for example for subscriptions. Paying with a saved bank account doesn’t open Stripe’s modal or ask the shopper to accept the mandate again.

Payment status

ACH payments take several business days to settle. After the shopper accepts the mandate, the payment is PENDING and the checkout shows a success screen. The payment moves to SETTLED or FAILED when Stripe reports the outcome, for example if the account has insufficient funds. Use payment status webhooks to get the final status.

Add ACH via Stripe into your website or mobile app

When using Primer Checkout, set stripe.publishableKey and stripe.mandateData in the SDK options. ACH is not shown without them.

Drop-in UI

Use our customizable drop-in UI to quickly add payment methods to your checkout.

Headless Checkout

Have the freedom to build your own UI using our headless checkout.