No results found
Try different keywords, or contact our support team directly.
Getting Started
What is NexaPay and how does it work?
NexaPay is a unified mobile money payment gateway that enables businesses and developers to accept digital payments across Zambia, Botswana, Zimbabwe, and Namibia through a single, simple REST API. Instead of integrating separately with MTN, Airtel, EcoCash, Orange Money, and other networks, you integrate once with NexaPay and we handle all the complexity. Merchants sign up, get verified, receive API keys, and can start accepting live payments within 24–48 hours of approval.
How long does it take to go live?
Most merchants go live within 24–48 business hours of submitting complete verification documents. The process is: (1) Sign up and submit your business documents, (2) Our compliance team reviews your application — typically same-day, (3) Once approved, you receive your production API keys and are ready to accept payments. You can begin integrating in our sandbox immediately upon registration — no waiting required.
What countries and networks does NexaPay support?
NexaPay currently supports four countries with the following networks:
- Zambia (ZMW): MTN Mobile Money, Airtel Money, Zamtel Kwacha
- Zimbabwe (USD/ZWG): EcoCash, OneMoney, Telecash
- Botswana (BWP): Orange Money, MyZaka (BancABC), BTC Mobile
- Namibia (NAD): MTC MobiPay, TN Mobile Pay, Telecom Namibia Pay
Is there a sandbox / test environment?
Yes. NexaPay provides a full-featured sandbox environment that mirrors production exactly. You can test all payment scenarios — successful charges, failures, timeouts, reversals, and webhook events — without touching real money. Sandbox API keys are available immediately upon registration. Our sandbox documentation includes pre-set test phone numbers that simulate different payment outcomes for all four countries.
What documents do I need to register as a merchant?
Requirements vary slightly by country, but typically include:
- Business registration certificate or trading licence from the relevant authority
- Director/owner national ID or passport (for KYC)
- Proof of business address — utility bill or lease agreement not older than 3 months
- Active mobile wallet or bank account for settlement
- Business bank statement (last 3 months) for enterprise tier applicants
Can individuals (non-businesses) use NexaPay?
Yes. NexaPay supports individual / sole trader accounts with a simplified onboarding process. You register with your national ID, a selfie for liveness verification, and your personal mobile wallet for settlement. Individual accounts have a daily transaction cap which can be raised once business documents are submitted. This is ideal for freelancers, informal traders, and gig economy workers who need to collect payments digitally.
Pricing & Fees
What are NexaPay's transaction fees?
NexaPay charges a simple flat-rate per successful transaction. There are no monthly fees, no setup fees, and no hidden charges. Standard rates per country:
- Zambia: 2.5% per transaction (min ZMW 0.50). High-volume: from 1.5%
- Zimbabwe: 2.0% per transaction (min USD 0.10). High-volume: from 1.5%
- Botswana: 2.0% per transaction (min BWP 0.20). High-volume: from 1.5%
- Namibia: 2.0% per transaction (min NAD 0.50). High-volume: from 1.5%
Are there any monthly fees or setup costs?
No. NexaPay is entirely pay-as-you-go. You only pay when you successfully process a transaction. There is no monthly subscription, no annual fee, no minimum transaction volume, and no fee for failed transactions. API access, dashboard access, sandbox environment, webhooks, and developer support are all included at no extra cost.
When and how do I receive my settlements?
Settlements are processed on a T+1 business day cycle by default (next business day). Enterprise merchants can request T+0 (same-day) settlements. Funds are settled to your registered merchant mobile wallet or bank account in the local currency of each country. You can view real-time settlement reports in your merchant dashboard, and configure settlement notifications via webhook or email.
Are there fees for failed or reversed transactions?
No. NexaPay only charges fees on successful, completed transactions. If a payment fails (e.g. insufficient funds, wrong PIN, network timeout) or is reversed, no fee is charged. This applies to both collection and disbursement transactions. You can track all attempts — successful, failed, and pending — in your merchant dashboard with full status codes.
Do you offer custom enterprise pricing?
Yes. Businesses processing more than 5,000 transactions per month or needing custom SLAs, dedicated infrastructure, white-label options, or regional compliance support qualify for our enterprise plan. Enterprise pricing includes:
- Negotiated per-transaction rates starting from 1.0%
- Dedicated account manager and priority 24/7 support
- T+0 (same-day) settlement option
- Custom webhook retry policies and SLA guarantees
- White-label API and branded payment pages
What currencies does NexaPay settle in?
Each country settles in its local currency:
- Zambia: Zambian Kwacha (ZMW)
- Zimbabwe: US Dollar (USD) — the primary trading currency for EcoCash and most networks
- Botswana: Botswana Pula (BWP)
- Namibia: Namibian Dollar (NAD)
Payments & Transactions
What types of payments can I accept?
NexaPay supports the following payment types:
- Collections — charge a customer's mobile money wallet (pull payment)
- Disbursements — send funds to a mobile wallet or bank account (push payment)
- Payment Links — shareable URLs that open a hosted payment page (no code needed)
- Recurring Payments — scheduled or subscription-based collections with customer consent
- Bulk Payouts — send funds to hundreds of wallets in a single API call (ideal for payroll, rewards)
What are the minimum and maximum transaction limits?
Limits vary by network and account tier. Typical defaults:
- Minimum: ZMW 1 / USD 0.50 / BWP 0.50 / NAD 1 per transaction
- Maximum per transaction: determined by the mobile network operator's own wallet limits (generally ZMW 10,000 / USD 5,000 equivalent)
- Daily limits: Standard accounts — ZMW 50,000 / day. Enterprise accounts — no daily cap (subject to network limits)
How long does a payment take to complete?
Most mobile money transactions complete within 2–5 seconds under normal conditions. The typical flow is: (1) Customer receives a USSD push or in-app prompt, (2) Customer approves with their PIN, (3) Network confirms and NexaPay sends a webhook to your system. In cases of network congestion or operator delays, transactions may take up to 60 seconds. Transactions not confirmed within the timeout window are automatically reversed.
Can I issue refunds to customers?
Refunds can be initiated via the API or directly from your merchant dashboard. NexaPay supports both full refunds and partial refunds. Refund requests are typically processed within 1–2 business days, after which the funds are returned to the customer's mobile wallet. You can track refund status in real time via the dashboard or by listening to the
refund.completed webhook event.
What happens when a payment times out or fails?
If a customer does not respond to the payment prompt within the timeout window (default 90 seconds), NexaPay automatically cancels the transaction and notifies your system via a
payment.failed webhook with reason code TIMEOUT. No funds are moved and no fee is charged. You can configure the timeout duration (30–300 seconds) in your dashboard, and optionally trigger an automatic retry. Your application should always handle both payment.completed and payment.failed webhook events.
Integration & Technical
What programming languages and frameworks are supported?
NexaPay provides a standard REST API that works with any language. Official SDKs are available for:
- JavaScript / Node.js — with full TypeScript type definitions
- Python — compatible with Django, Flask, and FastAPI
- PHP — compatible with Laravel and WordPress/WooCommerce
- React Native / Expo — for mobile app integrations
How do webhooks work?
When a payment event occurs (e.g.,
payment.completed, payment.failed, refund.processed), NexaPay sends a signed HTTP POST request to your configured webhook URL. All webhook payloads are signed using HMAC-SHA256 with your webhook secret — always verify the signature before processing. NexaPay retries failed webhook deliveries up to 5 times with exponential backoff. You can view and replay webhook events from your merchant dashboard.
How do I keep my API keys secure?
API keys must never be exposed in client-side code (HTML, JavaScript bundles, mobile apps). Always make NexaPay API calls from your server. Best practices:
- Store keys in environment variables (e.g.
.envfiles), never in source code - Use different keys for sandbox and production
- Rotate keys immediately if you suspect exposure — from your dashboard under API Keys
- Restrict key permissions to only the operations your application needs
- Enable IP allowlisting in your dashboard to restrict which servers can use your key
What is idempotency and why does it matter?
Idempotency lets you safely retry API requests without accidentally creating duplicate transactions. NexaPay supports idempotency via the
Idempotency-Key header. If you send the same key twice, the second request returns the result of the first — no duplicate charge is created. Always use a unique idempotency key per transaction attempt (a UUID works well). This is especially important when retrying after a network failure where you don't know if the original request succeeded.
What are the API rate limits?
Default rate limits per API key:
- Standard accounts: 100 requests/minute, 5,000 requests/hour
- Enterprise accounts: 1,000 requests/minute (configurable higher)
X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response. If you exceed the limit, you'll receive a 429 Too Many Requests response. Implement exponential backoff in your integration. Contact support if your legitimate use case requires higher limits.
Security & Compliance
Is NexaPay PCI DSS compliant?
Yes. NexaPay is PCI DSS Level 1 certified — the highest level. Our infrastructure is audited annually by a Qualified Security Assessor (QSA). Merchants integrating via our API generally qualify for a simplified SAQ-A or SAQ-A-EP self-assessment questionnaire, significantly reducing your own PCI compliance burden. See our Security page for full details.
How does NexaPay protect against fraud?
We use a multi-layer approach: real-time machine learning fraud models, velocity controls, SIM swap detection, device fingerprinting, geo-IP mismatch detection, and phone number reputation scoring. All transactions go through 3D Secure authentication where supported by the network. Merchants can configure their own risk thresholds via the dashboard. Our fraud operations team monitors live traffic 24/7.
What happens if I have a dispute or chargeback?
Disputes are managed through your merchant dashboard. When a dispute is opened, you receive a notification and have a defined window to submit evidence. NexaPay acts as the intermediary between you and the mobile network operators. Our disputes team handles the entire process. Chargebacks on mobile money are rare compared to card payments, given the PIN-authenticated nature of mobile money transactions.
Is my customer data stored by NexaPay?
NexaPay stores transaction metadata (amount, status, timestamp, phone number hash) necessary to process payments and generate your reports. We do not store raw phone numbers in plaintext — they are hashed and used solely for fraud detection. Full mobile money account credentials (PINs, wallet passwords) are never seen or stored by NexaPay — these are handled entirely by the mobile network operators via their secure USSD infrastructure. All stored data is encrypted at rest using AES-256.
Account & Support
What support options are available?
All merchants receive access to:
- Email support — support@nexapay.africa (response within 4 hours on business days)
- WhatsApp / Phone — +27 63 453 0070 (Monday–Friday, business hours)
- Developer documentation — comprehensive API reference and integration guides
- Sandbox environment — self-service testing at any time
Can I accept payments in multiple countries from one account?
Yes, absolutely. A single NexaPay merchant account gives you access to all four countries. You use a single API key and simply specify the country code in each transaction request. Multi-country settlement is supported: you receive ZMW, USD, BWP, and NAD settlements to separate wallets or accounts per country. Your dashboard provides a unified view of transactions and analytics across all countries.
How do I reset my API keys if they are compromised?
Go to your merchant dashboard → Settings → API Keys → Rotate Key. A new key is generated instantly and the old one is revoked within 60 seconds. During the transition window, both keys are accepted to allow zero-downtime rotation. If you believe your key was actively abused, contact support immediately — we can force-revoke the old key and investigate unusual transaction patterns from the compromised period.
How do I close my NexaPay account?
To close your account, contact support@nexapay.africa with your registered email address and merchant ID. We will confirm any pending settlements are processed and disbursed to your account before closure. Account data is retained for the legally required period (7 years in most jurisdictions) for compliance purposes, after which it is permanently deleted. You may request a data export before closing.
What is NexaPay's uptime SLA?
NexaPay targets and maintains a 99.9% uptime SLA for our API and payment processing infrastructure. Real-time status and historical uptime data are available at status.nexapay.africa. Planned maintenance windows are announced at least 72 hours in advance via email and the status page. Enterprise customers can negotiate a higher SLA (up to 99.99%) with dedicated infrastructure. In the event of an unplanned outage, our incident response team is alerted within 60 seconds and begins remediation immediately.