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
Send
1,250.00to dealer 0412
Fee2.50
Arrivesinstant
Confirm
PIN
confirm to send
save-n-pay — transfer flow
Dealer 0412
48,210.75available balance
Transfer in+2,400
Fee−12.00
Payout−8,000
Transfer in+950
This month
Volume212k
Fees1,048
save-n-pay — dealer account
reporting export
Month-end reconciliationExport PDF
212,480
volume
1,048
fee revenue
0
unreconciled
Dealer 0412 · 84 transactionsmatched
Dealer 0391 · 61 transactionsmatched
Dealer 0377 · 47 transactionsmatched
Dealer 0355 · 20 transactionsmatched
save-n-pay — reporting export

Interface illustrations, not screenshots — the client's product is under agreement.

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.