Billing Management
EKKOU uses an automated billing system for associations using the platform. This system ensures that each association is billed correctly based on its number of members and billing frequency.
The billing process is managed by a scheduled task (Cron Job) that runs daily at midnight.
Each day, the system checks if a new invoice should be generated for an association. An invoice is generated if:
- The association has at least one member.
- The billing start date (
billing_start_date) is reached. - The billing option is enabled for the association.
If an association has not been processed for several periods (e.g., if the system was stopped or if the association was just activated with a past start date), the system automatically detects the missing periods and generates all necessary invoices at once.
Billing is based on the number of active members of the association at the time the invoice is generated:
- Base Fee: A fixed amount or per member depending on the association's configuration.
- Trial Period: New associations generally benefit from a free trial period. During this period, invoices at 0 XOF are generated and marked as "paid".
When a new invoice is generated:
- An email is sent to the authorized administrators of the association (those with the roles Administration, Secretary, Finance, or Supervisor) with the invoice attached.
- A push notification is sent to the administrators' mobile application (EKKOU Admin App) via registered devices.
An alert banner is displayed on the web dashboard and a notification is displayed on the mobile app when the trial period is approaching its end (14 days, then 7 days before expiration).
- The alert contains a direct link to the billing page.
- On the web, the banner can be closed via a close icon (X) at the top right.
- On mobile, the alert is presented as a dismissible information message.
- Important: The trial period alert automatically disappears as soon as the association makes its first payment (invoice with an amount greater than 0 XOF paid).
To prevent unexpected service interruptions, the system sends automated alerts for unpaid invoices approaching their due date:
- 14 days before due date: A first reminder email and push notification are sent to administrators.
- 7 days before due date: A final reminder alert is sent via email and push, highlighting the imminent risk of access restriction.
To ensure the sustainability of the platform, access restrictions are applied to associations with unpaid invoices. For annual invoices, a payment grace period of one month after the period start is granted before restrictions are applied.
An association is considered "restricted" if:
- Billing is enabled for the association.
- The trial period has expired.
- There is at least one invoice with a
pending status whose due date (due_date) has passed.
- Note: For annual invoices, the due date is set to 1 month after the start of the billing period.
When an association is restricted:
- Selection Blocked: Administrators cannot select this association during login or association switching. An error message is displayed with the list of unpaid invoices and an invitation to contact support.
- Interrupted Access: If a user is already logged into an association that becomes restricted, their subsequent actions will be blocked by a 403 error (accompanied by the detailed message).
- Visual Indicator: A "Restricted" badge appears next to the association's name in the selection list (Web and Mobile).
Users with the "Root" role (Platform Super-Administrator) are not affected by these restrictions. They retain full access to help resolve billing issues.
If invoices do not seem to be generated automatically:
- Check that the association has registered members.
- Check that the
billing_start_date field is correctly filled in the association settings. - Ensure that the "Enable billing" option is checked in the administration panel.