Nylon PayNylon Pay

Coverage

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

What Nylon Pay supports today and what is on the roadmap. Use this page to 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)v2Hosted checkout, coming in v2Hosted page
USSDPlannedEnterprise on requestContact Nylon Pay

Payment links collect on a hosted page without checkout UI on your side. Bank payouts and utilities live on the dashboard today. Hosted card checkout is a later release.

Countries and currencies

Nylon Pay is built for Africa-first payments. 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. No checkout UI required on your side. Share the URL through email, SMS, WhatsApp, or your website.

SurfaceWhat you getMobile moneyNotes
Dashboard payment linksReusable hosted URLYesCreate from the dashboard, no code
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.

When hosted payment links also collect from a bank account, the same webhook and status events apply. Today, programmatic invoice links collect via mobile money on the hosted page.

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 and account number). 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

Coming in v2.

Card checkout runs on a hosted payment page so card details never reach your servers. This extends the same hosted flow as Payment Links to SDK and API collections in v2.

When v2 ships:

  • Cards run through a hosted page with 3D Secure.
  • 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

Planned. Available today on request for enterprise clients.

USSD lets customers initiate or confirm payments through a network short code on any phone, including devices without smartphones or mobile data. General availability is on the roadmap. Enterprise accounts can request early access with custom routing and volume commitments.

To discuss USSD for your organization:

Integration surfaces today

SurfaceMobile MoneyPayment linkBank payoutUtilitiesCard
SDK collect / payoutYesn/aPayout yesNov2 (hosted)
SDK invoice (createInvoice)Yes (hosted link)YesNoNoNo
DashboardYesYesSend moneyUtilities pagev2

The table reflects programmatic and dashboard integration status. Hosted links always run on Nylon Pay pages, not inside your app.

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. Card collect stays on the hosted-page plan for v2. See Make Payout and Collect Payment.

Languages

Nylon Pay 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. Client-side packages (browser, mobile) are not currently available.
  • HTTPS support. All communication with Nylon Pay 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)Not availableRequired when cards ship (v2)

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

Card acceptance is planned for v2. When enabled on your account:

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

Card processing ships in v2. Requirements above apply when card checkout is enabled for your account.

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