How it worked before
Each student belongs to a Type (their payment schedule). At the start of every billing period, e-maktab reset the student’s outstanding fee based on that Type. For example, students on a monthly schedule had their fee reset on the 1st of each month. Anything left unpaid from the previous month was added to the new amount.
The result was a single rolling balance. It showed how much a student owed, but not which months or billing periods that amount was for.
If a payment taken through Stripe failed, it was recorded as failed and the fee stayed unpaid.
How it works now
We have introduced invoicing. Instead of resetting a balance, e-maktab now creates an invoice for each student at the start of every billing period, based on their Type.
This means you can now see:
- exactly what is outstanding, broken down by invoice
- which billing period each amount relates to
- which invoices have been paid and which are still unpaid/partially paid and over due
How your existing data was moved across
To make sure nothing was lost when invoicing went live, we converted your existing records as follows:
- Outstanding balances. For each student with an outstanding fee at the time of the switch, we created one invoice for that amount, labelled “Outstanding balance at rollout”.
- Payments that had been paid. For each payment recorded as paid, we created a matching invoice and marked it as paid, labelled “Backfill from payment #xxxx”.
- Unpaid or failed payments. For each payment that was unpaid, or that failed to collect through your Stripe integration, we created a matching invoice and left it unpaid, also labelled “Backfill from payment #xxxx”.
Why a balance might look different from what you expect
The invoices were built from the records held in e-maktab at the time of the switch. If a parent paid outside the system (for example by cash or bank transfer) and that payment was never recorded in e-maktab, it will show as an unpaid invoice.
How to check:
Open up the unpaid invoice, scroll down to the payments section, click on the amount to open up the payment record and check the History of the payment and also see if that was a payment that failed by Stripe.
A failed by Stripe will show you a failed status and a long Stripe payment intent ID starting "pi_xxxxxxxxxxxxxx"
If you believe this payment was cleared but it was never updated in the system before the rollout you can mark the invoice as paid by logging a payment against it for the same amount or log it as Mark As Paid from the Parent/student section.
Comments
0 comments
Please sign in to leave a comment.