Nylon PayNylon Pay

Coverage

Countries, payment methods, languages, and requirements for Nylon Pay

What you can use today, market by market. Check that your country, currency, and payment method are available before you build.

At a glance

Method / surfaceStatusWhere it worksHow to use
Mobile MoneyAvailableUganda, Kenya, Tanzania, Rwanda, DR CongoSDK method: "mobileMoney"
Payment LinksAvailableSame marketsDashboard or SDK createInvoice
Bank TransferAvailablePayouts from Send money or SDK makePayoutBank account number and bank name
UtilitiesAvailableDashboard Utilities pageAirtime, data, electricity, water, DStv, GOtv
Card (Visa)AvailableHosted payment links and invoicesHosted page
USSDEnterpriseEnterprise on requestContact us

Payment links collect on a hosted page across mobile money, cards, and bank transfers. Bank payouts and utilities also run from the dashboard.

Countries and currencies

We build for Africa first. Coverage expands as we onboard mobile money and banking partners in each market.

CountryCurrencyCodeStatus
UgandaUgandan ShillingUGXAvailable
KenyaKenyan ShillingKESAvailable
TanzaniaTanzanian ShillingTZSAvailable
RwandaRwandan FrancRWFAvailable
DR CongoCongolese FrancCDFAvailable

Mobile money and payment links work in these markets. Use E.164 phone numbers for the destination country.

Additional currency codes

The SDK accepts these ISO 4217 codes for accounts and integrations that operate across borders:

CurrencyCodeNotes
US DollarUSDCross-border and international settlement
EuroEURCross-border and international settlement
British PoundGBPCross-border and international settlement

Cross-border pricing applies where relevant. See Pricing.

Amounts

Pass amounts as integers in each currency's smallest tracked unit. For UGX, that is whole shillings (no decimals). Minimum collection amount is 500 UGX. Minimum payout amount is 5,000 UGX.

Payment methods

Mobile Money

Available now in Uganda, Kenya, Tanzania, Rwanda, and DR Congo.

CountryNetworks
UgandaMTN MoMo, Airtel Money
KenyaM-Pesa, Airtel Money
TanzaniaAirtel Money, Tigo, Vodacom, HaloPesa
RwandaMTN MoMo, Airtel Money
DR CongoAirtel Money, Orange, Vodacom

How it works:

  1. Your server calls collectPayment / collect_payment (or the *AndResolve variant).
  2. The customer approves a prompt on their phone.
  3. You receive status updates through events or webhooks.

Phone numbers must be in E.164 format (for example +256700000000). See Phone Verification for pre-validation.

Minimum collection: 500 UGX. Minimum payout: 5,000 UGX.

Available now.

Payment links give customers a hosted page to pay you. Share the URL through email, SMS, WhatsApp, or your website.

SurfaceWhat you getMobile moneyNotes
Dashboard payment linksReusable hosted URLYesCreate from the dashboard
SDK invoices (createInvoice)Hosted URL + optional emailYesOne reference per invoice from your server

Dashboard links can stay open for multiple payers until they expire or you revoke them. SDK invoices are tied to a single reference you generate on the server.

Dashboard links can also collect by card or bank transfer, and the same webhook and status events apply.

See Payment Links for the full guide and Invoices for the SDK API.

Bank Transfers

Available now for payouts.

Send money to a bank account from Send money or with SDK makePayout using a bank destination (account holder name, account number, bank name, and recipient phone). Minimum bank payout is 50,000 UGX. See Pricing.

Level 2 merchants verify the settlement bank account during onboarding.

Utilities

Available now on the dashboard Utilities page.

Pay airtime, mobile data, prepaid electricity, NWSC water, DStv, and GOtv from your Nylon Pay balance. Open Utilities from the sidebar, or jump there with Cmd+K. See Dashboard.

Card Payments

Available now on hosted payment links and invoices.

Card checkout runs on a hosted payment page with 3D Secure so card details never reach your servers.

  • KYC Level 2 is required before card processing is enabled on your account.
  • Africa-issued debit and credit cards are supported first. International cards follow as partnerships are confirmed.

See Requirements for KYC levels and card eligibility rules.

USSD

Available on request for enterprise accounts with volume commitments.

USSD lets customers initiate or confirm payments through a network short code on any phone, including devices without smartphones or mobile data.

To discuss USSD for your organization:

Integration surfaces today

