Mobile money deposits inside the chat flow.
This starter app keeps pawaPay merchants in SQLite, encrypts each merchant token, and exposes a payment sheet that can be launched from a ChatGPT tool call or used directly in the browser.
What is implemented
The conversation can collect intent like “Pay 100 KES to Merchant A”, then call a tool route that returns structured state and a component URL. The sheet asks only for missing fields before posting a deposit to pawaPay.
Open the standalone component at /pay or wire the MCP server in mcp/server.ts to your ChatGPT app registration. Merchant setup lives in /admin.
Current merchants
Country chosen at payment time · Currency derived from country · Provider entered at payment time
KEN · KES · MPESA
UGA · UGX · MTN_MOMO_UGANDA
Deposit flow
When a merchant is selected, the sheet loads allowed deposit countries, currencies and providers from pawaPay active configuration. MSISDN entry then triggers provider prediction.
Merchant directory
Merchants are configured in the Google-authenticated backend console. The payment flow only consumes their display names and any optional defaults.
Country chosen in payment · Currency from active configuration · Provider from active configuration
KEN · KES · MPESA
UGA · UGX · MTN_MOMO_UGANDA