Two Environments

RohoPay isolates test and live traffic completely. Your wallet has separate balances for each:
TestLive
API key prefixtest_live_
Real money moves
USSD sent to phone
Card charged
Webhook fires✅ (test payload)✅ (live payload)
Disbursements allowed
Test phone works✅ (256700000000)
Wallet balanceSeparate test balanceSeparate live balance

Test Mode Details

In test mode:
  • Use phone 256700000000 as the test number (always succeeds)
  • All card test numbers work (see Test Cards)
  • Transactions complete immediately (no real USSD or card network)
  • Webhooks still fire to your callback_url with the test result
  • Test-mode transactions are rate-limited per project per day

Switching to Live

1

Generate a live API key

From your project: API Keys → Generate Key → Live.
2

Update environment variable

Replace test_ key with live_ key in your production environment config.
3

Use real phone numbers

Replace 256700000000 with real customer phone numbers.
4

Ensure your callback_url is HTTPS and public

Your webhook endpoint must be reachable from RohoPay’s servers over HTTPS.
5

Test a small live transaction

Send a UGX 1,000 live collection to verify end-to-end before launching.

Environment in API Responses

Every transaction response includes "environment": "test" or "environment": "live":
{
  "internal_reference": "RHP-2024-ABC123",
  "status": "successful",
  "environment": "test",
  ...
}
Filter your dashboard transactions by environment using the Environment toggle.

Checking Current Environment

The environment of a transaction is determined by the API key used — there is no separate endpoint or setting to change. Use a test_ key for test, live_ key for live.