How to Integrate Stripe ACH With Jotform

December 6, 2023

Automated Clearing House (ACH) payments allow you to receive payments directly from a customer’s bank account instead of using credit or debit cards. ACH payments are provided with lower fees than card payments but require additional payer verification and introduce longer delays of payment and refund.

Stripe logo

With Stripe ACH, you can do the following:

  • Sell online products
  • Sell merchandise
  • Collect donations online
  • Accept custom payments

Stripe supports ACH payments, and you can integrate it through your form. Stripe used Plaid for bank account verification to get ACH payments.

What is Plaid?

ACH payments require a verification process for the payer’s bank accounts. Plaid allows payers to instantly verify their bank accounts, allowing you to charge them immediately. The verified bank account is used by Stripe later for the charging process.

How to Add and Set Up Stripe ACH in the Form?

Setting up Stripe ACH is relatively easy. Here’s how:

  1. In Form Builder, click the Add Form Element button on the left side of the screen.
  2. Go to the Payments tab.
  3. Click Stripe ACH from the list. You can also drag and drop it to add.
Jotform Form Builder with the Add Form Element button, Payments tab and Stripe ACH gateway
  1. In the Payment Settings, set up the following options:
Payment settings window of the Stripe ACH integration showing the Stripe Secret API Key, Plaid Client ID and Secret Key, and the Plaid Signing Secret Key
  1. Choose your Payment Type. With Stripe ACH, you can sell products, collect donations, or allow user-defined amounts.
  2. Under Additional Gateway Settings, choose the appropriate Environment:
    • Sandbox
    • Development
    • Production
Additional gateway settings of the Stripe ACH integration with the dropdown selector for the Stripe ACH environment

Visit the following article from Plaid for the difference between these environments.

  1. If you choose Sell Products from the Payment Type, click the Continue button to add your product items. Otherwise, click the Save button to complete the integration.

See also:

How Does Plaid’s Bank Account Verification Work with Jotform?

Your customers must choose their bank, authenticate, and select an account as a funding method. Once done, they can submit the form. See the below short GIF for the payment flow:


Enabling Stripe with Plaid

The main requirement in setting up the integration is ensuring that you have Stripe enabled with Plaid. Below are the steps to do that:

  1. In your Plaid dashboard, click the Team Settings from the main navigation.
  2. Click the Integrations options.
  3. Look for Stripe, and click the Connect button.
Dashboard of Plaid showing the Team Settings menu with the Integrations option in it
  1. Complete all the details that Plaid requires, and once your Stripe account is connected, you’ll see On text instead of the default Off, which means you’ve successfully enabled it.
Dashboard of Plaid showing Stripe that is enabled through the Integrations section

Getting the Client ID and Secret Key from Plaid

After enabling Stripe, get your Plaid keys by following the steps below:

  1. Click the Team Settings from your Plaid dashboard navigation.
  2. Choose Keys from the list of options.
  3. Copy both the Client ID and Secret Key
Team Settings screen of Plain user's dashboard showing the API and Secret keys

Note:

Copy the Sandbox Secret if you plan on setting up the integration in a Sandbox environment. Otherwise, copy the Development Secret.

Getting the Secret API Key from Stripe

You can access the Developers section and get the Secret API key by following the steps below:

  1. In your Stripe dashboard, search and click for the Developers option.
  2. Go to the API Keys section.
  3. Reveal the Secret Key and copy it.
Stripe developers section showing the API keys

Note:

Toggle your API Keys to test data and copy the Test Secret Key if you want to test Plaid in a sandbox environment.

Adding Jotform’s Endpoint URL to Stripe

The last critical thing you must do is to add an Endpoint URL to your Stripe Webhook settings. It tells the status of each payment from Pending to Succeeded between Jotform and Stripe. Without it, your form will always record the payments as Pending.

  1. In your Stripe dashboard, go to the Developers page.
  2. Click Webhooks from the list of options.
  3. Click the Add an endpoint button.
The Webhook section of Stripe with a a button to Add an endpoint
  1. Next, add and select the following:
    • Endpoint URL — You must enter https://ipn.jotform.com/ipns/stripeACH_Plaid.php as the endpoint URL.
    • Description — You can add an optional description of what the endpoint is all about.
    • Listen to — We suggest keeping this to default; Events on your account.
    • Version — Keep the default.
    • Select events to listen to — Jotform’s endpoint URL only needs the charge.succeeded event.
The Endpoint settings window with the box to input the Endpoint URL, Description, a selector to choose an event, API version, and the Stripe events to listen
  1. Click the Add endpoint button to save the settings, and that’s it.

Getting the Plaid Signing Secret Key

For additional security, you must also obtain the Plaid Signing Secret Key. The Stripe ACH integration requires this as well.

After saving the endpoint URL, you will see the Signing secret on the main Webhook dashboard. Click the Reveal link, and copy the key.

The webhook screen of Stripe dashboard showing the Signing secret
Contact Support:

Our customer support team is available 24/7 and our average response time is between one to two hours.
Our team can be contacted via:

Support Forum: https://www.jotform.com/answers/

Contact Jotform Support: https://www.jotform.com/contact/

Send Comment:

Jotform Avatar
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Comments:

  • neal holden - Profile picture
  • adriancathcartjames - Profile picture
  • nomappla - Profile picture
  • jamessanders - Profile picture
  • Bryan - Profile picture