Credentium® Integration - Moodle Plugin Overview

Modified on Fri, 30 Jan at 10:44 AM

Credentium® Integration - Moodle Plugin Overview

This article provides an overview of the Credentium® Integration plugin for Moodle, its features, and how it integrates with your Moodle learning management system.


What is the Credentium® Integration Plugin?

The Credentium® Integration plugin (displayed as "Credentium® Integration" in Moodle) is a local plugin that integrates Moodle with the Credentium digital credential platform. It automatically issues verifiable digital credentials to students when they complete courses.


Key Benefits:

  • Automatic Issuance - Credentials are issued automatically when students complete courses
  • Grade Integration - Optional inclusion of course grades in credentials
  • Multi-Tenant Support - Separate API credentials for different course categories (v2.0+)
  • European Standards - Issues credentials compatible with European Digital Credentials (EDC)


Requirements

Moodle Version

  • Minimum: Moodle 4.5
  • Supported: Moodle 4.5 and 5.0


PHP Version

  • Minimum: PHP 7.4
  • Recommended: PHP 8.0+


Moodle Features Required

  • Course completion tracking enabled
  • Scheduled tasks (cron) running regularly
  • Outbound HTTPS connectivity to Credentium API


Credentium Requirements

  • Active Credentium organization account
  • API credentials (API URL and API key)
  • At least one active credential template


Current Version

Version: 2.0.4 Build: 2026012700 Maturity: Stable Latest Releases: GitHub Releases


Key Features

Automatic Credential Issuance

When a student completes a course:

  1. Moodle triggers a course completion event
  2. The plugin creates an issuance request
  3. A background task processes the request
  4. The credential is issued via Credentium API
  5. The student receives their credential in their Credentium Wallet


Grade Integration

Optionally include the student's final course grade with the credential:

  • Grade is captured after completion event
  • Sophisticated freshness validation ensures accurate grades
  • Supports waiting for gradebook aggregation


Multi-Tenant Support (v2.0+)

For organizations with multiple departments or programs:

  • Configure separate API credentials per course category
  • Each category can connect to a different Credentium organization
  • Categories inherit settings from parent categories
  • Rate limiting per category


Template Caching

The plugin caches credential templates from Credentium:

  • Reduces API calls
  • 1-hour cache duration
  • Per-category cache isolation in multi-tenant mode


How It Works

High-Level Flow

Student Completes Course
        ↓
Moodle fires course_completed event
        ↓
Plugin creates issuance record (status: pending)
        ↓
Background task processes the request
        ↓
API call to Credentium issues credential
        ↓
Student receives credential in Credentium Wallet


Processing Details

  1. Event Detection: The plugin listens for Moodle's course_completed event
  2. Validation: Checks if the course is configured for credential issuance
  3. Queuing: Creates a pending issuance record and queues a background task
  4. Grade Handling: If grade sending is enabled, waits for grade aggregation
  5. API Call: Sends user data and grade to Credentium API
  6. Status Update: Updates the issuance record with success or failure


Plugin Architecture

File Structure

local/credentium/
├── classes/
│   ├── api/client.php          # API integration
│   ├── observer.php            # Event handlers
│   └── task/                   # Background tasks
├── db/
│   ├── install.xml             # Database schema
│   ├── events.php              # Event registrations
│   └── tasks.php               # Scheduled tasks
├── lang/
│   ├── en/                     # English strings
│   └── pl/                     # Polish strings
├── settings.php                # Global configuration
├── course_settings.php         # Course configuration
├── category_settings.php       # Category configuration
├── index.php                   # Admin report
└── version.php                 # Plugin metadata


Database Tables

TablePurpose
local_credentium_issuancesTracks all credential issuance attempts
local_credentium_course_configCourse-level settings
local_credentium_category_configCategory-level API credentials (multi-tenant)
local_credentium_templates_cacheCached credential templates


User Roles and Permissions

Capabilities

CapabilityWho Has ItPurpose
local/credentium:manageSite managersManage global plugin settings
local/credentium:managecourseManagers, editing teachersConfigure course credential settings
local/credentium:managecategoryCategory managersConfigure category API credentials
local/credentium:viewreportsSite managersView issuance reports
local/credentium:viewowncredentialsAll usersView own credentials


Supported Languages

  • English (en)
  • Polish (pl)


What's New in Version 2.0

Multi-Tenant Support

  • Configure separate API credentials per course category
  • Courses inherit settings from parent categories
  • Per-category rate limiting
  • Pause/resume issuances per category

Improved Grade Handling

  • Sophisticated grade freshness validation
  • Retry logic for grade aggregation delays
  • Stores completion timestamp for grade validation

Security Enhancements

  • API keys encrypted at rest
  • Lock mechanism prevents duplicate issuances
  • Improved error handling and logging


Getting Started

  1. Install the plugin - See Installation Guide
  2. Configure global settings - Enter API URL and key
  3. Configure courses - Select credential templates per course
  4. Enable completion tracking - Ensure courses have completion criteria
  5. Test - Complete a course to verify credential issuance


  • Installation Guide
  • Configuration Guide
  • Privacy and GDPR Compliance
  • Troubleshooting


Need Help?

If you have questions about the Credentium® Integration plugin for Moodle, please contact:

Credentium Support Email: support@credentium.com



Last updated: January 2026

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article