VECTIQ
← All posts
Product update · Platforms & Software

Collect the Full Tuition Without Chasing Anyone

Centres rarely lose money to bad debt. They lose it to transfers nobody matched, reminders nobody sent, and a spreadsheet that stopped agreeing with the class list in week three.

by Vectiq Engineering · 2026-09-17 · 5 min read
Collect the Full Tuition Without Chasing Anyone

Every centre owner has the same conversation with their accountant at the end of a term: the bank statement says one thing, the class list says another, and reconciling them takes an evening nobody planned for.

It is almost never fraud. It is a parent transferring 3,200,000 with the note "hoc phi", and another parent transferring the same amount the same afternoon.

The payment should know which invoice it belongs to

ECMS puts the invoice reference inside the VietQR code. The parent scans and confirms - they never type a note, so they cannot get it wrong - and the bank's confirmation writes the payment back against that invoice automatically.

No export. No matching by hand. No evening.

When the reference does not survive intact - banks truncate and uppercase things - the system falls back to amount, payer and time window, and when even that is ambiguous the payment waits in a review queue rather than being guessed onto the wrong student. A system that always decides will eventually credit the wrong child, and that error costs more than the manual work it replaced.

Reminders that are not a person's job

The uncomfortable truth about late fees is that most of them are not refusals. They are a parent who meant to pay on Tuesday.

Outstanding balances generate their own notice, with the payment code attached, through the app and Zalo ZNS. Nobody has to keep a list of who to chase, and nobody has to have the awkward conversation for a payment that was simply forgotten.

The number you can finally trust

Because tuition, enrolment and attendance share one record, questions that used to require a reconciliation become ordinary reports:

  • Which classes carry unpaid balances, by how much, for how long.
  • Which programmes are actually profitable once teacher cost is attributed to the class.
  • Which students are at risk of leaving for financial rather than academic reasons - a distinction you can act on, but only if both halves of the record agree.
NOTE
One deliberate strictness

The payment-confirmation endpoint refuses to run without its signing secret configured. Not "skip the check and process anyway" - refuse. An endpoint that marks invoices paid is exactly the endpoint you do not want running unauthenticated because someone forgot an environment variable on deploy day.

What it is worth

Not the accountant's evening, although that is real and recurring.

It is that the centre stops running on two versions of the truth. When the class list and the finance record are the same record, the revenue forecast is a query instead of an argument - and you find out about a collection problem in week three, when it is a phone call, rather than at the end of term, when it is a loss.

ECMSHọc phíVietQRQuản lýDòng tiền