mMoney Docs

Mini apps

Payment verification

By default a mini-app payment confirms with one tap in the wallet. You can require a second step — the customer’s wallet PIN, or their account password when they have no PIN — before money moves. The wallet handles the prompt and mMoney verifies the credential server-side; your code does not change.

Choosing a threshold

On your dashboard’s Mini Apps page, set Payment verification to one of:

Setting Behaviour
Off One-tap payments (the default).
Every payment The customer verifies on every payment.
Above an amount Verification only when the invoice is at or above the amount (minimum BBD 20.00).

Pick “Every payment” for high-value or resellable goods (vouchers, crypto, gift cards). Keep one-tap for low-value, high-frequency purchases where friction costs conversion.

What your mini-app sees

Nothing new. MMoneyMiniApp.requestPayment(...) behaves exactly as on Payments: the wallet inserts the verification sheet between its confirmation dialog and the debit. The promise still resolves on succeeded, and still rejects into your catch with err.status set to cancelled (the customer dismissed the confirmation or the verification sheet) or failed. That is the same contract as the code sample on the Payments page. One new failure you may observe: after repeated wrong entries the customer’s verification locks for a few minutes and the payment rejects failed with a message saying so.

Enforcement is server-side

The threshold is enforced by the pay endpoint, not the wallet UI — a pay request arriving without a valid credential is refused with step_up_required, so the verification cannot be bypassed by a tampered client. Wallet builds older than the verification feature cannot pay a verification-enabled mini-app; set Min app version on your manifest if you enable this while old builds are still common.