Skip to content
Book a call

Fintech · Payments

Save-n-Pay

Payments, dealer accounts, and a month-end that reconciles.

Role
Full stack
Duration
12 months
Team
3 from our side
Sector
Payments
save-n-pay — transfer flow
save-n-pay — dealer account
save-n-pay — reporting export

The situation

Remote payments, transfers, and dealer accounts on mobile, with PIN security on the sensitive paths and reporting the finance side depends on.

We built the React Native client, the GraphQL API behind it, and the reporting layer.

The problem

Two audiences with incompatible needs in one product. The consumer path has to be fast and forgiving; the dealer and finance path has to be exact and auditable.

Month-end was the pressure point. Reconciliation meant exporting raw transaction data and assembling it by hand in a spreadsheet — slow, and unreviewable once anyone had edited a cell.

What we built

  1. 01

    A GraphQL API shaped for two clients

    One schema serving the consumer app and the dealer views without either forcing compromises on the other's queries.

  2. 02

    PIN security on the paths that move money

    Re-authentication at the transaction boundary rather than only at login, so a handed-over unlocked phone cannot transfer funds.

  3. 03

    Transaction and fee reporting as a first-class feature

    Fee revenue modelled explicitly rather than derived after the fact, so a report and the ledger cannot disagree.

  4. 04

    One-click PDF exports

    Generated server-side from the same queries the app reads, so the document finance files is the same data the product shows.

React NativeGraphQLNodePostgreSQLAWSPDF export

The outcome

Transaction and fee-revenue reporting moved from manual export to one-click PDF.

Month-end reconciliation became a generated document rather than an assembled spreadsheet — traceable back to the ledger, and reviewable by someone who did not build it.