Symphony Apps Development logo — teal interlocking S monogram beside the studio wordmark
All work

Smart wallets

In-app wallets with double-entry ledgers: card top-ups, held funds, transfers, refunds and payouts that reconcile to the cent against the payment provider.

Year
2019–present
Timeline
Multiple engagements
Team
Symphony Apps
Stack
6 technologies

Double-entry

Ledger

0

Unreconciled cents

SCA

Compliant payments

Audit

Full transaction trail

Balances, top-ups and payouts inside your product. Figures measured against the process this platform replaced, twelve weeks after full rollout.

The problem

Storing a balance in a column on the users table is the most common and most expensive mistake in this category. The first double top-up, failed webhook or partial refund produces money that exists in one system and not the other.

The approach

A proper double-entry ledger: every movement is two immutable entries, balances are derived, and nothing is ever updated in place. Authorisations, captures, holds and refunds are modelled as distinct states.

Provider webhooks are idempotent and replayable, and a nightly reconciliation job compares the ledger against the provider's settlement report and raises a difference rather than silently correcting it.

The build

Card top-ups with 3-D Secure, stored payment methods, wallet-to-wallet transfers, promotional credit with its own expiry rules, payouts to drivers or merchants, and a back-office view with a searchable transaction trail per user.

The stack

Node.js and Laravel services over PostgreSQL with serialisable transactions on the money paths, Stripe and local acquirers behind one payment abstraction, and tests that assert the ledger sums to zero.

Technologies

  • Node.js
  • Laravel
  • PostgreSQL
  • Stripe
  • 3-D Secure
  • Webhooks
Next projectFoi Parcurs Online

Tell us what you’re trying to ship

A first call is thirty minutes and costs nothing. Bring the problem, not a spec — working out what to build is the part we are good at.

Or email office@symphonyapps.ro. We reply within one business day, in English or Romanian.