Skip to main content
Top-up always uses both SDKs:
  1. Backend@jazadev/node creates a top-up session and returns a short-lived JWT.
  2. Mobile@jazadev/react-native opens the MoMo sheet after onRequestToken returns that JWT.

Prerequisites

  • Dashboard setup with markets and at least one bundle
  • A Jaza customer id stored on your user (cus_…)
  • Secret key on the server; publishable key in the Expo app

1. Backend: issue a top-up token

Optional: poll session status with jaza.check({ topUpId: session.id }).

2. Backend: expose balance for the widget

3. Mobile: provider + button

Wrap the app with GestureHandlerRootView and JazaProvider, then render JazaBalanceWidget and JazaTopUpButton.

What the user sees

  1. Tap Top up → app requests JWT from your BFF.
  2. Sheet opens → bundles and current balance.
  3. User picks a pack, enters phone / country / currency, confirms quote.
  4. Payment runs; SDK polls until success or failure.
  5. Balance refreshes via getBalance.
Jaza collects MoMo and settles to you. You do not configure PawaPay or FX yourself.

Next steps