Sign in
Gateway account with isAdmin (same token as other admin tools).
Pagination & session
Welcome strings
Payment confirm (WhatsApp)
Shown before M-Pesa STK. Use *bold* as needed. STK message supports {{amount}} and {{ref}}.
Pick keys that are not used for county row numbers on a page (usually > page size).
Connection & health
This page calls the gateway with your JWT after login. REST integrations (SMS, WhatsApp send, etc.) use API keys from Console - never commit keys to this Firestore config.
- API origin
Signed-in operator
From GET /api/user/me (API keys are masked). Console loads full keys via GET /api/user/api-keys.
Where to configure APIs & M-Pesa
Daraja consumer key/secret, passkey, and paybill/till live on the gateway user or global env. County Hub JSON here only controls WhatsApp menus, fees slugs, and copy.
County Hub bot
On the gateway VM, set countyHub: true in the WhatsApp client bot_flow.json. Sample: public/bot_flows/pewang_county_hub.sample.json. Ensure MPESA_CALLBACK_BASE_URL points at this gateway for STK callbacks.
Default service tree
Used for counties without a built-in code template (not Nairobi/Mombasa/Nyandarua/Nakuru) unless you set a per-county override. Array of { "t":"branch"|"leaf", ... } - same shape as repo county_hub_catalog.js.