Stripe Payment Module for WordPress Forms | Ninja Forms

Ninja Forms +
Stripe

Accept Stripe payments on your WordPress forms with credit cards, Apple Pay, Google Pay, ACH, and recurring billing.

The Stripe payment module for Ninja Forms connects your Stripe account to any WordPress form. Accept credit cards, Apple Pay, Google Pay, ACH bank transfers, and more through Stripe’s secure payment infrastructure. Whether you need a simple checkout form, a subscription signup, or a donation page with custom amounts, this Stripe WordPress plugin handles it from a single drag-and-drop interface.

With the Stripe add-on, you can:

Multiple Payment Methods
Accept credit cards, Apple Pay, Google Pay, ACH, and more through Stripe.
Flexible Pricing
Fixed amounts, calculated totals, or let customers enter their own.
Recurring Billing
Set up Stripe subscriptions with optional trial periods.
Product Details
Pass product names, images, and custom metadata to Stripe.
Test Mode
Validate payments with Stripe test credentials before going live.
PCI Compliant
Card data handled securely by Stripe, not your server.
Discount Codes
Apply coupon codes to reduce payment amounts at checkout.
Payment Confirmations
Automatic receipts and payment notifications on every transaction.

Key Features of the Stripe Add-on

Accept credit cards, digital wallets, and bank transfers

The Stripe add-on supports every payment method available in your Stripe account. Credit cards, debit cards, Apple Pay, Google Pay, ACH bank transfers, SEPA Direct Debit, iDEAL, Sofort, and more are all available depending on your Stripe account configuration. Customers see only the payment methods you choose to enable.

Choose between card-only mode for a streamlined checkout or all-methods mode to offer every payment option your Stripe account supports. Either way, transactions process through Stripe’s secure payment gateway and appear in your Stripe Dashboard alongside all your other Stripe activity.

wordpress stripe checkout form payment methods

Configure flexible pricing and discount codes

Set your payment amount using four methods: a fixed price, a calculated total based on form field selections, a value pulled from a specific form field, or a recurring subscription plan. For donations, tips, or variable-price services, let customers enter their own payment amount directly on the form.

Apply discount codes to reduce payment totals at checkout. Combine flexible pricing with Ninja Forms’ calculation fields to build dynamic pricing logic that adjusts automatically based on what customers select.

One-time and recurring Stripe payments

The Stripe add-on supports both one-time charges and recurring subscriptions from the same WordPress form.

One-time payments work for product sales, event fees, service charges, and donations. Set a fixed price, calculate the total from form selections, or let the customer enter a custom amount. Each transaction processes immediately through Stripe and appears in your Dashboard.

Recurring payments connect to Stripe subscription plans you configure in your Stripe Dashboard. Create a subscription plan in Stripe, then reference its Plan ID in the Stripe action. For forms that offer multiple subscription tiers, use a Select field to let customers choose their plan, with each option mapped to a different Stripe subscription.

Add optional trial periods so customers can try before they commit. Stripe manages the billing cycle automatically: after the initial form submission, renewals process in the background without requiring the customer to return to your site. View, modify, pause, or cancel subscriptions directly from your Stripe Dashboard.

Customize product details for every transaction

Pass product names, descriptions, images, and custom metadata to Stripe with every transaction. Your Stripe Dashboard displays the full context of each payment, not just a dollar amount. Include a product image URL, a custom description, and key-value metadata pairs that map to your own tracking needs.

Product detail fields in the Stripe payment action showing product name, description, image URL, and metadata

Stripe merge tags like {stripe:chargeID} and {stripe:customerID} let you reference transaction details in email notifications and success messages. This makes it easy to include specific payment information in every customer communication.

Send payment confirmations automatically

Trigger confirmation emails to customers and notification emails to your team when a payment succeeds. Combine Ninja Forms’ email notification actions with Stripe merge tags to build custom receipts that include the charge ID, last four card digits, card type, and customer ID alongside your form’s submission data.

Provide a customer email address to Stripe so customers also receive Stripe’s built-in payment receipts. Between Ninja Forms email actions and Stripe’s own receipt system, every successful transaction can generate confirmations for both sides of the payment.

Test payments with Stripe test mode

Validate your payment forms using Stripe’s test mode before accepting real transactions. Enter your Stripe test API keys in the Ninja Forms settings, process test transactions with Stripe’s test card numbers, and confirm that your form logic, pricing calculations, and confirmation emails work correctly.

When everything checks out, switch to your live API keys and start processing real payments. Test mode lets you build and verify your entire payment workflow without risking real charges or exposing customers to an unfinished form.

