Accredible Certificates and Badges

Activities ::: mod_accredible
Maintained by Accredible LogoAccredible Inc, David King
Accredible lets you issue digital certificates, open badges, or Blockchain credentials from your Moodle instance. They are a feature-rich replacement for the PDF certificates normally generated for your courses.
Latest release:
594 sites
96 fans
Current versions available: 1

The Accredible platform lets you automatically create, manage, and distribute digital certificates or open badges directly from your Moodle instance.

Digital certificates and badges help maximize the value from your training or certification program.

Accredible credential on mobile and desktop views

Not Just a PDF

Create amazing certificate designs with complete control over the design and branding.  Or alternatively, create digital badge designs with our badge designer to recognize your learners' achievements. 

Certificate design editor in use

Digital certificates and badges are more secure than PDFs - their authenticity can be verified at any time on their own unique URL. They are more accessible and share-able via social media, directing interested viewers back towards your learners' achievements and your course information. Track recipient engagement to see shares, additional traffic to your webpage. And, still allow students to save and print a PDF for their wall at home.

Issue them automatically based on activity completion or final grade in Moodle and update their appearance at any time afterwards.

View an example certificate and badge:

Getting Started

  1. You will first need an Accredible account. You can sign up for a free trial at
  2. Add the plugin to your mod folder from here, or from the repo on Github.
  3. Set up a certificate/badge activity on the course you've chosen.

For detailed setup instructions, please view our documentation here:

This setup video shows how to set up and install the plugin 


  • Full-featured Certificate designer and Badge Designer
  • OpenBadge compliant
  • Engagement Analytics dashboard
  • Update certificates with additional information, or design at any time
  • Attractive recipient view displays collection of recipient's credentials
  • Manually or Automatically email students upon completion criteria

View an overview of the badge and certificate features of this Moodle plugin, or all Accredible features.

*If you are located in EU, you will need to check the box for EU users during the plugin setup, which you can also access under plugin settings.

Contact accredible at if you have any questions or ideas for improvements.


Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5
Screenshot #6
Screenshot #7
Screenshot #8
Screenshot #9


Accredible Logo
Accredible Inc (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS


  • Thu, Nov 20, 2014, 7:44 AM
    The code looks solid and you have great documentation and images to showcase your plugin. I found some minor uses of hard-coded english language strings that should be fixed:

    view.php (alt text) and index.php (h3 tag)

    Also, do you know about the Moodle html_writer (

    I would also add consider adding in help text for the activity chooser to explain what this modules does.
  • Fri, Nov 21, 2014, 6:42 AM
    Thanks Ryan for sharing this module with the Moodle community. I agree with Rex, this look really promising and I am sure you will
    make a lot of Moodle users happy. There are some small issues I spotted while reviewing this.

    There is no logging support in your plugin, neither the legacy one nor the new one. There seems to be a forgotten copy&pasted
    fragment of the code in classes/event/course_module_viewed.php that refers to the `mod_certificate` namespace and `certificate`
    database table. Please see and implement the full logging support for
    your module (or at least remove these invalid event classes).

    Attempting to load all enrolled users via SQL like yours in mod_form is not the correct way. Having 'roleid=5' may easily fail, the
    query does not respect enrolment status and there might be alternative ways to enrol users. Moodle provides an API for this - see

    The function accredible_get_issued() in lib.php on line 160 does not check it has valid $result so may lead to "Trying to get
    property of non-object" if the communication with your API fails for whatever reason. Consequently, you don't check $certificates
    returned by accredible_get_issued() is a valid array in view.php, leading to another PHP warning.

    Your lib.php does not implement the full activity module interface and on contrary, it defines functions that are internal ones
    implementing your plugin logic. It is preferred to put all your own functions into a separate file locallib.php and include it only
    when really needed (by your action scripts like view.php). The files lib.php are loaded from all plugins at all page request so
    having unnecessary functions defined there is suboptimal.

    Your plugin's description claims to "certificates can be issued manually or automatically emailed to students upon completion of the
    course." However, at the moment I can see just hard-coded support for attempted Quizes (that are referred to as Exams in your UI
    which may be quite confusing). The observing "course completion" does not seem to be present. Am I missing something?

    Please note, there is a policy on not using capital letters in the English language pack in Moodle. To achieve consistency with the
    standard Moodle installation, you may want to remove them (e.g. the plugin name itself) and eventually (once this module is
    approved) reintroduce them in the US English language pack via There are multiple hard-coded English strings like
    Rex already mentioned, including the headings in the view.php.

    Note that `$DB->get_record()` has support for MUST_EXIST flag that is preferred over calling print_error() on false returned.

    The capability mod/accredible:printteacher does not seem to be used at all.

    For now, I am going to mark this plugin as needing more work until we get these issues resolved. Thanks for your patience with the
    review and approval process.
  • Fri, Nov 21, 2014, 6:49 AM
    (forgot to say there are hardcoded table names like `mdl_user` which will again fail on sites using different or none table name prefix)
  • Accredible Logo
    Sat, Nov 22, 2014, 3:25 AM
    This feedback is great. Thank you for pointing me to the right places.

    Sending an update ASAP.
  • Accredible Logo
    Sat, Nov 29, 2014, 9:13 AM
    Thank you David and Rex for all the feedback. I’ve tried to address all of the points you brought up, so I’ll go through them one by one:

    html_writer - I think I’ve successfully removed all raw html and replaced it with the html_writer. Thanks for directing me to that.

    EN language tags - I’ve removed all the capitals except when referring to the proper noun Accredible. I hope that’s okay. I also added a lot more tags to fill in the hard-coded strings you guys pointed out, and removed the unnecessary ones left over from mod_certificate.

    logging support - thanks a ton for emphasizing logs. I’ve added logging for new certificates and I think having that in there will be a big help. I removed the old code from mod_certificate.

    enrolment API - again, thanks for the link David. There’s a lot to take in when you start Moodle dev, but these are great APIs once you have them.

    lib.php - I separated the majority of the functions into locallib.php. I’m not sure which functions I was missing in lib.php; there are only 3 listed here (

    function MODNAME_add_instance($post);
    function MODNAME_update_instance($post);
    function MODNAME_delete_instance($id);

    course completion tracking - this new version includes another auto-issue criteria based on quiz attempts. This was requested by one of the alpha users we have, and was the feature I was referring to (got ahead of myself). I would have preferred to use Course Completion Tracking, but that’s not really the same thing they were looking for, and it looks like this page on Course Completion ( is about an ongoing project in that area. Looking forward to that in later releases.

    DB->get_record - removed the print_errors and subbed in the MUST_EXIST flag. Thanks.

    Removed the print teacher capability (a remnant of mod_certificate).

    Lastly, I added moodle_exceptions when there is a possibility of missing API results like you suggested. The one thing I really couldn’t figure out was why my error messages aren’t showing up. This is the syntax I used:

    throw new moodle_exception('manualadderror:add', 'accredible', '', $user_id, var_dump($post));

    and I added a lang/en/error.php file like the main Moodle branch.

    Hope that addresses everything, and thanks again for the concise and helpful feedback! We’re excited to get this listed ASAP.

    - Ryan Booth
Please login to post comments