U
Ustawi

Collect cash with zero signal — with zero risk of double-posting.

On a rural route an agent can go hours with no connectivity. The Ustawi app records every collection on-device and syncs it later — engineered so that a retry can never post the same cash twice.

Ustawi FieldOffline
Amina J.Loan #4088
Installment 3 / 12
150,000
1
2
3
4
5
6
7
8
9
·
0
⌫
Offline — will be saved
Collection entry
A woman shop owner hands folded shilling notes to a female field agent who records the payment on an Android phone, no buildings or towers nearby, warm afternoon light

The problem this solves

Picture an agent working a route with hours of zero connectivity, collecting cash from borrower after borrower. Without a reliable offline mechanism, two things go wrong: collections either aren't captured at all, or a naive retry-on-reconnect posts the same collection twice — a genuine cash-custody and audit failure, where the ledger shows money that was never collected twice over.

This is not a hypothetical. Double-posted collections are one of the classic ways field cash reconciliation breaks down. The Ustawi app is engineered specifically so it cannot happen.

How the offline collection flow works

Each collection is recorded against a specific loan and installment from the agent's worklist, and written to a local on-device queue with a unique idempotency key. The agent sees the payment captured immediately, whether or not there is signal.

When connectivity returns, the queue syncs to the server. The server deduplicates by idempotency key, so even if the same queued write is sent twice — after a dropped connection, say — it is only ever posted once.

Why idempotency matters

An idempotency key is what makes 'try again' safe. The agent's phone can resend a queued collection as many times as the flaky network forces it to, and the server will still record exactly one posting. That single guarantee is the difference between a trustworthy field-cash trail and one that quietly drifts out of balance.

When a sync genuinely fails

A genuine failure — a malformed payload or a mismatched loan reference — is not silently dropped. It lands in a recoverable exception queue and is resolved by an operations supervisor through the Collections & Delinquency app. Nothing disappears; a broken write stays visible until a human clears it.

Offline-sync flow

  1. 1
    Select borrower
    From the day's worklist, against a specific loan and installment.
  2. 2
    Enter amount
    Recorded on-device instantly, online or offline.
  3. 3
    Queue with idempotency key
    A unique key is attached to the local write.
  4. 4
    Signal returns
    The queue begins syncing automatically.
  5. 5
    Server deduplicates
    Posted exactly once, even if resent.
  6. 6
    Confirmed / exception
    Synced cleanly, or routed to a recoverable exception queue.

Step by step

Ustawi FieldOffline
Amina J.150,000
Saved — will sync when back online
Queued
1 itemQueued
Saved offline
Ustawi FieldOnline
Amina J.150,000
Syncing…
Uploading
1 itemSyncing
Syncing
Ustawi FieldOnline
Amina J.150,000
✓ Synced
Confirmed
150,000Synced
Synced

Related features

See the field agent app in a live walkthrough.

FAQ

What stops a collection being posted twice?

Every collection is queued with a unique idempotency key. When the queue syncs, the server records only one posting per key — so a retry after a dropped connection can never double-post the cash.

What happens if I lose signal mid-collection?

Nothing is lost. The collection is written to the on-device queue and marked as saved; it syncs automatically when connectivity returns.

Which phones or operating systems does the app run on?

The field app is available on Android; an iOS version is planned.

What if a sync genuinely fails?

A genuine failure (for example a mismatched loan reference) lands in a recoverable exception queue and is resolved by an operations supervisor via the Collections & Delinquency app — it is never silently discarded.

Does the borrower get anything at the point of collection?

Yes — an instant digital receipt is issued for every collection, online or offline. See Digital Receipts & Sync.