Start Accepting Stripe Payments Today

The Stripe add-on is included with any Ninja Forms membership, or available as a standalone purchase. Pick your plan above and connect your Stripe account to WordPress in minutes.

Priority email support and 14-day money-back guarantee included.

Build Stripe Web Forms Without Code

Every Stripe payment starts with a form. The Stripe add-on turns Ninja Forms’ drag-and-drop builder into a Stripe web form creator. Drag fields onto the canvas, add a Stripe action, configure your pricing, and publish. No custom development, no shortcode configuration, no separate checkout page required.

Stripe web forms built with Ninja Forms are accessible to anyone who can use a drag-and-drop editor. Collect billing information alongside any other data your form needs: contact details, shipping addresses, product preferences, or custom questions. Every field you add works seamlessly with the Stripe payment action.

Your Stripe payment form integrates with every Ninja Forms feature. Add email notifications, success messages, or redirect actions that fire after a successful payment. Map form fields to Stripe metadata so every transaction in your Stripe Dashboard carries the full context of what was purchased and who purchased it.

PCI Compliant Payment Processing

Accepting credit cards online means handling sensitive card data responsibly. The Stripe add-on routes payment processing through Stripe’s PCI-certified infrastructure, so card numbers, expiration dates, and security codes never touch your WordPress server.

Stripe handles encryption, tokenization, and compliance on their end. Your site needs an SSL certificate and TLS 1.2 for live payment processing, which most modern WordPress hosts include by default. To your visitors, the payment experience feels seamless. Behind the scenes, Stripe manages the security so you do not need to obtain your own PCI certification.

The add-on also supports Strong Customer Authentication (SCA) and 3D Secure card payments, meeting EU payment regulations for additional transaction verification. If a payment fails due to an expired card, insufficient funds, or a declined transaction, the form displays a clear error message and lets the customer try again without losing the rest of their form data.

Common Use Cases

  • Sell products and services without a full ecommerce setup: Collect payment for individual products, consulting packages, or one-time services directly through a form. No shopping cart or ecommerce plugin required.
  • Collect donations and fundraise online: Let supporters choose a preset amount or enter their own. Offer multiple payment methods through Stripe to remove friction from giving.
  • Bill clients on a recurring schedule: Set up Stripe subscriptions for membership dues, monthly retainers, or SaaS billing. Stripe handles renewals automatically after the initial form submission.
  • Register and charge attendees for events: Collect attendee details and process registration fees in one form. Pair fixed pricing with discount codes for early-bird or group rates.
  • Accept payments alongside complex form data: Combine payment collection with additional form fields, conditional visibility rules, or multi-step workflows. The Stripe add-on works with other Ninja Forms add-ons to handle payment as part of a larger data collection process.

Your Customers Are Ready to Pay

Give them a fast, secure checkout experience on your WordPress forms. The Stripe payment module handles credit cards, digital wallets, bank transfers, and recurring billing in one add-on.

Choose a membership or individual plan above and start processing Stripe payments today.

Every purchase backed by priority email support and a 14-day money-back guarantee.

Frequently Asked Questions

How do I add Stripe to a WordPress form?

Install the Stripe add-on for Ninja Forms and enter your Stripe API keys in the Ninja Forms settings. Then open any form in the builder, add the Collect Payment action, and configure your pricing. You can test transactions using Stripe’s test mode before accepting real payments. The entire setup takes just a few minutes with no coding required.

What payment methods does the Stripe add-on support?

The Stripe add-on supports every payment method available in your Stripe account, including credit cards, debit cards, Apple Pay, Google Pay, ACH bank transfers, SEPA Direct Debit, iDEAL, and Sofort. Choose between card-only mode or all-methods mode. You control which methods are active, and customers see only the options you enable.

Can I accept recurring payments with Stripe on WordPress?

Yes. The Stripe add-on connects to subscription plans you create in your Stripe Dashboard. Reference a Plan ID in the Collect Payment action to set up recurring billing. You can add optional trial periods, and Stripe handles renewals automatically after the initial form submission.

Is the Stripe payment form PCI compliant?

Yes. The Stripe add-on routes payment processing through Stripe’s PCI-certified infrastructure. Credit card numbers, expiration dates, and security codes are handled entirely by Stripe and never stored on or passed through your WordPress server. Your site needs an SSL certificate for live payments, which most WordPress hosts include.

Can I test Stripe payments before going live?

