Skip to main content
All articles
Guide16 min read

School fees online payment in Morocco: enrollment, monthly fees and families without a card

School fees online payment in Morocco: a link for enrollment, one subscription per family for monthly fees, cash at an agency and tracking family by family.

School fees online payment in Morocco comes down to three tools: a single-use payment link for each student's enrollment, one monthly subscription per family for the monthly fees, which emails the parent a payment link on every due date, and a monthly link paid in cash at an agency for families who do not have a card. The administration follows each family from the portal, the accountant reviews without triggering anything, and every successful payment is available instantly in the school's payment account. This guide is for private schools, daycare centers and tutoring centers that want to move past envelopes and checks without losing a single family along the way.

Online school fee payment, in three tools

ChariPay is a Moroccan payment platform, a PSP operated by Chari Money, a payment institution licensed by Bank Al-Maghrib. For a school, it replaces neither the school management software nor the student register: it collects and keeps a trace of each payment. The school year breaks down into moments, and each moment has its tool.

Moment of the yearChariPay toolCardCash at an agency
Enrollment or re-enrollmentOne single-use payment link per studentYes, with 3-D SecureYes, by reference
Monthly feesOne monthly subscription per family: a payment link emailed on every due dateYes, with 3-D SecureSee the next row
Monthly fee for a family without a cardOne single-use link per family and per due dateYesYes, by reference
One-off fees (field trip, activity, supplies)One single-use link per familyYesYes, by reference

Monthly fees here are simply the amount the school sets for each month and collects on each due date: the subscription automates the payment requests and the reminders; it changes nothing about your fees or your calendar. The full offer is described on the subscriptions and recurring payments page. If you sell online courses to individuals rather than enrolling students, the case is different: see how selling online courses works.

Enrollment fees are a one-off payment, owed by a specific family, before a specific date: that is exactly what a single-use payment link does. A payment link is an amount and a description; the customer pays on a page hosted by ChariPay. It is shared as a link, a QR code, a printable PDF poster, by email or WhatsApp, with an expiry of your choice — 24 hours, 7 days, 30 days, never, or an exact date — and a clear status: active, paid, canceled, expired.

For back-to-school season, four settings make the difference:

  1. 1Save the family as a customer, with the name, email and phone number of the parent who pays: you find them again for the enrollment link, then for the monthly-fee subscription.
  2. 2Write a description that stands on its own: the student's file, the grade and the school year — "Enrollment 2026-2027 — file 0412, Grade 4". That is the text shown to the parent, and the one you find in the portal.
  3. 3Match the expiry to the enrollment deadline for a family paying by card, using the "on a specific date" option: after that date, the link expires and the seat is open to discussion again, instead of a late payment landing on a list that is already closed.
  4. 4Send the link through the channel parents actually read — email, WhatsApp, or a QR code printed on the enrollment packet.

The parent pays by card, with 3-D Secure authentication at their bank. For a family that will pay in cash, create a link with "Agency payment" instead, without an expiry: in the portal, turning on this option disables the expiry, and the link stays payable with no time limit. The family chooses cash on it and pays the reference at an agency of the Chari network. Either way, the link turns "Paid" and you are notified in the portal: the enrollment is confirmed without manual checking. The link page shows the school's name and logo and is set up from the account settings. Everything about payment links is described on their product page.

Before you change parents' habits, see what they will receive: Start in test mode. Three fields — name, work email, company — an activation link received by email to choose your password, then the portal, where you create your own test key. Create a "family" customer with your own email address, an enrollment link and a monthly subscription whose first due date is today — the first link goes out by email right away — then pay them with the test card: no real money moves. It is free, with no time limit and no approval to wait for: the verification of your school (KYB) only gates the move to production.

Monthly fees: one subscription per family, until the end of the school year

For monthly fees, the tool is the subscription, and the setup fits in one line: one monthly subscription per family (frequency set to MONTHLY), starting on the first due date of the school year (startDate) and ending at the end of the school year, after the last monthly fee (endDate). One payment link per family per month, for the amount you set for them, emailed to the parent on every due date.

Three rules frame the monthly fees, and parents should know them before they commit:

  • The link for each due date. On every due date, the parent receives a single-use payment link by email, in a message whose subject announces the new due date and repeats the subscription's description; they pay on the hosted page, by card with 3-D Secure. The parent's email is therefore essential: that is where the links are sent.
  • The reminders. Until the monthly fee is paid, a reminder goes out by email every day, with the same link, which stays payable for 14 days after the due date; no new period is opened in the meantime.
  • The end date. It is set at creation, through the API: with endDate at the end of the school year, the subscription stops on its own. Without an end date, it runs until you cancel it, from the portal or through the API. The following year, you start again from a re-enrollment link and a new subscription.

