Tags give the ability to mark specific points in history as being important
  • 6.1.6
    • Fix #103 - Allow submission of drupal webform when there are multiple processors on the page (eg. Stripe + Pay later).
  • 6.1.5
    • Send email receipts from Stripe by default (as this was what 5.x did). Add a setting under Administer->CiviContribute->Stripe Settings to enable/disable receipts from Stripe.
    • Support recording full refunds from Stripe.
  • 6.1.4
    599779dc · Release 6.1.4 ·

    This release fixes a MAJOR issue that caused duplicate payments to be taken when a new recurring contribution (subscription) was setup. All users of 6.x should upgrade.

    • Don't take payment twice on recurring payments (This was happening because a payment was being created via a paymentIntent and subsequently via the first invoice generated by the subscription - currently we don't support 3D secure on subscriptions, this will be fixed in a future release).
    • If we get an error when submitting, make sure we run Stripe submit next time as well so we generate a paymentIntent/paymentMethod for the payment (this fixes the issue where only the first submission attempt would succeeed - subsequent submission attempts would fail with "Missing paymentIntentID").
    • Validate payment forms using javascript so we don't create multiple uncaptured paymentIntents when the form is not valid (each time the form was submitted and failed because eg. the email address was invalid a new paymentIntent would be created).
  • 6.1.3

    You need to Fix/Create webhook after installing this update to add the charge.captured event to the list of events sent to the webhook.

    • Handle charge.succeeded/charge.captured when no customer_id is provided - fixes 400 errors / missing customer_id.
    • Remove invalid setting of customer on paymentIntent (no user impact).
    • Small improvements to Stripe Plan code (no user impact).

    Note: You should use this CiviCRM core patch if using webform_civicrm 4.28.

  • 6.1.2
    • Fix #89 - Payment Element is not loading for backend "Credit Card Event Registration".
    • Fix repeatContribution - pass the found contribution ID instead of using a separate previous_contribution variable - fixes !63
  • 6.1.1
    2716581f · Release 6.1.1 ·
    • Fix issue with charge.succeeded triggering error on recurring contributions
  • 6.1
    b1e330af · Release 6.1 ·

    Release 6.1

    This release fixes a number of bugs/issues identified after the release of 6.0.

    Upgrade Advice

    IMPORTANT! If upgrading to 6.x for the first time make sure you install the mjwshared extension BEFORE you upgrade Stripe.

    This release requires an upgrade to version 0.4 of the MJWShared extension.

    ALL users of 6.0 should upgrade to this release.

    If upgrading to 6.x for the first time, please upgrade directly to 6.1 (do not install 6.0 first).


    • Support cards that do not request a postal/zip code (fixes #80).
    • Enable payments on backend (*fixes #79).
    • Resolve multiple issues with "more than one" payment processor on the form and stripe failing to submit if it wasn't the first to be selected:
      • Fix issue when script is reloaded by changes of payment processors.
      • Improve handling for multiple processors and pay later.
      • Make sure we clear the paymentIntentID from the session once we've used it (this prevents a browser refresh trying to use an already captured paymentIntent).
  • 6.0
    007432ac · Final tweak ·

    Switch to Stripe Elements for SAQ-A compliance on most sites and support the European Secure Customer Authentication (SCA) payments directive.

    This is a major new release. You cannot rollback once you've upgraded.

    This extension REQUIRES the mjwshared extension.

    You MUST update your API version on the stripe dashboard!

    • Use Stripe Elements.
    • Use PaymentIntents and comply with the European SCA directive.
    • Require Stripe API Version: 2019-09-09 and ensure that all codepaths specify the API version.
    • Switch publishable key/secret key in settings (upgrader does this automatically) so they are now "correct" per CiviCRM settings pages.
    • Support cards using 3dsecure and cards not using 3dsecure (workflows with Stripe are slightly different but both are now handled).
    • Use minified versions of js/css.
    • Improve payment descriptors and customer information that is sent from CiviCRM to Stripe.
    • Add basic support for PaymentProcessor.refund API.

    What is NOT supported:

    • CiviCRM Event Cart (requires additional funding, changes should probably be made in CiviCRM core to standardize that workflow rather than adding support via this extension).
    • Card payments via the admin backend (this was supported in 5.4.1 but has unresolved issues with Stripe Elements when used via popup forms and is not allowed in most situations when complying with the SCA payments directive unless you are approved to accept "MOTO" payments).
  • 6.0.beta1
    cfb57bde · Release 6.0.beta1 ·

    Thanks to Rich Lott (@artfulrobot) for contributing and testing release.

    • We don't need to confirm the payment until we capture it
    • payment method id is not required when passing in an existing payment intent
    • Add minified versions of js/css
    • Remove onclick attribute from submit form so that CiviContribute forms do stripe processing before submission
    • Description and Customer fields in Stripe backend - fixes #78
  • 6.0.alpha3
    841e8d90 · Release 6.0.alpha3 ·
    • Support recurring payments with paymentIntents/Elements. Cancel subscription with Stripe when we reach recurring end date
    • Update required Stripe API version to 2019-09-09
    • Handle confirmation pages properly for contribution pages (make sure we pass through paymentIntentID).
    • Handle card declined on client side.
    • Support creating recurring payment (subscription).
    • Handle IPN events for charges / invoices (support cancel/refund etc).
    • Add basic support for PaymentProcessor.refund API.
    • Remove membership_type_tag from plan name.

    Note that backend payments are not currently supported.

  • 6.0.alpha2
    af69cc04 · Release 6.0.alpha2 ·
    • Support Drupal Webform CiviCRM.
    • Support Event Registration.
    • Support Confirm/Thankyou pages on contribution pages / events.
    • Support cards using 3dsecure and cards not using 3dsecure.
  • 6.0.alpha1

    Initial preview release with Stripe Elements and PaymentIntents to support new European SCA requirements. Note that ONLY a one-off contribution via a contribution page has been tested for this release. Most other functions (including recurring) will NOT work properly

  • 5.4.1
    • Don't overwrite system messages when performing webhook checks.
    • Add form to handle creating/updating webhooks instead of automatically during system check (Thanks @artfulrobot)
  • 5.4
    9aff529a · Update info.xml ·

    This release fixes multiple bugs and introduces a few small features.

    A major feature for this release is the automatic management of webhooks: Note that when you upgrade you may end up with duplicate webhooks in Stripe with slightly different addresses (particularly on Wordpress where the path should be urlencoded). Just delete the older (duplicate) webhooks manually from your Stripe dashboard.

    • Fix drupal webform detection so it doesn't generate a false positive if we also have a webform on the same page.

    • Fix Stripe create customer in test mode.

    • Fix offline (live) event payments for Wordpress.

    • If payment fails and we have no contribution don't crash when trying to create a note.

    • Fix null dates returning as December 31, 1969.

    • Support Drupal 8 Webform.

    • Automatically manage and create webhooks.

    • Add StripeCustomer.updatestripemetadata API.

    • Add a system check for invalid API key.

    • Add StripeCustomer.delete to delete a customer from CiviCRM.

    • Add StripeSubscription.import API to import subscriptions into CiviCRM.

    • Add Stripe.cleanup API.

    • Report all Stripe errors, not just authentication when running status checks.

    • Remove is_live field from civicrm_stripe_customer - we can get this from the payment processor ID.

  • 5.3.2
    391ce433 · Release 5.3.2 ·
    • Fix retrieving email receipt parameter on stripe IPN which stopped contributions from being marked as completed.
    • Fix webhook check for wordpress so we don't get false positives when everything is configured ok.
  • 5.3.1   * Fix issue with event/membership payments failing to record in CiviCRM (introduced in 5.3).
  • 5.3   There are no database changes in this release but you should update your Stripe webhook API version to 2019-02-19. A few bugs are fixed.

    There are no database changes in this release but you should update your Stripe webhook API version to 2019-02-19.


    • Update required Stripe API version from 2018-11-08 to 2019-02-19.
    • Update stripe-php library from 6.19.5 to 6.30.4.


    • Make sure we clear processor specific metadata from payment form when switching payment processor (fixes #26).
    • Fix saving of fee amount and transaction ID on contribution record.


    • Add a Webhook System Check.
    • Send a friendly success response if we receive the test webhook.
    • Webhooks now work in test mode.
    • Use the parameter on the recurring contribution to decide whether to send out email receipts.
  • 5.2   This release introduces a number of new features, standardises the behaviour of recurring contributions/memberships to match standard CiviCRM functionality and does a major cleanup of the backend code to improve stability and allow for new features. Please upgrade to 5.0 if you are on ANY older version. Then upgrade directly to 5.2. You do not need to install 5.1 first.
    963fbe9a · Release 5.2 ·
  • 5.0
    4ad91dbd · 5.0 stable ·

    Stable release for CiviCRM 5.x

  • 5.0.beta4
    5dc10a2d · Release 5.0.beta4 ·
    • Add form selector for event registration pages as it is different.
    • Detect billing form when stripe is not the selected processor.
    • Don't try and submit a stripe transaction when selected/stripe processor IDs are both undefined.