# NezaHub Developer Documentation > Mobile-money payments for East and Southern Africa. ## Pages - /docs - Overview - /docs/quickstart - Quickstart: Install and first payment - /docs/authentication - Authentication: API keys and JWT - /docs/products - Products & prices: Catalog and charge distribution - /docs/checkout - Checkout: Sessions, STK, links - /docs/webhooks - Webhooks: Events and signatures - /docs/agents - Agents: Commissions and assignments - /docs/payouts - Payouts & wallets: Balances and transfers - /docs/api-reference - REST API and OpenAPI ## API - Base: https://api.nezahub.com/api/v1/ - OpenAPI: https://api.nezahub.com/api/v1/schema/ - Swagger: https://api.nezahub.com/api/v1/docs/ ## SDKs - Python: pip install nezahub - Node.js: npm install @nezahub/sdk - Browser checkout: @nezahub/sdk/checkout (no API key) ## Agent checklist 1. Never put API keys in browser code. 2. Use API keys for server automation; JWT for user sessions. 3. Pass amounts as strings. 4. Use SDK enums (`PaymentCurrency.KES`, `ChargePreset.MarketplaceStandard`, etc.) in request bodies. 5. Set charge distribution before checkout. 6. In test mode, poll checkout session status after STK confirm (or use webhooks in production). 7. Payouts and wallet transfers require 2FA challenge_id flow.