Skip to main content
Official React Native / Expo client for Jaza. Use this in your mobile app with your publishable key (jz_*_pk_*) and a short-lived top-up token from your backend. Never put your secret key in the app. Server-side calls use @jazadev/node.

Install

Expo peers:

Expo config

Keep the phone field visible when the keyboard opens on Android:

Provider setup

Wrap the app outermost with GestureHandlerRootView, then JazaProvider. Define getBalance once; JazaBalanceWidget and the offer step both use it.

Balance — JazaBalanceWidget

Top up — JazaTopUpButton

Does not open the sheet until onRequestToken returns a JWT from your server (jaza.topUp).
Optional props: label, style. JazaProvider also accepts onTopUpComplete.

What happens after Top up

  1. App calls your backend → JWT from jaza.topUp
  2. Sheet opens → bundles and balance
  3. User picks bundle → phone, country, currency → quote
  4. Confirm → Jaza collects via Mobile Money → SDK polls until success or failure
  5. Balance refreshes via getBalance
You do not configure MoMo aggregators; Jaza handles collection across enabled markets and settlements to you.

Exports

Full path

Follow the Quickstart for Node BFF + Expo end-to-end.