ZeniTech · Case studies · Fintech · Français

ZeniPay: a financial ledger nobody can rewrite, not even us.

ZeniPay is the group’s financial platform: merchant onboarding, invoicing, payouts, accounting. In software that touches money, the question is not whether an error will happen, but whether you can prove what happened. Everything else was built around that.

Next.js 14TypeScriptSupabase / PostgresVitestVercel CronEd25519

Disclosure: Zeniva Travel, ZeniPay and ZeniCorp are companies in the same group as ZeniTech, founded by the same person, Alexandre Blais. They are not outside clients: we built these platforms for ourselves, and we run them.

Where the project stands

zenipay.ca is live. The connections to payment processors and to the banking partner are still in a test environment, awaiting production. Automatic commission splitting between partners is not built yet: the table exists, but distribution is done by hand today.

What we built

A Next.js 14 application with 133 pages and 198 API routes, on a Postgres database of about 70 tables protected by 58 row-level security policies. Nine scheduled jobs run on their own: balance and account synchronization, approval expiry, anomaly signals. The code is covered by 24 automated test files.

Four decisions that make the money traceable

What it teaches you if you are having software built

If your software collects, pays out or splits money, ask the provider three questions: can a past transaction be modified, what happens if a payment is sent twice, and how do you prove to an auditor that the history is complete. These three answers are decided on day one; adding them later costs much more.

Your project

We build yours with the same rules.

Code repository in your name from the first commit, standard stack, fixed price per phase. Free 30-minute discovery call, in English or French.

Other case studies