case study

Real-time payments across iOS, Android and web

Workplace technology startup

Embedding fintech payments expertise into a product team to ship instant disbursements across three platforms at once

Payments integration·AI-Augmented Teams·WorkTech / Workplace Safety·May 2024

Client identity and commercially sensitive detail are withheld under the confidentiality terms of this engagement.

Challenge

Challenge Our client builds a workplace platform that lets supervisors issue instant, on-the-spot cash rewards to workers who demonstrate safe behaviour, quality work, or positive contribution. What began in construction has since spread across logistics, manufacturing, hospitality, retail, and quick-service restaurants. The core product mechanic looks simple: a supervisor sees someone doing the right thing, opens the app, and issues a reward. The worker gets a notification, opens their own app, and reveals a cash prize deposited directly to them. That simplicity conceals substantial payment infrastructure underneath. These are not vouchers. They are real cash disbursements moving from employer-funded wallets to individual worker accounts, instantly, at scale, across a workforce spanning every demographic - many of whom do not hold conventional bank accounts or digital wallets. Delivering that at production scale meant integrating two complementary payment platforms: one providing global account infrastructure - multi-currency support, cross-border capability, and issued payment cards - and one providing domestic payment automation, covering real-time transfers over the national payments rail, simplified payment addressing, batch payment methods, and automated reconciliation across employer and worker accounts. Both integrations had to work seamlessly across the iOS app, the Android app, and the web dashboard at the same time. The internal engineering team had deep product expertise but needed specialist fintech knowledge - specifically the intricacies of both payment platforms - to execute the integrations correctly, at pace, and without degrading the existing product experience. They engaged us to embed directly into their team.

Approach

Approach Our engineers joined the client standups, worked in their sprint cadence, used their tooling, and operated as an extension of the internal team rather than an external agency delivering work in batches. The embedded model was deliberate: payment integrations touching live financial flows need deep context about how the product behaves, how edge cases are handled, and how errors surface to users. That context comes from being inside the team, not consulting from outside it. The integration architecture required careful sequencing. The two platforms serve different functions in the payment stack and had to be designed as complementary layers rather than competing implementations. One provided the global financial infrastructure - employer accounts, cross-border capability for international clients, card issuing where direct account transfer was not available. The other provided the domestic rails - real-time transfers for instant worker disbursement, simplified account addressing, automated reconciliation matching every inbound employer top-up against the correct wallet, and batch operations. The mobile-first nature of the product added complexity. The worker experience is entirely in-app, and the moment of revealing the reward is the product's core emotional beat. The payment confirmation that follows had to be as instant and reliable as the reveal itself. Payment flows that introduce latency or uncertainty at that moment break the product's central promise, so both integrations were designed with optimistic UI patterns and robust error handling so the in-app experience never degraded regardless of underlying processing state.

Solution

Solution The embedded team delivered the full payment integration across the product surface: Global account platform integration Employer account creation and management through the platform's global account API. Employer wallet top-up flows across web dashboard and mobile. Cross-border payment support for international enterprise clients. Card issuing infrastructure for reward disbursement where direct account transfer was not available. Webhook handling for payment state transitions - confirmed, failed, refunded - with corresponding state updates in the reward ledger and user-facing notifications. Domestic payments platform integration Real-time disbursements over the national payments rail for instant worker transfers. Registration and resolution of simplified payment addresses for workers who use them instead of account numbers. Batch payment support for employer top-up flows. Automated reconciliation configured to assign unique account identifiers to every worker account, so all inbound funds match in real time without manual intervention. Webhook processing for every payment event integrated into the backend. iOS integration (Swift) Payment flows across the iOS app: employer top-up screens, worker payment method management, real-time payment status over WebSocket connections to the backend, and push notifications for payment confirmations through APNs. The reward reveal sequence is wired to payment initiation so the experience is seamless - the reveal triggers the payment, and confirmation arrives within the same interaction. Android integration (Kotlin) Equivalent payment flows across the Android app with full feature parity, FCM push notifications for confirmations, and Android-specific handling of the back stack during multi-step payment flows so payment state is never lost. Web dashboard integration (React) Employer-facing payment management across the web platform: wallet funding flows, transaction history and reconciliation reporting drawn from both payment event streams, CSV export for payroll and compliance, and real-time balance display connected to the reconciliation data. Error handling and edge cases A production payment system needs robust handling for every failure mode. Insufficient wallet balance. Failed disbursements. Duplicate payment prevention through idempotency keys across both platforms. Partial failure states where payment was initiated but the confirmation webhook never arrived. Refund flows. Every edge case documented, implemented, and covered by automated tests before handover.

Results

Results Both integrations went live across iOS, Android and web, enabling real-time cash disbursement at scale across the employer and worker base. Real-time rails meant workers received rewards instantly - the promise of instant cash, central to the product, delivered on payment infrastructure that actually matched it. The global account layer let the client support international enterprise customers without building separate payment flows per geography. Automated reconciliation removed the manual account matching that had been constraining the operations team as reward volumes grew. The embedded team left the internal engineers with full ownership of both integrations: documented, tested, and operable without ongoing external dependency. What this engagement demonstrates: we can drop payments specialists into an existing product team and ship money-movement integrations across three platforms at once, without the product experience or the internal team taking a hit.

Technologies

Global accounts, card issuing, cross-border payments(Backend)Real-time domestic payment rails(Backend)Automated reconciliation(Backend)Swift (iOS)(Mobile)Kotlin (Android)(Mobile)React (web dashboard)(Frontend)WebSockets (real-time payment status)(Backend)APNs + FCM (payment push notifications)(Mobile)webhook processing (multi-provider event streams)(Backend)idempotency key implementation(Backend)payment ledger architecture(Backend)optimistic UI patterns for payment flows(Frontend)

Ready to reach escape velocity?

Let's talk about your product.

Contact us