Enrolment: Stripe Payment with SCA and Coupon

Maintained by Picture of DualCube TeamDualCube Team
Now avail the much-awaited coupon functionality while enrolling students in Moodle courses using a Stripe payment gateway for paid courses with Strong customer authentication (SCA). Stripe Receipt sent to customers for any successful transaction. This plugin will help the admins and webmasters to offer their students a percent-off or amount-off discount for the paid courses. This plugin helps admins and webmasters use Stripe as the payment gateway.
678 sites
39 fans
Current versions available: 2

Stripe Payment: 

Introducing the newest offering from Team Dualcube: Stripe Payment!

Now avail the much-awaited coupon functionality while enrolling students in Moodle courses using Stripe payment gateway for paid courses with Strong customer authentication (SCA).

This plugin will help the admins and webmasters to offer their students a percent-off or amount-off discount for the paid courses.

Stripe Payment:

1. Registered users can login to the Moodle site and happily apply the promo codes for a discount before payment. On successful payment, they can access the course.

2. Admins and Webmasters, now, can create, manage and keep track of all promotional codes directly in their Stripe dashboard.

3. Strong customer authentication (SCA) implemented with 4 layers of complex security to comply with EU Revised Directive on Payment Services (PSD2) on payment service providers within the European Economic Area.

4. The first of it's kind to use Payment intent method for Stripe-coupon. 

5. Works with all stable versions of Moodle till v 3.8.1

6. Latest Stripe SDK

Stripe Payment Documentation:

This plugin has all the settings for development as well as for production usage. Its easy to install, set up and effective.

Creating Merchant Account :

1) Create account at https://stripe.com.

2) Complete your merchant profile details from https://dashboard.stripe.com/account.

3) Now set up secret key and publishers key at https://dashboard.stripe.com/account/apikeys.

4) For test mode use test api keys and for live mode use live api keys.

Now you are done with merchant account set up.

Installation Guidance : 

Login to your moodle site as an “admin user” and follow the steps.

1) Upload the zip package from Site administration > Plugins > Install plugins. Choose Plugin type 'Enrolment method (enrol)'. Upload the ZIP package, check the acknowledgement and install.

2) Go to Enrolments > Manage enrol plugins > Enable 'Stripe' from list

3) Click 'Settings' which will lead to the settings page of the plugin

4) Provide merchant credentials for Stripe. Note that, you will get all the details from your merchant account. Now select the checkbox as per requirement. Save the settings.

5) Select any course from course listing page.

6) Go to Course administration > Users > Enrolment methods > Add method 'Stripe' from the dropdown. Set 'Custom instance name', 'Enrol cost' etc and add the method.

Adding coupons:

Go to your Stripe Dashboard >  Billing > Coupons > Create a coupon.

Type in the coupon’s name: it can be anything and for your reference only.
Type in the Coupon’s ID : This is the Coupon code which your students will need to enter if they want to avail the discount.

Choose Coupon Type: 
1. Percentage discount : offers % off on the course price 
2. Fixed amount discount : Offers a fixed amount off on the course price.

Duration: For duration, when using the value repeating, also specify duration in months as the number of months for which the coupon should repeatedly apply. Otherwise the coupon can be set to apply only to a single invoice or to them all.

Redemption : The max_redemptions and redeem_by values apply to the coupon across every customer you have. For example, you can restrict a coupon to the first 50 customers that use it, or you can make a coupon expire by a certain date. If you do the latter, this only impacts when the coupon can be applied to a customer. If you set a coupon to last forever when used by a customer, but have it expire on January 1st, any customer given that coupon will have that coupon’s discount forever, but no new customers can apply the coupon after January 1st.

If a coupon has a max_redemptions value of 50, it can only be applied among all your customers a total of 50 times, although there’s nothing preventing a single customer from using it multiple times. (You can always use logic on your end to prevent that from occurring.)


This completes all the steps from the administrator end. Now registered users can login to the Moodle site and view the course after a successful payment of the discounted price. 


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4