Yes. Enter your Stripe test API keys to process test transactions. You can verify form behavior, payment logic, and confirmation emails using Stripe’s test card numbers without processing real charges. Switch to your live API keys when you are ready to accept real payments.

Does the Stripe add-on support discount codes and custom amounts?

Yes. You can apply discount codes to reduce payment totals at checkout. For donations, tips, or variable pricing, let customers enter their own payment amount directly on the form. You can also set calculated totals based on form field selections, or fixed amounts for specific products and services.

Changelog

3.2.8 (19 November 2024)

Bug Fixes:

  • Submit subscription payments when mapping the Email in the Stripe Action

3.2.7 (20 May 2024)

Bug Fixes:

  • Prevent deprecated dynamic property warning
  • Create customer if email is set in action

Other:

  • Add filter hook to payment creation params
  • Update workflows

3.2.6 (14 September 2023)

Bug Fixes:

  • Ensure metadata updates in submission
  • Add wallet type by link
  • Get status from payment intent

Other:

  • Update testing infrastructure
  • Add logger
  • Update credit card removal filter
  • Add version check to require NF 3.6.0

3.2.5 (11 April 2023)

Bug Fixes:

  • Remove incorrectly registered endpoint

3.2.4 (08 March 2023)

Bug Fixes:

  • Ensure autoloader is included before calling

Other:

  • Update form template to use current form build best practice

3.2.3 (8 February 2023)

Bug Fixes:

  • Prevent null object from throwing error

3.2.2 (19 October 2022)

Bug Fix

  • Remove parameter that causes fatal error in older Stripe API versions

3.2.1 (4 October 2022)

New Features:

  • Add new payment methods – wallets, bank transfers
  • Enable use of new Stripe API version 01/22

3.1.4 (7 March 2022)

Bugs:

  • Update library for PHP 8
  • Add metabox to new core submissions page

3.1.3 (25 September 2019)

Bugs:

  • Resolved an issue that was causing a conflict with our PayPal Express add-on accepting payments on the same form.

Changes:

  • Added a trial period setting for subscriptions in the Stripe action. This is to resolve Stripe\’s support deprecation of trial periods defined on plans.

3.1.2 (16 September 2019)

Bugs:

  • Stripe associated merge tags should now be working properly in actions.
  • Product descriptions now properly save on Stripe\’s end.
  • Resolved an issue that was causing live transactions to display as test data in the submission editor.
  • Forms should now properly complete after payment on forms that do not have a store submission action.
  • Resolved an issue that sometimes caused an Invalid Positive Integar error on form submission.

3.1.1 (14 August 2019)

Bugs:

  • Cancelling a payment should now properly redirect you back to the form.
  • Resolved an issue that was sometimes causing the API key modal to open in the builder when adding other actions to the form.

3.1.0 (13 August 2019)

Changes:

  • Updated to the new Stripe Checkout.

3.0.22 (8 May 2019)

Bugs:

  • The checkout modal should now work when multiple instances of the same form exist on a page.

3.0.21 (4 February 2019)

Bugs:

Resolved an issue that sometimes caused Stripe to fire when it should have been conditionally disabled.

3.0.20 (11 January 2019)

Bugs:

  • The Stripe action should no longer throw an error when previewing an unpublished form.
  • Resolved an issue that was preventing Stripe from loading on forms where Save Progress was enabled.

3.0.19 (5 July 2018)

Bugs:

  • Resolved an issue that sometimes caused inactive Stripe actions to still be processed on submit.
  • Using Conditional Logic to select which Stripe action to fire should now work properly.

3.0.18 (1 May 2018)

Bugs:

  • Recurring payments should now process, even if an email address is only specified in the Checkout modal.

3.0.17 (26 April 2018)

Changes:

  • Stripe API key settings should now be in the same order as they appear in the Stripe dashboard.
  • Added a new form template for making a basic payment.

Bugs:

  • Resolved an issue that was sometimes causing the Checkout modal to not open properly upon submission.

3.0.16 (17 April 2018)

Bugs:

  • Resolved an issue that sometimes caused the Checkout modal to not open for actions setup with recurring payment plans.
  • Form currency settings should now be honored by the Checkout modal pay button.

3.0.15 (26 March 2018)

Changes:

  • The display of shipping address settings can now be toggled on and off in the form builder.
  • The total can now be displayed in the payment button of the Checkout modal by using {{amount}}.
  • Added a link to Stripe API settings from the form builder for quick reference.
  • Bitcoin has been removed from the payment options. (If you already have this feature enabled, it will continue to function until you either turn it off or Stripe ends support for it on April 23, 2018.)
  • Added Stripe to the list of actions as an alias for collect payment to help avoid confusion.

