This guide walks through the platform in the order most schools actually use it — from creating your account to recording your first payment. Jump to any section from the menu on the left.
FeesPay works with how your school already collects fees — cash at the accounts office, bank transfer, or POS. Nothing changes about how parents pay; FeesPay is where your team logs it, tracks it, and gives you one clean record per term.
Every school gets one Owner account from registration. The owner can add Accountant logins for their team, and set up a separate Gate Check login for security staff at the gate — each with only the access they need.
Registration takes about five minutes and ends with a 6-digit PIN — your login for every visit after this.
Select the type of school you run — Nursery/Primary, Secondary, or Tertiary. This helps FeesPay set up the right class structure for you later.
Choose "No, I'm new here" if this is your first school on FeesPay. Choose "Yes, I have an account" if you're adding a second campus or another school under a FeesPay account you already run — see managing multiple schools.
Accept the terms and submit.
Enter the one-time code sent to confirm your details. Didn't get it? Use the resend link on the same screen.
This replaces a password — you and every accountant you add will log in with a phone number and a PIN. Choose one only your team knows.
Tip — Use a PIN that isn't tied to a birthday or your school's opening year. You can change it any time from Settings.
Right after your PIN is created, you'll land on the plans page. FeesPay's plans are priced by how many students you have — not by feature.
Each plan shows a student ceiling (e.g. "Up to 500 students") and a price. Running a bigger school? A custom quote is available for schools over 1,000 students.
Pay instantly by card, bank transfer, or USSD through the checkout — your account activates the moment payment clears.
Or pay by direct bank transfer and submit your proof of payment on the same page. The FeesPay team reviews and approves this manually, usually within one business day.
Once your subscription is active, the full dashboard unlocks. If a plan expires or a proof is still pending, you'll see a status page instead of the dashboard until it's resolved.
Growing mid-term? If your enrolment gets close to your plan's student limit, you'll see a prompt to upgrade — your existing records carry over, nothing is lost.
A short verification step so your school's identity, bank details, and branding are correct across receipts and reports.
Business name, email, phone, school type and board, plus your address, state and LGA.
Your Tax Identification Number (TIN), and the bank account your school settles into — bank name, 10-digit account number, and the account name exactly as it appears at your bank.
Full name, date of birth, and BVN for each director on record — this is part of verifying your school as a business.
Your school badge or logo appears on receipts, the login screen, and gate-check results — upload a clear, square image for the best fit.
You can start using the dashboard before finishing this step, but complete it early — some settlement and verification features depend on it.
Everything in FeesPay — fees, payments, statistics — is filed under a session (school year) and a term. Set these up first.
Add your current school year, e.g. 2025/2026.
Add First, Second and Third Term under that session, then mark the one currently running as active. The active term is what shows by default across fees, payments and statistics — a term switcher at the top of the dashboard lets your team look back at earlier terms without changing what's active.
When a new school year starts, create the next session and terms the same way. Your students, classes and fee history stay intact — see promoting students for moving pupils up a class.
Build your class structure once — students, fees and payments are all organised by class from here on.
Give it a name — e.g. Primary 1, JSS 1, Grade 3 — and a category, then save. Repeat for every class in your school.
If a class is split into streams — Gold, Silver, A, B — add each as an arm and assign it to its class. Arms are optional; skip this if your classes aren't split.
Add students one at a time, or bring your whole school in at once with a spreadsheet import.
From Students → Import, download the sample spreadsheet, fill it with your student list, and upload it. FeesPay checks it and shows you exactly what will be added before anything is saved.
Each student gets a short gate code used for fast lookup at Gate Check. Generate these in bulk right after import, or one at a time from a student's profile.
Pull your full student list to a spreadsheet whenever you need it — for a census, a board report, or your own backup.
Create each fee type once, then set how much it costs per class — different classes can be charged different amounts for the same fee.
Open the fee and set an amount for each class it applies to — e.g. Tuition can cost ₦45,000 for Primary 1 and ₦52,000 for Primary 6 under the same fee.
Change an amount, retire a fee for a term with the status toggle, or remove one you no longer charge — nothing you've already recorded is affected.
This is where most of your team's time goes. A parent pays the way they normally would — your accountant logs it here in under a minute.
Go to Payments → New Payment and select the class, arm, and student — or search by name directly.
Pick the fee being paid. FeesPay fills in the amount expected for that student's class automatically — you only need to enter the amount paid, which can be a full or part payment.
A receipt is generated instantly and can be shared with the parent. Need to fix an entry? Open it from Transactions to edit, add a note, archive, or delete it.
Part payments are tracked automatically — if a parent pays ₦30,000 of a ₦50,000 fee, the balance carries forward and shows clearly on the student's ledger until it's cleared.
See exactly who has paid, who's owing, and by how much — for any fee, any class, any term.
See a fee-by-class breakdown of what's been collected against what's expected, for the active term.
Click into any fee and class to see every student's status — paid, part-paid, or owing — with amounts.
From the same drilldown, you can exempt a student from a fee (and reverse it later with recover), or override the amount a specific student owes if it differs from the class default — e.g. a sibling discount.
Download any drilldown as a spreadsheet for your accounts file or a board report.
Move your whole school up a class in a few clicks when a new session begins.
FeesPay suggests the next class for every student based on your class order — review it class by class before anything is applied.
Mark a student to repeat their class, or graduate them out of the school, instead of the default promotion — nothing is forced.
Confirm to apply the promotion across the school for the new session. Made a mistake? Individual promotions can be undone right after.
Do this once you've created the new session and term — see academic session & term.
Let your gate or security staff confirm a student's fee status in seconds — without giving them access to your dashboard.
From Gate Settings, set a Gate PIN for your school. Your school's Portal ID is shown on the same page.
Give them the Portal ID and Gate PIN, and point them to the separate gate login page — this is different from the main staff login and only unlocks the fee-check tool, nothing else.
Gate staff enter the student's short gate code (from the ID card, or told to them) to instantly see whether that student's fees are cleared for the selected session and term.
Reminder — gate codes are generated per student from the Students section — do this before rolling Gate Check out.
Give your accounts office their own logins, scoped to the day-to-day work — recording payments, not changing school setup.
Add a name, a phone number, and a 6-digit PIN for the new accountant.
They log in with that phone number and PIN, the same way you do — but see a narrower dashboard. Pass the PIN along privately, not over a group chat.
Turn an accountant's access off the moment they leave your team, and reactivate later if they return — nothing about their past entries changes.
Run more than one campus? Keep them all under one login and move between them in a click.
From the switcher in your dashboard, choose Add School and register it the same way as your first — it's attached to your existing account.
Use the same switcher any time to move between campuses — each has its own classes, students, fees and records, kept completely separate.
A second campus you add this way shares your subscription and student allowance with your first school by default — reach out to support if you'd rather bill it separately.
Everything about your own login and account lives in one place.
Change any of these any time from Settings — a new logo updates instantly across receipts and gate check.
Renewal reminders, low-slot warnings, and proof-of-payment updates show up here — mark them read as you go.
See your current plan, when it renews, and how many student slots you've used — with a direct link to upgrade if you're close to your limit.
Registration takes about five minutes — start where this guide does.