Nylon PayNylon Pay

Supported Payment Methods

Mobile money, payment links, bank transfers, cards, and USSD through Nylon Pay

Payment method availability depends on your country, KYC level, and how you integrate (SDK, dashboard, or hosted page). This page is the coverage reference for methods and release status.

At a glance

Method / surfaceStatusWhere it worksHow to use
Mobile MoneyAvailableUganda (MTN MoMo, Airtel Money)SDK method: "mobileMoney"
Payment LinksAvailableUgandaDashboard or SDK createInvoice
Bank Transferv2Coming in the next major releaseSDK method: "bank"
Card (Visa)v2Hosted checkout, coming in v2Hosted page
USSDPlannedEnterprise on requestContact Nylon Pay

v2 covers bank collections and hosted card checkout through the same integration patterns you use for mobile money today. Payment links are available now for hosted collections without building checkout UI.

Mobile Money

Available now in Uganda.

NetworkSDK collectPayoutPayment link / invoice
MTN MoMoYesYesYes
Airtel MoneyYesYesYes

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 v2 ships, hosted payment links will also support bank and card methods you enable on the link. 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

Coming in v2.

Bank transfers let a customer pay from a supported bank account instead of a mobile wallet. On the payout side, you can settle to a bank account where your account setup allows it. Full bank collection through the SDK is part of the v2 release.

When v2 ships:

  • Collections will use method: "bank" (or "bank" in PHP array keys).
  • Minimum bank collection amount is expected to be 50,000 UGX (same as current bank payout minimums in Pricing).
  • Settlement bank account verification still applies for Level 2 merchants.

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 collectCard
SDK collect / payoutYesv2v2 (hosted)
SDK invoice (createInvoice)Yes (hosted link)YesNoNo
Dashboard payment linksYes (hosted link)Yesv2v2

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 and card flows will follow the same Result and webhook patterns when v2 ships. See Collect Payment for the full API.

On this page