Ninja Forms +
Stripe

Use Stripe Checkout forms to accept one-time and recurring Stripe payments through your WordPress from Apple Pay, credit cards, Google Pay, and more.

Searching for the best Stripe plugin for WordPress? Want to sell products and/or subscriptions simply, without the overhead of a huge ecommerce plugin? WordPress Stripe Checkout forms are a breeze, and can be just as flexible as other ecommerce tools at a fraction of the cost and learning curve! Choose from a variety of payment methods including Google Pay and Apple Pay wallets, bank debits, and more. This is the only integration for Stripe and WordPress that you’ll need!

With Ninja Forms Stripe Checkout, you can easily:

  • Sell products or subscriptions from your WordPress forms
  • Set fixed or variable (calculated) totals
  • Accept one-time or recurring subscription payments
  • Take credit card payments
  • Offer Google Pay and Apple Pay options
  • Set up bank debit payments
  • Customize product and purchase details passed to your account

How to add Stripe payment to WordPress​

Enter API credentials into your Stripe dashboard to send details from your forms to Stripe:

  1. Navigate to Ninja Forms > Settings > Stripe and paste the API keys.
  2. Choose a form and go to Emails & Actions > Add New Action > Stripe to open the settings.
  3. Configure where the total will be derived as a fixed amount, calculation, select field, or recurring payment.

After the payment is complete, the user is sent back to your WordPress site to complete the token in Ninja Forms.

Easily manage payment totals

Want every transaction from your Stripe Checkout form to be for the exact same price? Enter a fixed price into a field, simple as that.

stripe checkout form with fixed total entered by the admin

Charge different prices for different items, and calculate a total based on a customer’s selections? Just set up a quick and easy calculation on the form and use that as your total.

total set to use a calculation by the admin

Let users pick their price? Perfect for donations, get your total directly from a single field.

total set to the value of a field

Set up one-time or subscription payments

All payments default to one-time charges. No set up required if that’s all you need. But subscription payments are easy to manage. Just enter the Recurring Payment Plan ID from your Stripe account into the form’s settings. That’s all there is to it. Each form submission will generate a new subscription in your account. You can even set trial periods!

Bonus! You can give customers the option of one-time or recurring payments with Ninja Forms Conditional Logic + Stripe Checkout. Let them select their preference!

Accept any payment method that’s available in your Stripe account

Ninja Forms Stripe Checkout forms now fully integrate with the payment methods you have selected as valid options in your Stripe account. Easily swap between accepting credit cards only, or all payment methods on each form. Payment methods include but aren’t limited to:

  • All major credit cards
  • Google Pay, Apple Pay, and other card wallets
  • Bank debit: ACH, BACS, SEPA, and more
  • Bank redirects like iDEAL, Sofort, and others
  • many more!

wordpress stripe checkout payment methods

Customize product and purchase details

Seeing nothing but a new customer and a payment amount in your account is a pain. Select a Stripe plugin for WordPress that can do better.

Easily pass product details such as name, image, description, and custom values with every transaction.

Collect customer details using form fields and pass them into your account as needed. Especially important for shipping details!

stripe plugin for wordpress product details fields in the Stripe forms action settings

Bonus! Purchase details can also be sent to you, your customer, or your team. You can obviously send receipts via Stripe, but if you need any additional details communicated post-sale, it’s very easy to set up with a customizable email from the form!

Start selling now with the best & easiest WP Stripe plugin!

Unlock the full power of Stripe integration with our premium add-on. Process payments immediately, create subscription plans, and offer multiple payment methods to your customers.

New to Ninja Forms? Download our free core plugin to experience the form-building platform, then upgrade when you’re ready to add Stripe payment processing.

Frequently Asked Questions

Are there specific security requirements for using Stripe with my WordPress site?

Yes. Your website must meet Stripe’s HTTPS and TLS security standards to process payments successfully. Your site needs a valid SSL certificate and must support at least TLS 1.2. If you’re unsure whether your site meets these requirements, contact your hosting provider.

Does Stripe require a specific API version?

Yes. In your Stripe account, navigate to the Developers page and ensure that your Stripe API Version is set to at least version to ensure compatibility with the Ninja Forms integration.

Can I test my form before accepting real payments?

You can enable Test Mode in the Stripe action settings:

  • Go to the Advanced settings of your Stripe action.
  • Toggle on (green) the Test Mode setting.
  • Make sure you’ve entered your Stripe Test API credentials in Ninja Forms > Settings > Stripe.
  • Use Stripe’s test credit cards (like 4242424242424242) to run test transactions.
  • Remember to toggle Test Mode off when you’re ready to accept live payments.
  • What happens if a customer’s Stripe payment fails? How are failed payments handled?

    When a Stripe payment fails, the Ninja Forms add-on will display an error message to the customer. You can configure your settings to send you a notification email, allowing you to follow up with the customer. Stripe also provides detailed information about the reason for the failure in your Stripe dashboard.

    Can I offer discounts or coupon codes with the Stripe Checkout extension?

    Yes, you can offer discounts or coupon codes with the Stripe Checkout plugin. You can create coupon codes in your Stripe dashboard and then use conditional logic to apply the discount to the total amount.

    Does the Stripe extension for WordPress support refunds?

    Yes, you can issue refunds directly from your Stripe dashboard. Stripe will process the refund automatically and notify the customer.

    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