Completion that proves itself
Edushade issues a certificate the moment a learner crosses the finish line — a unique number, a public verification code, the grade and total time spent locked into a snapshot. Works on courses, learning paths, events and quizzes, and on cohorts when you want one.
Certificates that hold up later, not just look right today
Edushade does not treat the certificate as a PDF generator. It is a record — with its own number, verification code, status pipeline and snapshot of the grade, completion date and time spent. The same engine works across four entity types and ties cleanly back to the enrollment that earned it.
Auto-Issue on Completion
When a learner's enrollment crosses the program's passing rules, the certificate is issued automatically with status set to issued and an issued-at timestamp.
Four Entity Types
Issued for courses, learning paths, events and quizzes. The same record shape works across all four — only the title and grade source change.
Unique Number + Verification Code
Every certificate carries a unique certificate number and a separate verification code, so a third party can confirm authenticity without seeing the platform.
Snapshot Grade and Completion
Grade (decimal precision), completion date and total time spent are captured at issue time, so later edits to a course never change the historical record.
Status Pipeline
Certificates flow through draft, issued, revoked and expired — with revoked-at and expires-at timestamps so an audit trail stays intact.
Cohort-Aware
When the certificate comes out of a cohort, the cohort ID is stored on the record. The same course can run multiple cohorts and the certificate keeps the right batch context.
Issued the moment the rule is satisfied
Certificates do not need a manual button most of the time. When an enrollment hits the configured passing grade or completion criteria, Edushade looks up the program, snapshots the title, description, grade and completion timestamp, generates the certificate number and verification code, and writes the issued-at time. The enrollment is flagged certificate-issued so it never doubles up.
Auto-issue triggered on enrollment completion with passing grade
Idempotency check prevents duplicate certificates per enrollment
Snapshot of title, description, grade, completion date and time spent
Manual issue available for cases that need a human in the loop
One engine, four kinds of completion
Edushade keeps the certificate model entity-agnostic. Whether the learner finished a multi-week course, walked through a learning path, attended an event, or passed a quiz that needed a credential, the resulting certificate uses the same data shape — entity_type, entity_id, enrollment_id, grade and completion_date. No parallel feature for each program kind.
Course certificates issued on enrollment completion
Learning path certificates issued when the path is finished
Event certificates issued on attended-and-eligible participation
Quiz certificates when certificate_enabled is on and the score passes
A number to cite, a code to verify
Every issued certificate gets two identifiers: a certificate number for the learner to reference, and a separate verification code that can be shared with a third party — a hiring manager, a registrar, a regulator. The verification code is the one that proves the certificate was actually issued by your platform, without the verifier needing access to admin tools.
Auto-generated unique certificate number per issued record
Separate verification code for public verification flows
Issued-at, expires-at and revoked-at timestamps stored on the record
Soft-delete keeps audit history even when records are removed
Status, expiry and revocation when you need them
Some credentials matter for a year. Some need to be pulled back. Edushade certificates carry a four-state status pipeline — draft, issued, revoked, expired — with timestamps for issued-at, expires-at and revoked-at, so the lifecycle of a credential is captured on the record itself rather than guessed at from logs.
Four statuses: draft, issued, revoked, expired
Optional expires-at for credentials that should not last forever
Revoke flow with revoked-at timestamp for audit clarity
Created-by and updated-by attribution on every record
From course completion to issued certificate, automatically
Most certificates do not need a single click — they fall out of the existing enrollment-completion flow. The few that do live next to the issuing form.
Turn on certificates for the program
Open the course, learning path, event or quiz and toggle certificate_enabled, set a passing grade where it applies, and decide if the certificate should expire after a fixed window.
Let learners earn it — or issue manually
When an enrollment completes with a passing grade, Edushade auto-issues. For cases that need a human (re-issuance, special recognition, manual review), use the issue endpoint with the enrollment ID and entity reference.
Share the number, verify with the code
The learner gets a downloadable certificate with their unique number; you keep the verification code as the way third parties confirm authenticity. Revoke or expire from the same record when the credential should no longer count.
Certificates FAQ
How Edushade issues, verifies, expires and revokes certificates across courses, learning paths, events and quizzes.
Can't find what you're looking for?
Contact SalesStart Building Learning Your Way
Set up courses, programs, and learning experiences without forcing your process into rigid software. A connected system for students, educators, and administrators.
Build Your Academy