Bugs:

  • Stripe should no longer fire an action when the payment total is 0.

3.0.14 (26 February 2018)

Changes:

  • Failed payments should now be more obvious in submission records.
  • Refined the look and feel of the new API key helper.

3.0.13 (12 February 2018)

Changes:

  • Metadata now attaches to the customer record for recurring payments.
  • Added shipping address mapping for the Stripe action.
  • Stripe Checkout button can now be customized.
  • An email field on the form can now be used to autopopulate the email field in Stripe Checkout.
  • Added an API key helper to the form builder for first time Stripe action setup.
  • Credit card fields have been deprecated in favor of the Sripe Checkout payment method.
  • Admin settings for Stripe Checkout should now better reflect their intention.

Bugs:

  • All Stripe errors should now be caught on failed submissions.

3.0.12 (17 January 2018)

Bugs:

  • Resolved an issue that sometimes caused metadata settings to lose track of what fields were mapped to them.

3.0.11 (02 August 2017)

Bugs:

  • Stripe should now work properly with the Save Progress add-on.
  • Stripe API keys should no longer be removed upon form import.
  • Upgrading to version 3.0 should now populate the payment total of the Collect Payment action properly.

3.0.10 (12 July 2017)

Changes:

  • Added merge tags for Last 4, Card Brand, Customer ID, and Charge ID.
  • Form errors should now prevent the Stripe Checkout Modal from appearing.

3.0.9 (31 May 2017)

Changes:

  • Added the option to send arbitrary metadata to Stripe in the Collect Payment action settings.

3.0.8 (02 May 2017)

Changes:

  • Transaction ID should now be appended to CSV exports and attachments.

Bugs:

  • Fixed a bug that caused submission processing to fail when using Stripe.

3.0.7 (02 March 2017)

Bugs:

  • Fixed a bug that could cause Stripe to crash on old versions of PHP.

3.0.6 (01 March 2017)

Changes:

  • Added support for Stripe Checkout. If you do not add credit card fields to your form, Stripe Checkout will be used.
  • Stripe can now be used with Conditional Logic.

3.0.5 (20 December 2016)

Bugs:

  • Fixed a bug that could cause Stripe Errors to be reported incorrectly to the user.

3.0.4 (01 November 2016)

Bugs:

  • Fixed a bug with card errors blocking re-submission.
  • Fixed a bug with using the plugin default currency.

3.0.3 (04 October 2016)

Bugs:

  • Conditionally hiding credit card fields should prevent Stripe from processing.

3.0.2 (06 September 2016)

  • Updating to v3.0.2 for compatibility fix.

3.0.1 (06 September 2016)

Bugs:

  • Fixing a bug with currency settings for Ninja Forms Three.

3.0.0 (10 August 2016)

  • Updated with Ninja Forms v3.x compatibility
  • Deprecated Ninja Forms v2.9.x compatible code

1.0.10 (09 September 2015)

Changes:

  • Customers should now be created in Stripe after their charge.

1.0.9 (08 September 2015)

Bugs:

  • Fixed a bug that could cause multiple Stripe enabled forms to fail if they were on the same page.

1.0.8 (12 May 2015)

Bugs:

  • Fixed a bug that could cause failed transactions to prevent future transactions from resolving properly.

Changes:

  • Changed the position of the live and test keys to match the Stripe Dashboard.

1.0.7 (17 November 2014)

Bugs:

  • Removed the \”is this a Stripe Item\” option from non-processing fields like descriptions and submit buttons.
  • Updated i18n support.
  • Fixed a bug that prevented a Stripe form from working properly on a page with a non-Stripe form.

1.0.6 (22 September 2014)

Changes:

  • Added a .pot file for translation.

1.0.5 (12 August 2014)

Bugs:

  • Fixed a bug with thousand separators.
  • Fixed a bug that prevented non-USD currency from being selected in some cases.

Changes:

  • Added a shortcode for displaying/sending Stripe charge ids: [nf_stripe_charge_id].

1.0.4 (24 July 2014)

Changes:

  • Compatibility with Ninja Forms 2.7.

1.0.3

Bugs:

  • Stripe should now work properly in all multi-part forms implementations.

1.0.2

Changes:

  • More logic to help prevent conflicts with other Stripe plugins.

1.0.1

Changes:

  • Added some logic to detect and attempt to prevent conflicts with other Stripe plugins.

1.0

  • Initial release