Nylon PayNylon Pay

Features

Everything Nylon Pay offers for collecting payments, settling funds, and managing your business

A complete overview of what Nylon Pay provides. Each feature links to the relevant documentation for deeper detail.


Collections

Accept payments from customers through multiple channels with a single integration.

MethodProvidersHow it works
Mobile MoneyMTN MoMo, Airtel MoneyCustomer approves a prompt on their phone
Bank Transfer25+ banksCustomer pays from their bank account
CardVisaCustomer pays on a hosted payment page with 3D Secure
const payment = await nylonpay.collectPayment({
  amount: 10000,
  currency: 'UGX',
  customer: { name: 'Jane Doe', phoneNumber: '+256700000000' },
  description: 'Order #1234',
  method: 'mobileMoney',
})

See Collect Payment for the full API.


Settlements

Move funds from your Nylon Pay balance to a mobile money wallet or bank account. Use for disbursements, supplier payments, refunds, or any scenario where money leaves your account.

DestinationDetails
Mobile MoneySettle to any MTN or Airtel number
Bank AccountSettle to any supported bank using account number and bank name
const payout = await nylonpay.makePayout({
  amount: 50000,
  currency: 'UGX',
  customer: { name: 'Jane Doe', phoneNumber: '+256700000000' },
  destination: { accountHolderName: 'Jane Doe', accountNumber: '1234567890' },
  description: 'Refund for order #1234',
})

See Make Payout for the full API. Settlement limits are based on your KYC level. See Merchant Onboarding for details.


Generate a hosted payment page and share the URL via email, SMS, WhatsApp, or any channel. No checkout UI required on your side.

  • Create links directly from the dashboard — no code needed
  • Generate links programmatically through the SDK for invoice workflows
  • Dashboard links support mobile money, card, and bank transfer; SDK invoices send a payment link by email and are paid by mobile money
  • Optional line items for itemized breakdowns on the payment page
  • Card payments run only through this hosted page, so card details never reach your servers

Dashboard links stay active so multiple customers can pay through the same URL. SDK invoices are tied to a single reference and generated from your server.

const result = await nylonpay.createInvoice({
  amount: 25000,
  currency: 'UGX',
  customerEmail: 'customer@example.com',
  description: 'Monthly subscription',
  items: [{ name: 'Pro Plan', quantity: 1, amount: 25000 }],
})

if (result.isOk) {
  console.log(result.value.paymentLink)
}

See Payment Links for the full guide.


Smart Tags

Tag transactions with custom labels to organize and filter your payment history.

Use caseExample tags
Separate product lines"electronics", "clothing"
Track campaigns"black-friday", "launch-promo"
Segment customers"wholesale", "retail", "vip"
Internal accounting"recurring", "one-time"

Tags are searchable and filterable in the dashboard analytics. Filter by one or multiple tags to see exactly the transactions you need.


Addon Services

Optional services you can enable per account from the dashboard to extend what happens around each transaction.

ServiceWhat it does
SMS NotificationsSend SMS messages to customers when transactions succeed or fail
Email ReceiptsAutomatically email payment receipts to customers after successful collections
Auto-InvoicingGenerate invoices automatically for every collection

Enable or disable these in Dashboard > Settings > Services. Each service can be toggled independently.


Webhooks

Receive real-time HTTP notifications when transaction status changes. Configure your endpoint in the dashboard and Nylon Pay pushes events to your server automatically.

EventWhenWhat to do
transaction.successfulA transaction completed successfullyFulfill the order, send a receipt
transaction.failedA transaction was rejected or timed outNotify the customer, offer a retry
transaction.processingA transaction is in flightUpdate the status in your system
transaction.cancelledA transaction was cancelledUpdate the order state

Webhook payloads include a signature your server can verify to confirm the event came from Nylon Pay. Failed deliveries are retried automatically.

See Webhooks for setup and signature verification.


Sandbox

Test your full integration without moving real money. Use your sandbox API key to run transactions in a test environment.

  • Same API surface as production
  • Success and failure outcomes are simulated automatically
  • Webhooks fire as normal
  • No balance changes, no fees charged
  • Monthly limits do not apply

Switch between sandbox and live by using the corresponding API key. There is no separate configuration option.

See Quick Start for sandbox setup.


Phone Verification

Pre-validate a phone number before initiating a payment. Returns the registered name on the account so you can confirm customer identity before collecting or settling.

const result = await nylonpay.verifyPhone({
  phoneNumber: '+256700000000',
})

if (result.isOk && result.value.verified) {
  console.log('Registered to:', result.value.customerName)
}

See the SDK Reference for input and output shapes.

Phone Number Format

Phone numbers are automatically normalized to international format. You can pass any common format and the SDK handles the rest.

You passStored as
0768499027256768499027
+256768499027256768499027
256768499027256768499027
+256 768 499 027256768499027

All phone fields across collections, payouts, and phone verification accept any of these formats. The normalized value is what gets stored and sent to the mobile network.


Minimum Transaction Amounts

OperationMinimum Amount
Collections500 UGX
Payouts5,000 UGX

Amounts below the minimum are rejected with a validation error.


KYC Verification

Two-level identity and business verification system. Both levels are free.

Level 1: Identity Verification (Automatic)

  • Government ID verification through a hosted session
  • Unlocks live mode with a 10,000,000 UGX monthly limit

Level 2: Business Document Verification (Manual)

  • Company document upload and admin review
  • Available after Level 1 approval
  • Raises monthly limit to 100,000,000 UGX

See Merchant Onboarding for the full flow.


Multiple Currencies

Process transactions in seven currencies through a single integration.

USD, EUR, GBP, KES, UGX, TZS, RWF


Security

All API communication is encrypted and authenticated. The SDK handles request signing and response verification automatically. You do not need to configure any security logic.

Additional controls available in the dashboard:

ControlWhat it does
API key scopesLimit a key to collections only or settlements only
IP whitelistingRestrict API access to specific server IP addresses

See Security for the full security model.


Dashboard

The merchant dashboard at nylonpay.nilesquad.com provides:

  • Account creation and management
  • API key generation with scope and IP controls
  • Transaction history with tag filtering
  • Analytics and reporting
  • Payment link creation and management
  • KYC submission and tracking
  • Addon service configuration
  • Webhook configuration
  • Support messaging with the Nylon Pay team

Support

Built-in support messaging between your dashboard and the Nylon Pay team. Accessible from the dashboard support widget.

For urgent issues, contact nylonpay@mail.nilesquad.com.

On this page