Fee-Based Account Suspension

The Moodle Fees Bridge (openeducat_moodle_fees_bridge) connects the fee ledger to Moodle access. Students whose outstanding balance crosses a threshold — and who have used up their grace period — have their Moodle account suspended, and are restored automatically once they pay it down.

The module installs itself as soon as both the Moodle integration and openeducat_fees are present. Institutions without the fees module see nothing extra.

Enabling It

  1. Open the Moodle instance and go to the Sync Configuration tab.

  2. Enable Suspend on Unpaid Fees in the push column.

  3. Save. A Fee Suspension tab appears on the form.

../../_images/moodle_fee_suspension_tab.png

Settings

Field

Description

Fee Currency

The currency the threshold is expressed in. Balances in other currencies are converted at the standard rate.

Suspension Threshold

The outstanding amount at or above which an account is suspended. A value of 0 means any unpaid amount triggers suspension.

Grace Period (days)

How long a student may stay above the threshold before suspension applies, counted from the earliest unpaid invoice. Default 14.

Last Fee Check

Read-only timestamp of the last run.

Warning

A threshold of 0 suspends a student for any unpaid balance, including a rounding difference or an invoice raised the same day. Set a realistic amount together with a grace period.

How the Check Runs

The daily Moodle: Fee Threshold Check job walks every Moodle-mapped student of each instance where the feature is enabled, and for each one:

  1. calculates the outstanding balance from the fee details, excluding cancelled lines and paid invoices, and reducing the total by any partial payment;

  2. suspends the Moodle account when the balance is at or above the threshold and the oldest unpaid invoice is older than the grace period;

  3. restores a suspended account as soon as the balance falls back below the threshold.

To run it immediately, click Run Fee Check Now in the instance header.

Suspension is the same mechanism used elsewhere in the integration — the Moodle account is disabled, never deleted, so the student’s grades and submissions survive and access returns in full once the account is restored.

On the Student Form

A Moodle — Fees section on the student form shows where each student stands.

Field

Description

Outstanding Fees

The total unpaid balance.

Fee Suspension State

Clean — below the threshold; Over Threshold — above it, suspension pending or within the grace period; Suspended on Moodle — access is currently blocked.

../../_images/moodle_student_fee_state.png

This lets the accounts and front-office teams see who is about to lose access, and answer a student’s question at the counter without opening Moodle.

Audit Trail

Fee-driven actions are written to the standard sync log with their own operations:

  • Fee Threshold Check — the run itself,

  • Fee-Driven Suspend — an account that was suspended,

  • Fee-Driven Unsuspend — an account that was restored.

They can be filtered like any other operation at Moodle Integration ‣ Reporting ‣ Sync Logs, which gives a complete record of who lost access, when, and why.

Note

A manual suspension made from the student form and a fee-driven suspension use the same Moodle flag. If a student is suspended manually and later pays their fees, the fee check will restore their access — suspend for other reasons only where that is acceptable.