Skip to content

Designing for the tower that falls over at five o'clock

· 7 min read · WynkPay

In a lot of the country, connectivity is not binary. It is fine at 10:00, unusable at 17:00 when the tower is congested, and gone entirely at stage 4. A payment app that treats the network as either up or down will be down for the busiest hour of the shop's day.

What can safely happen offline

Not everything. A wallet-to-wallet payment cannot be authorised offline, because the balance it draws on lives on the server and nobody can verify it from a handset. A card tap is different: the card itself carries the cryptographic material to authorise a small amount, which is why offline card acceptance is a real, certified thing, bounded by a floor limit.

  • Card taps below R500 per transaction and R2 000 per terminal per day continue offline and clear on reconnect.
  • The top twenty airtime, data and electricity products sell from a voucher cache held on the device.
  • Everything else queues — up to 500 operations — and replays in order, each with an idempotency key so a retry can never double-charge.

The idempotency key is the whole safety net

Once you accept that a device will retry, you have to accept that the server will see the same instruction twice. Every financial write in the platform carries a key generated at the moment the shopkeeper pressed the button, and the server returns the original result for a repeated key rather than performing the work again. Without that, an offline queue is a machine for double-charging customers.

And when the problem is power, not signal

Software cannot fix a dead router. The Comms Box carries the shop's till network for about eight hours on battery across two carriers, and reports its own state back to us every minute — so a shop about to go dark shows up on our board before the shopkeeper picks up the phone.