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
- An append-only ledger. Postgres rules refuse any update or deletion of an entry: an error is corrected with a reversing entry, never by erasing. Balances are not stored; they are calculated from the ledger.
- Idempotency keys. Every payment and every payout carries a unique key: if the same request arrives twice, because of a slow network or a double click, it is processed only once.
- Atomic balance updates. Balance operations go through database functions that read and write in a single step, which removes race conditions between two simultaneous requests.
- A signed audit log. The audit export is sealed with a Merkle tree and signed with an Ed25519 key: an auditor can confirm offline that nothing was removed or changed.
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.
See our prices · Custom software · App development · AI agents