Bridge Payments · Offline payments

Get paid where the network isn't.

Your customer loads value onto their phone while they're online. With no network at all, their phone pays yours, and both devices sign the payment. When either reconnects, the payments settle with the bank, and replays are rejected.

Illustrative
How it works

Four steps, two of them online.

  1. Load the device

    Online, the customer moves value from their account to their device's own ledger account.

  2. Pay with no network

    Phone to phone. Both devices sign the payment, and each keeps a copy.

  3. Settle

    When either device reconnects, it uploads the batch. Each payment settles once; replays are rejected.

  4. Get credited

    The payee's account is credited, and you get a signed webhook.

What you get

Offline, on Bridge.

The money stays on the ledger

Value sits in a device ledger account at the bank. A device can't create money, only spend what was loaded.

Signed by both devices

Every payment carries both devices' signatures, checked at settlement.

Replays rejected

A payment uploaded twice settles once.

Caps from settled history

How much a device can hold is derived from what it has settled before.

Freeze a lost device

Block a device from anywhere; its unspent value stays on the ledger.

Next

Mobile and POS SDKs

SDKs to take offline payments inside your own app and on POS terminals are coming.

Settlement

Every tap accounted for when the network returns.

When a device reconnects it uploads the payments it holds. Each one is checked against both signatures and the device's balance, and settles once.

Illustrative
For developers

Load a device, then settle its taps.

Deposits move value from the customer's own main account into their device wallet. The offline module's idempotency header is X-Idempotency-Key.

API reference · Quickstart · Webhooks

POST /offline/deposit

curl -X POST "https://api.bridgemoni.com/offline/deposit" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: test" \
  -H "X-Idempotency-Key: dep-a7f3-0001" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": { "amount": "5000.00", "currencyCode": "NGN" },
    "narration": "Load for market day",
    "deviceId": "a7f3-k2m9-4c1d-8e5b"
  }'

Questions about offline payments

Does the payee need a network to be paid?

No. Neither phone needs a network at the moment of payment. Settlement happens when either one reconnects.

What if a customer spends the same value twice?

Whichever payment settles first succeeds, and the other is rejected. A device can only spend value that was loaded onto its ledger account.

Can I take offline payments in my own app?

The mobile and POS SDKs are coming. Today, offline payments run in apps built on Bridge, such as Bridgemoni.

What happens to a lost phone?

Freeze the device from anywhere. Its unspent value stays in its ledger account.

Bridge Payments

Keep taking payments when the network drops.

Build in test now. Live payments follow our go-live and your verification.