This guide takes you from zero to a working prepaid flow using Expo / React Native and Node.js.
Jaza collects Mobile Money and settles to you. You do not create a PawaPay account or manage multi-currency settlement yourself.
Prerequisites
- A Jaza developer account
- Node.js 18+
- An Expo app (Expo Router or classic
App.tsx)
- Sandbox API keys from the dashboard (test environment)
1. Create an app and copy keys
In the dashboard, create an app, enable the markets you need, and open API keys.
Never ship the secret key in a mobile binary or public repo.
2. Install the Node SDK
Create a shared client:
3. Create a customer
Call once when your user signs up; store customer.id on your user record.
4. Expose balance and top-up routes
Your app never talks to Jaza with the secret key. It calls your backend; you call the Node SDK.
5. Install the React Native SDK
Peer dependencies (Expo):
Ensure Android resizes with the keyboard (app.json):
6. Wrap the app with JazaProvider
7. Show balance and top-up
When the user taps Top up, the SDK opens a sheet: pick a bundle, enter phone / country, pay with Mobile Money. Jaza handles provider selection and collection. On success, getBalance refreshes.
8. Meter a feature
After the user performs a paid action:
Use a stable idempotencyKey so retries do not double-charge.
What you just shipped
- Credit wallet per customer
- MoMo top-ups without running an aggregator
- Feature metering on your backend
Next: Concepts · Authentication · Node SDK · React Native SDK