Picture of DualCube Team
DualCube Team (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS


  • Picture of DualCube Team
    Tue, Jan 8, 2019, 3:43 PM
    Dear Robert,

    We tested again after you reported, but it worked flawlessly on our server. Can you please test it again?

  • Picture of Robert Vogel
    Tue, Jan 8, 2019, 5:00 PM
    Hello Team,
    if I uncheck "Notify Admins" than it is working. Otherwise I got the error message like above.
    For me that is fine, I do not need the admin notification.
  • Picture of DualCube Team
    Tue, Jan 8, 2019, 5:31 PM
    Thanks. We uploaded a new version again. Please download and use that.

    Thank you.
  • Picture of Tommy Pazhoum
    Wed, Jan 9, 2019, 1:03 PM
    Dear Team,
    Thank you for such a great work. I'd like to know how I can add the course name in the receipt sent to student's email.
    I look forward to receiving your comment.
    Thank you
  • Picture of DualCube Team
    Fri, Jan 11, 2019, 6:43 PM
    Dear Tommy,
    Stripe API does not provide such option to pass the course name. So this is not possible.
    Thank you.
  • Picture of seaghan moriarty
    Thu, Jan 31, 2019, 10:18 PM
    Hi Guys,
    I'm trying to add an option of a discount voucher or a % discount to different courses, is this now possible?
  • Picture of Stan Shap
    Mon, Feb 4, 2019, 11:07 PM
    Hello Team,
    I am using Moodle 3.6.2+ and am having the same problem as Robert was having -

    I am using Moodle 3.6 and get an http 500 error POST /enrol/stripepayment/charge.php HTTP/1.0
    Permissive is set to 755 for the directory and 644 for the files.
    Form to enter the credit card credentials came up, I got a green mark and the the error.
    User is not enrolled, transaction is not performed.

  • Picture of DualCube Team
    Wed, Feb 6, 2019, 2:02 PM
    We have checked our plugin at moodle 3.6 and it works fine. Please download the latest version of this plugin from https://moodle.org/plugins/enrol_stripepayment. If you are still facing the problem, then kindly do share your FTP details and site URL with us, so that we can look into it.
    Our email ID is admin@dualcube.com

    Thank you.
  • Picture of Diane Villemure
    Fri, Feb 8, 2019, 12:52 PM
    I just noticed that shipping fields inthe checkout form do not include "state" (as in shipping[address][state]) ... only address, city, postal code and country. Is this an oversight?
  • Picture of DualCube Team
    Fri, Feb 8, 2019, 7:27 PM
    Dear Diane,
    Can you please share the screenshot with us? We would like to know where this is happening.
    Our email ID is : admin@dualcube.com

    Thank you.

  • Picture of Javier Tejera
    Sun, Mar 10, 2019, 12:37 AM
    Hello there, is there any way to include the price of the course next to the Stripe logo? See here what I mean: https://prnt.sc/mvje8g
  • Picture of OI Net
    Tue, Mar 12, 2019, 11:17 PM
    Hello, I have a similar problem as Robert.

    I installed the last version of Stripe payment for Moodle and it is not working . My moodle version is 3.6.2.

    I can write the credit card number, a green OK mark shows up when I confirm the payment and then I get a HTTP 500 error on page .../charge.php

    Can you help me?

    Thank you very much in advance.
  • Picture of Finn Majlergaard
    Wed, Mar 13, 2019, 6:27 AM
    He there.

    I have a similar problem.

    I am using the latest version of the api (Release 1.0 (Build: 2015112818)) and Moodle 3.6.3 (Build: 20190311)

    After having made a payment (test mode) it just hangs at this page:

    No error messages.
    All the beat
  • Picture of iwa moodle
    Fri, Apr 12, 2019, 1:11 AM
    somebody knows if this plugin works in mexico? thanks
  • Picture of AC Cheng
    Wed, Apr 17, 2019, 10:33 AM
    I just want to mention the 500 Error issue can be resolved by downloading the plugin at their github page:
    I'm also using Moodle 3.6
Please login to post comments