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 / surface | Status | Where it works | How to use |
|---|---|---|---|
| Mobile Money | Available | Uganda (MTN MoMo, Airtel Money) | SDK method: "mobileMoney" |
| Payment Links | Available | Uganda | Dashboard or SDK createInvoice |
| Bank Transfer | v2 | Coming in the next major release | SDK method: "bank" |
| Card (Visa) | v2 | Hosted checkout, coming in v2 | Hosted page |
| USSD | Planned | Enterprise on request | Contact 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.
| Network | SDK collect | Payout | Payment link / invoice |
|---|---|---|---|
| MTN MoMo | Yes | Yes | Yes |
| Airtel Money | Yes | Yes | Yes |
How it works:
- Your server calls
collectPayment/collect_payment(or the*AndResolvevariant). - The customer approves a prompt on their phone.
- 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.
Payment Links
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.
| Surface | What you get | Mobile money | Notes |
|---|---|---|---|
| Dashboard payment links | Reusable hosted URL | Yes | Create from the dashboard, no code |
SDK invoices (createInvoice) | Hosted URL + optional email | Yes | One 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
| Surface | Mobile Money | Payment link | Bank collect | Card |
|---|---|---|---|---|
| SDK collect / payout | Yes | — | v2 | v2 (hosted) |
SDK invoice (createInvoice) | Yes (hosted link) | Yes | No | No |
| Dashboard payment links | Yes (hosted link) | Yes | v2 | v2 |
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.