BitriPay
ONE QR. ONE GATEWAY. EVERY ELIGIBLE RAIL.Pay Local. Fund Global. Settle Your Way.
reaching everyone

Paying when there is no network at all

Networks fail at exactly the wrong moments. A signed, counted promise exchanged between two phones lets a sale complete now and settle when the signal returns — without creating a way to spend the same money twice.

Networks fail at the worst possible moments: market day, the hour before closing, the afternoon everyone is paid.

When the signal goes, digital payment stops and everyone returns to cash — which is exactly when a trader is carrying the most of it.

The obvious fix and its obvious hole

Let the two phones agree between themselves and synchronise later.

This works beautifully until somebody realises they can make the same offline promise to four different merchants in four different parts of the market, and be gone before any of the phones find a signal.

Offline payment is easy. Offline payment that is not a double-spend machine is the actual problem.

A signed, counted promise

The payer’s phone produces a promise carrying the amount, a nonce and a per-device counter, signed by the device’s enrolled key.

The merchant’s phone verifies that signature with no network at all. It cannot fabricate a promise, because it does not hold the payer’s key.

The nonce means a replayed promise is recognised. The counter means a gap is visible: if a device synchronises promises 41, 42 and 44, somebody is holding 43 and the system knows to look for it.

The honest part

You cannot make offline spending risk-free. Anybody claiming otherwise is selling something.

What you can do is bound the exposure and tell the truth about it:

  • Limits cap how much can be promised offline before synchronising.
  • Expiry means an unsynchronised promise does not sit forever as an open claim.
  • Counter gaps are listed per device, so a phone that has stopped synchronising is visible rather than assumed healthy.
  • And both sides see the words pending confirmation rather than a green tick.

That last one matters most. A merchant who knows a payment is a promise can decide whether to hand over the goods based on the size and the customer. A merchant shown a tick that means nothing has been lied to.

Which is still better than cash

Cash on market day means carrying notes through a crowd and keeping them overnight. A signed promise from an enrolled device, pending confirmation, bounded by a limit, is a smaller risk than a full cash box — and considerably smaller than a screenshot on a stranger’s phone.

When the signal returns

Promises synchronise and settle. Both sides see the payment move from pending to settled, and the merchant sees the money.

The sale happened when the customer was standing there. The settlement happened when the network allowed it. Those are two different events, and the product does not pretend they are one.

What you can check

These are facts about the running platform, not adjectives. Each one is visible in the product, in the API reference or in the ledger.

  • A promise is signed by the payer’s enrolled device key, so it cannot be fabricated by the merchant’s phone.
  • Each promise carries a nonce and a per-device counter; a replayed promise is recognised and a missing counter value shows as a gap.
  • The pending state is shown to both sides in plain words rather than being presented as a completed payment.
  • Promises have an expiry, so an unsynchronised promise does not sit indefinitely as an open claim.
  • Counter gaps are listed per device, so a device that has stopped synchronising is visible rather than assumed healthy.

What it costs

No additional charge. The payment is priced as an ordinary payment when it settles.

Is it switched on?

Whether this is available depends on the authorisations in place and on what the administrator of a given deployment has switched on. That changes, and an article does not — so the live answer lives on the feature page, which reads it from the platform itself: Offline payments on the features page.

Frequently asked questions

What stops somebody spending the same money twice offline?

Each promise carries a nonce and a per-device counter. Replays are recognised, and a gap in the counter is visible when the device synchronises. It is not possible to make offline spending risk-free — which is why the exposure is bounded by limits and expiry, and why both sides are told the payment is pending rather than complete.

Does the merchant have to trust the customer?

Less than with cash, and considerably less than with a screenshot. The promise is signed by the payer’s enrolled device and cannot be fabricated by the merchant’s phone — but it is a promise until it settles, and the screen says exactly that.

What if a phone never comes back online?

Promises expire, and counter gaps per device are listed, so a device that has stopped synchronising is visible rather than quietly assumed to be fine.

reach everyone offline payments
Try it with a free account

Send with a QR code, add money by card or mobile money, issue a virtual card. Sandbox balances let you explore before any real money moves.

Open an account

Keep reading