Statuses, pause and resume, the time zone of due dates: the full mechanics are covered in the subscription API step by step, for your developer or your school software vendor.

Not every family pays by card, and a subscription's links are paid by card. For families who pay in cash, the right setup is one single-use link per family and per due date, created each month — never a cash subscription.

On the page of a single-use payment link, the family chooses cash, receives a reference and pays it at an agency of the Chari network. Cash payment at an agency always relies on a single-use link — one reference per deposit. As soon as the network confirms the deposit, the link turns "Paid" and you are notified in the portal; on the server side, read the link's state with GET /v1/payment-links/{reference}.

ChariPay is the only payment gateway in Morocco that also collects cash at agencies. For the school, this changes the front desk: no more counting envelopes, making change or keeping a receipt book; a monthly fee paid in cash becomes a dated, referenced line, just like a monthly fee paid by card.

Three habits make this flow reliable:

  • Create the month's links on a fixed date, when the subscribed families' due-date links go out: everyone gets their request at the same time.
  • Create these links with "Agency payment", without an expiry — in the portal, this option disables the expiry and the link stays payable with no time limit — and give them a clear description: "Monthly fee November — family B.".
  • Through the API, paymentMethod: "CASH" preselects cash on the page; otherwise the family chooses between card and cash, and can pay by card in a month when they have one.

How references and agencies work is explained in detail in collecting cash at an agency.

When a monthly fee goes unpaid

A monthly fee can stay pending: an email that went unnoticed, a card declined by the issuing bank. Until the installment is paid, the parent receives an email reminder every day, with the same link; no new period is opened, and the family does not pile up overdue fees. The link stays payable for 14 days after the due date; if it expires unpaid, the subscription is canceled automatically. In the portal, the Subscriptions page shows who is up to date and who has an unpaid installment, and each subscription's page shows every installment and its state.

The human follow-up stays with the school, and that is what makes the difference:

  1. 1Check unpaid installments every morning: the portal's Subscriptions page shows who is up to date and who is not, and each subscription's page shows the state of every installment.
  2. 2Call the family during the reminders, not after the cancellation: an email that went unnoticed, a replaced card or a question to settle with their bank is easier to handle early.
  3. 3Switch to the monthly cash link if the family can no longer pay by card: cancel the subscription, then, for each of the following monthly fees, send that month's link; the family pays the reference at an agency, without waiting for a new card.
  4. 4Write your own rule — grace period, meeting with the principal — into the financial terms handed out at enrollment: ChariPay keeps you informed; the consequences at school remain your decision.

If your school management software is connected to the API, the events notify it without any re-keying: subscription.payment_succeeded for a paid monthly fee, subscription.payment_failed for a card payment declined on the link — which stays payable — and subscription.canceled for the automatic cancellation of a subscription whose link expired unpaid. When you cancel yourself — from the portal or through the API — do not wait for an event: the response to POST /v1/subscriptions/{reference}/cancel already carries the CANCELED status; update your system at that point. The full walkthrough — what the parent receives, what you see, which messages to send — is in the guide to unpaid subscription installments and reminders.

The administration's view: accountant, cashier, management

In a school, the person who collects is not the person who pays suppliers, and the person who checks the books must not be able to trigger anything. Portal roles separate viewing from acting: owner, manager, cashier, accountant. The accountant reads everything without triggering anything, the cashier collects without seeing the balance or transfers, the owner or an authorized manager triggers outgoing operations.

Mapped onto a private school's organization:

PersonPortal roleWhat they do
Principal or founderOwnerDoes everything, including managing the team; triggers transfers and payouts to the bank
Bursar or administrative managerManagerHandles links, subscriptions, refunds, transfers and exports; manages neither the team nor API keys
Front deskCashierCollects — enrollment links, monthly cash links — without seeing the balance or transfers; sees only their own links
In-house accountant or outside firmAccountantReads everything — payments, due dates, balance — and exports, without triggering anything

The full matrix, including onboarding and offboarding a staff member, is in portal roles and access.

Family-by-family history, to answer parents

A parent calls to ask whether October's monthly fee went through: the answer has to be immediate. It is, if every payment carries the family's name: a saved customer, reused for their links and their subscription, and a description that names the family and the due date. In the portal, each link shows its status — active, paid, canceled, expired — and each subscription shows its own; through the API, GET /v1/subscriptions/{reference}/charges lists every installment the subscription has generated — each with its status and its payment link — most recent first.

For accounting, every account movement carries the reference of the sale, refund or payout that explains it; the portal separates amount paid, fees and net, and the CSV export keeps those references — from the portal or with GET /v1/transactions/export.csv (up to 10,000 rows; beyond that, split by period with from/to). Timestamps are in UTC; Morocco is UTC+1: your reconciliation tool must convert. Without conversion, a payment made just after midnight Moroccan time on the first of the month shows up on the previous day, in the previous month.

