Rwanda at a Glance

DetailValue
Country Code250
CurrencyRWF (Rwandan Franc)
OperatorsMTN MoMo, Airtel Money

Phone Number Format

Format: 250{9 digit subscriber number}
Example: 250780123456  (MTN MoMo)
         250720123456  (Airtel Money)

Local to international:
  0780 123 456  →  250780123456

Operators

MTN Mobile Money (MoMo)

  • USSD: *182#
  • Prefixes: 0780–0789, 0783–0789
  • Support: MTN Rwanda — 0800 007 700

Airtel Money Rwanda

  • USSD: *182#
  • Prefixes: 0720–0729, 0730–0739
  • Support: Airtel Rwanda — 0800 100 100

Common RWF Amounts

RWFAPI Value
500500
1,0001000
5,0005000
10,00010000
50,00050000
100,000100000

Test Configuration

curl -X POST https://api.rohopay.com/api/v1/collect \
  -H "Authorization: Bearer test_YOUR_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "phone": "250780000000",
    "amount": 5000,
    "currency": "RWF",
    "description": "Test Rwanda payment"
  }'

Integration Example (Rwanda)

async function collectRwandaPayment(localPhone: string, amountRWF: number) {
  const digits = localPhone.replace(/\D/g, "");
  const phone = digits.startsWith("250") ? digits
    : digits.startsWith("0") ? "250" + digits.slice(1)
    : "250" + digits;

  if (!/^250[0-9]{9}$/.test(phone)) {
    throw new Error("Invalid Rwanda phone number");
  }

  return fetch("https://api.rohopay.com/api/v1/collect", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.ROHOPAY_API_KEY}`,
      "Idempotency-Key": crypto.randomUUID(),
    },
    body: JSON.stringify({
      phone,
      amount: amountRWF,
      currency: "RWF",
      callback_url: "https://your-app.com/webhooks/rohopay",
    }),
  }).then(r => r.json());
}