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.
745 sites
42 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
    Wed, May 10, 2017, 8:38 PM
    Hi Joe,

    Currently our plugin doesn't have the above features, but this is under our plan module. We will come up with these features in our future updates and will positively update you with the same.

    Thanks and Regards,
  • LionHeart stretching
    Sat, May 27, 2017, 12:39 AM
    How do I modify the templates for the automated e-mails sent by the plugin to the enrolee, teacher and admin?
    The enrolee e-mail states 'Longer description can be set from translation interface.' but I'm unable to locate said interface within moodle.
    I thought it might mean the 'language pack' within moodle, but there were no strings with stripe related to e-mail templates.
    Also, no mention in any documentation that I looked at here or on the net. I did not comb the plugin files as of yet.
  • Picture of Frederick Schiller
    Tue, May 30, 2017, 7:07 AM
    This isn't compatible with moodle 3.3?
  • Picture of DualCube Team
    Wed, May 31, 2017, 8:19 PM

    Yes, stripe payment is absolutely compatible with moodle 3.3.
  • Picture of DualCube Team
    Tue, Jun 6, 2017, 12:26 AM
    Hi Justin,

    >>Please go to Home / ► Site administration / ► Language / ► Language customisation / ► select your language and load the language pack / ► click the "Continue" button / ► Show strings of these components / ►please select "moodle.php", "enrol.php", ''enrol_stripepayment.php" then click on the "Show strings" button / ►To change these "enrolmentnew", "welcometocoursetext", "enrolmentnewuser" string / ►write your text into the textarea to the right side then click on the "Save changes to the language pack" button.

    Hope the above helps, for any further support please do let us know.

    Thanks and Regards,
  • Picture of Robi Herman
    Fri, Jun 9, 2017, 9:03 PM
    Hey, can someone please reply to my issue in: https://moodle.org/mod/forum/discuss.php?d=353552
    Thanks for the awesome plugin tho!
    Best regards,
  • LionHeart stretching
    Sat, Jun 10, 2017, 12:41 AM
    Thanks Arindam!
    If I may make a suggestion, change 'translation interface' to read language pack instead. smile
    It's minor, but extremely helpful so there's no search for an 'interface' which sort of sounds like it should be a screen!
  • Picture of DualCube Team
    Tue, Jun 13, 2017, 7:05 PM
    Hi Robi,

    Thanks for reaching us. We have checked it in our site, it is perfectly working. Registered users can view the course after a successful payment and then the user can do anything which is allowed for users. We can check it if you provide your site access via our official id admin@dualcube.com

    Looking forward to your response.

    Thanks and Regards,

  • Picture of DualCube Team
    Tue, Jun 13, 2017, 7:06 PM
    Hi Justin,

    Thanks for reaching us. Would appreciate, if you can please clarify the issue further. I think 'translation interface' in Moodle is 'Language customization' because from here you can change any string of any language by the selecting your language pack.

    Looking forward to your response.

    Thanks and Regards,
  • Picture of Erik Rosen
    Sat, Jun 24, 2017, 3:43 AM
    Hi. What does it look like to the user once they process a payment. Do they leave our site for Stripe's, or does the processing appear to take place on our site? Currently we use PayPal as that is universally recognized. Don't want to put people off by sending them to a site or processor they might not recognize. Is there a test site on which I can see this? Thanks for the hard work and help!
  • Picture of Patrik Lindqvist
    Tue, Jul 4, 2017, 8:31 PM
    I'm wondering about the coupon system on stripe, is this something that will come in the near future? I would like to give discounts for certain customers. Regards, Patrik
  • Picture of DualCube Team
    Tue, Jul 4, 2017, 8:44 PM
    Hi! Patrick,
    Thanks for reaching us. We are sorry to say that we do not have any plan to incorporate coupon system with Stripe anytime soon. If we decide to do something like that in the future, we will let you know for sure. Regards, Suman
  • Picture of Erik Rosen
    Tue, Jul 4, 2017, 10:12 PM
    Hi Suman. Stripe is very interesting to us as well, but we also need coupon functionality, which is a big reason we cannot convert to your platform.
  • Picture of DualCube Team
    Wed, Jul 5, 2017, 8:55 AM
    Hi Erik,

    Apologies for the delay Erik, unfortunately I meet with an accident and was away for 3-4 days. Coming down to your question, the processing appears to take place in your site when you click the "Pay with Card" you can see a popup where you can add email, card number etc. after clicking the "Pay" button, when payment is successfully done student can view the course/view.php page.

    At present we have no test site for this plugin. Please let me know, if you have any further queries.

    Thanks and Regards,
  • Picture of DualCube Team
    Thu, Jul 6, 2017, 7:27 PM

    Coupon system is in our future update list, however currently if you need any further support on coupon system, you may reach us via our official mail id - admin@dualcube.com

    Thanks and Regards,
Please login to post comments