Through the API, also add a flat metadata to the subscription and the links, carrying your family file number — never sensitive data: it comes back verbatim on API reads and in payment events, and ties ChariPay to your school software.

One limit, finally: ChariPay issues neither school certificates nor school fee payment certificates; those documents remain the school's own. The family-by-family history is what you use to produce them in your own tool, the day a parent needs one.

Getting ready for the school year, step by step

  1. 1Create the "family" customers with the email of the paying parent, which is essential: that is where the link for each monthly fee and the reminders are sent.
  2. 2Send the enrollment links, one per student: with the enrollment deadline as the expiry for a card payment, with "Agency payment" and no expiry for a family that will pay in cash.
  3. 3Create the subscriptions for families paying by card: monthly, with a start date on the year's first due date and, through the API, an end date after the last one.
  4. 4Brief the families: on every due date, they will receive a payment link by email, with the subscription's description in the subject, to pay by card with 3-D Secure, then a reminder every day until it is paid.
  5. 5Prepare the monthly cash links for families without a card, on the same date each month.
  6. 6Check the first month with your accountant: export references, amount paid, fees and net in the portal, timestamp conversion.

As soon as a payment succeeds — a card authenticated with 3-D Secure or a reference paid in cash at an agency — the amount is available in your ChariPay payment account and usable right away: transfers, bills, top-ups. "Available instantly in the account" does not mean "instant bank transfer": the payout to your bank remains a separate operation. In practice, the school pays its back-to-school suppliers with enrollment fees already collected.

Frequently asked questions

How can a private school collect school fees online?

With three tools: one single-use payment link per student for enrollment, one monthly subscription per family for the monthly fees, which emails the parent a payment link on every due date, and a single-use link each month for families without a card, paid in cash at an agency of the Chari network. Everything is tracked in the portal, family by family, and can be tried for free in test mode.

How do parents pay each monthly fee?

On every due date, the parent receives a single-use payment link by email, with the subscription's description. They open it and pay on the payment page hosted by ChariPay, by card with 3-D Secure; the monthly fee then shows as paid in the portal. Explain this in the enrollment packet, along with the dates of the first and last monthly fees, so that families know what they will receive.

Do families get a reminder if they have not paid?

Yes. Until the monthly fee is paid, the parent receives an email reminder every day, with the same payment link. That is why the parent's email is essential when their customer record is created. The link stays payable for 14 days after the due date: announce the date of each monthly fee at enrollment, so that families can get organized.

Can a family without a bank card pay school fees online?

Yes, through a link paid in cash. Each month, the school sends them a single-use link; the family chooses cash, receives a reference and pays it at an agency of the Chari network. As soon as the network confirms the deposit, the link turns "Paid" and the school is notified in the portal. A subscription's links, on the other hand, are paid by card.

What should a school do when a family misses a monthly fee?

First let the reminders run: the parent receives an email every day with the same link, which stays payable for 14 days after the due date. Meanwhile, call the family; if they can no longer pay by card, cancel their subscription and switch them to the monthly cash link for the following monthly fees. If the link expires unpaid, the subscription is canceled automatically; the school's own policy, however, remains yours to decide.

Does the subscription stop at the end of the school year?

Yes, if you give it an end date, which is set at creation, through the API. Create each subscription with a start date on the first monthly fee of the year and an end date after the last one: it then stops on its own, with no action from you. Without an end date, cancel it from the portal or through the API. You can also pause an active subscription, then resume it.

Can the school's accountant review payments without making transfers?

Yes: that is the accountant role in the portal. The accountant reads everything without triggering anything — payments, due dates, exports — the cashier collects without seeing the balance or transfers, and the owner or an authorized manager triggers outgoing operations. An outside accounting firm can therefore follow the school with no power over the account.

Does ChariPay issue school fee payment certificates?

No. ChariPay collects and keeps a trace, but issues neither school certificates nor school fee payment certificates: those documents remain the school's own. Each family's history — enrollment link, subscription due dates, monthly links — the CSV export and its references, along with the amount paid, fees and net the portal separates, give you what you need to produce them in your own tool.

Next step

Rehearse the school year in test mode before announcing it to families: Start in test mode, create a "family" customer with your own email address, send them an enrollment link, add through the API, with your test key, a monthly subscription, its end date and a first due date set to today — the first link goes out right away — pay it with the test card, then read the export. The subscriptions and recurring payments page sums up the offer, and the subscription API step by step explains the mechanics.

Written by ChariPay team.

Read next

Ready to try it yourself?

Create your account and take test-mode payments today: it is free, with no approval to wait for. A question? Our team supports merchants and developers alike.

  • Free, no commitment
  • Test mode from sign-up
  • No approval to wait for