The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
I understand the Certificate of Completion idea is currently under consideration, but was wondering if anyone has had success with using a free third party tool to generate a certificate, inside a Canvas course? Our hope it to create a Module that students can only enter after completing a set of requirements, and inside the Module is an option to download a basic certificate that includes their name, credits, etc... Any help/advice is greatly appreciated! Thanks!
Hi @jenny_hopf
I would love to see a native Certificate feature in Canvas, but I have been getting along just fine without one by doing exactly what you described - I create a certificate and upload it into a restricted module based on student scores or completion of activities. The students then download the Cert and add their name into a specified field.
This is not 100% secured, because students who have actually achieved the certificate, can then redistribute it.
There is an LTI tool available in the EduAppCenter that integrates nicely with Canvas, that can also help meet your need. You can check it out at Edu App Center
You should consider making this a feature idea request to add support to Canvas building this. You can learn more at How does the feature idea process work?
Kelley
@jenny_hopf , I preface this suggestion with the warning that I have not yet tried this approach, but you might get some ideas for issuing certificates from "Hacking" Canvas Using G Suite .
I would like a tool like that. We currently do one of two options. One is what @kmeeusen suggests above and second involves going to our system where teachers sign up for workshops and having them just do a short quiz there because it will generate a certificate. I really don't like the two system option.
I would want the LTI tool to read the user information so that it automatically adds their names and we could build the certificate with the number we are required to use for training that is acceptable for Continuing Ed towards certification renewal.
Hi @jenny_hopf ,
We too had a need to have a certificate for certain courses, so I created a simple LTI tool that dynamically creates a PDF certificate with the student name, course name and completion date.
This tool requires a server with PHP and the FPDF library as well as setting up the tool in Canvas. The code will require some customization in order to adjust the text as necessary (based on how you want the certificate to look). The customization isn't anything too difficult, but you will want to read the examples and tutorials for FPDF.
If you are interested, I can share the code and the setup for the LTI in Canvas.
Alex
I would definitely be interested. It would be a great improvement for us.
I'd be interested as well!
Here is the PHP code:
<?php
require_once("fpdf181/fpdf.php");
$pdf = new FPDF('L', 'in', 'Letter');
$pdf->AddPage();
$pdf->SetMargins(0, 0);
$pdf->Image('images/cert.png', 0, 0, 11, 8.5);
$pdf->ln(2.45);
$pdf->setFont('Times', 'B', 24);
$pdf->SetX(5.45);
$pdf->Cell(4.5, 1, date('F j, Y', time()), 0, 1, 'L');
$pdf->setFont('Times', 'B', 24);
$pdf->SetXY(5, 4.15);
$pdf->MultiCell(5, .75, $_POST['custom_user_name'], 0, 'C');
$pdf->setFont('Times', 'B', 18);
$pdf->SetXY(5, 5.9);
$pdf->MultiCell(5, .75, $_POST['custom_course_name'], 0, 'C');
$pdf->ln(.5);
$pdf->output();
?>
The LTI is setup is as follows:
| Name | |
|---|---|
| (Whatever you want) | |
| Consumer key | Shared Secret |
| (Doesn't matter; script doesn't use it) | (Doesn't matter; script doesn't use it) |
| Launch URL | |
| (Whatever the URL for the script is) | |
| Domain | Privacy |
| Anonoymous | |
| Custom Fields | |
| user_name=$Person.name.full course_name=$Canvas.course.name | |
| Description | |
| (Whatever you want) | |
After that, you will be able to add it to a course module under the 'External Tools' option.
Thank you!
@akkaufmann I actually implemented this today and got it working. Really cool concept for doing this. Thanks for sharing.
I know this is a few years old, but I have one question...
Along with the name and course name, is it possible to also pull the module name? We have a course with safety training in it. Each module is a different safety video and quiz in itself and each one doesn't apply to everyone. So you might just be assigned two quizzes of the 12. And I'd like to generate a specific certificate for each module and print the module name on the cert. I'll play around with the custom fields and PHP but was wondering if you knew a way.
Hi akkaufmann ,
I am really exited to work with FPDF concept of generating certificate , but could you please assist me with the file location where i need to upload this pdf file . & do i need to restart my server later?
further to inform you i am using self hosted canvas lms on Azure VM .
Hi @jenny_hopf ,
Have you given any thought to Accredible, Badgr or Credly as options for third-party LTI's who offer badging/ certification capabilities. Might be worth taking a look if you haven't already had the chance!
badging digital badging certificates #certification
- Am
This shouldn't require 3rd party support, it should be built in. If Canvas is aimed as a complete learning tool, certificates are an obvious outcome.
Heck, moodle has a plugin freely available to do this that installs easily.
Hi @dave_perry ,
Thanks for your feedback! There is an awesome Feature Request online at the moment which I think would be of interest to you: https://community.canvaslms.com/ideas/2027-certificate-of-completion-generator" modifiedtitle="true".... It would be fantastic if you could up-vote the idea, and provide any additional feedback in the comments section. The more support the better! ![]()
- Am
Where do we go to see that and vote for this feature?
Thanks,
AT
We can use Google form/Quiz with Certify'em extension and share link here in our course, so the students can get certificate automatically as they submit the quiz. But I am not sure whether it is permitted on this platform or not.
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.