SurfaceMobile MoneyPayment linkBank payoutUtilitiesCard
SDK collect / payoutYesn/aPayout yesNoHosted invoice
SDK invoice (createInvoice)Yes (hosted link)YesNoNoHosted link
DashboardYesYesSend moneyUtilities pagePayment links

The table shows what you can use from the SDK and from the dashboard.

Choosing a method in code

// Mobile money collect: available today
const payment = await nylonpay.collectPayment({
  amount: 10000,
  currency: "UGX",
  customer: { name: "Jane Doe", phoneNumber: "+256700000000" },
  description: "Order #1234",
  method: "mobileMoney",
});

// Payment link via invoice: available today
const invoice = await nylonpay.createInvoice({
  amount: 25000,
  currency: "UGX",
  customerEmail: "customer@example.com",
  description: "Order #1234",
});
# Mobile money collect: available today
payment = nylonpay.collect_payment(
    amount=10000,
    currency="UGX",
    customer={"name": "Jane Doe", "phone_number": "+256700000000"},
    description="Order #1234",
    method="mobileMoney",
)

# Payment link via invoice: available today
invoice = nylonpay.create_invoice(
    amount=25000,
    currency="UGX",
    customer_email="customer@example.com",
    description="Order #1234",
)

Bank payouts use the same Result and webhook patterns as mobile money. See Make Payout and Collect Payment.

Languages

Our SDKs are open source and available in multiple programming languages. All SDKs follow the same API specification with idiomatic naming conventions for each language.

Currently available

  • TypeScript - @nile-squad/nylonpay-ts, Node.js 18+. The reference implementation. SDK Reference | Repository
  • Python - nylonpay-py (pip install nylonpay-py), Python 3.10+. Uses snake_case (collect_payment, phone_number). SDK Reference | Repository
  • PHP - nile-squad/nylonpay-php (composer require nile-squad/nylonpay-php), PHP 8.1+ with ext-curl, ext-json, ext-openssl, ext-mbstring. Uses camelCase like TypeScript. SDK Reference | Repository

In pipeline

LanguageStatusExpected Release
GoIn pipelineQ3 2026
C#In pipelineQ4 2026

Planned

LanguageStatusExpected Release
RustPlannedQ4 2026
JavaPlannedQ1 2027
KotlinPlannedQ1 2027
ElixirPlannedQ2 2027

All pipeline and planned SDKs follow the same API specification. Language-idiomatic naming applies, for example collectPayment in TypeScript/PHP becomes collect_payment in Python.

Runtime requirements

All SDKs require:

  • Server-side environment. SDKs are for backend use only.
  • HTTPS support. All communication with our servers occurs over HTTPS.
  • Authenticated requests. The SDK authenticates requests automatically.
  • Language runtimes: Node.js 18+ (TypeScript), Python 3.10+ (Python), PHP 8.1+ with the extensions listed above (PHP).

SDK skills and contribution

Each available SDK ships a SKILL.md for language-specific setup and code. Cross-language flows and operation choice live in the integration skill. See Example prompts.

SDKs are open source. Contributions follow the SDK specification, the single source of truth for all implementations. Start from the public overview and CONTRIBUTING.

Requirements

Payment method availability by KYC level

MethodLevel 1Level 2
Mobile MoneyAvailableAvailable
Bank payoutsAvailableAvailable
UtilitiesAvailableAvailable
Cards (Africa-issued)Level 2 requiredAvailable

See the Merchant Onboarding guide for details on KYC levels and how to upgrade.

KYC Level 2 requires Level 1 to be approved first. Level 2 review takes up to 5 business days and requires company documentation.

Card requirements

  • Local cards first. Africa-issued debit and credit cards are accepted first. International cards follow as partnerships are confirmed.
  • KYC Level 2 required. Card processing requires an approved Level 2 account.
  • Proof of bank account ownership. You verify ownership of the settlement bank account during Level 2 onboarding.
  • Non-virtual, non-prepaid cards only. Virtual and prepaid cards are not accepted.

Mobile money requirements

  • Available at all KYC levels
  • Primary payment method for most merchants
  • Phone in E.164 for the destination country

Bank transfer requirements

Bank payouts are available from Send money and the SDK. Settlement bank account ownership must be verified for Level 2.

Utilities requirements

  • Available at all KYC levels from the dashboard Utilities page
  • Airtime, data, electricity, water, DStv, and GOtv

Expansion

East and Central Africa coverage includes Uganda, Kenya, Tanzania, Rwanda, and DR Congo. For status updates, join the WhatsApp community or request coverage on the public hub.

On this page