U
Ustawi

An instant receipt for every payment, even offline.

A borrower who hands over cash deserves proof immediately — not days later. The Ustawi app issues a receipt on-device the instant a payment is recorded, and reconciles it against the server ledger on sync.

ReceiptOffline
Receipt #RCP-4088-03
Amina J.150,000
Provisional — will finalize when synced
Receipt just issued (offline)
A field agent holds out an Android phone so a smiling woman vegetable seller can see the payment receipt on screen, crates of tomatoes around them

The trust problem this solves

In many legacy field-collection setups, a borrower who pays in a no-signal area has no receipt for days — sometimes none at all. That is a real dispute and audit risk: the borrower has nothing proving they paid, and the institution has no borrower-side record to reconcile against.

The Ustawi app closes that gap. A receipt is generated on the agent's device at the moment of payment, whether or not there is a connection.

How receipt issuance relates to sync

The receipt is marked Provisional when issued offline, then Finalized once it syncs and is confirmed against the server ledger posting. Crucially, the receipt and the underlying collection share the same idempotency key, so there is never a scenario where one exists without the other.

If a rare sync exception affects finalization, the receipt stays visible as 'Provisional — under review' rather than silently disappearing. The borrower's proof of payment never vanishes.

Why receipt-ledger consistency matters

A receipt that doesn't correspond to a ledger entry — or a ledger entry with no receipt — is exactly the kind of mismatch that erodes trust and complicates audits. Binding the two to one shared key means they move as a single unit: both provisional together, both finalized together.

Receipt-to-sync flow

  1. 1
    Payment recorded
    Collection captured on-device.
  2. 2
    Receipt issued
    Generated instantly, marked Provisional if offline.
  3. 3
    Shared idempotency key
    Receipt and collection bound to the same key.
  4. 4
    Sync
    Both reach the server together when signal returns.
  5. 5
    Finalized
    Receipt confirmed against the ledger posting, or held 'under review'.

Step by step

ReceiptOnline
Receipt #RCP-4088-03
Amina J.150,000
✓ Finalized · 14:32
Finalized (post-sync)
HistoryOnline
RCP-4088-03
150,000Final
RCP-3887-06
220,000Final
RCP-4102-01
90,000Provisional
Receipt history
ReceiptOnline
Receipt #RCP-4102-01
Neema K.90,000
Provisional — under review (never removed)
Under review

Related features

See the field agent app in a live walkthrough.

FAQ

Can a borrower get a receipt with no signal?

Yes — the receipt is generated on the agent's device the moment the payment is recorded, marked Provisional until it syncs and finalizes against the ledger.

How does the borrower actually receive or keep the receipt?

The borrower gets an SMS confirmation of the payment, and a printable PDF receipt is available once the record syncs to the server.

What is the difference between Provisional and Finalized?

Provisional means the receipt has been issued on-device but not yet confirmed against the server ledger. Finalized means it has synced and been matched to the ledger posting sharing its idempotency key.

Could a receipt exist without a matching ledger entry?

No. The receipt and the underlying collection share the same idempotency key, so there is never a scenario where one exists without the other.

What happens to a receipt if finalization fails?

It stays visible as 'Provisional — under review' rather than disappearing, so the borrower's proof of payment is never lost.