Nylon PayNylon Pay

Merchant Onboarding

Sign up, test in sandbox immediately, then verify to go live

Merchant Onboarding

Sandbox first, then go live. You can test everything without paying or submitting ID. Only when you're ready to accept real money do you complete verification.


Quick Overview

StepWhat happensTime
1. Sign upCreate account, verify email2 minutes
2. Sandbox setupGet test API keys, run test payments5 minutes
3. Go live (optional)Submit KYC (free)1–2 days for approval
4. Live modeGet live API keys, accept real paymentsDone

Step 1: Sign Up

Go to nylonpay.nilesquad.com. Enter your email and verify it.

Result: You're immediately in sandbox mode. No payment needed. No ID needed.


Step 2: Sandbox Setup

After signup, a guided onboarding modal walks you through these steps.

2.1 Create a Collection Account

  • Go to Accounts in the dashboard
  • Click Create Account
  • Give it a name (e.g., "My Business Account")

A collection account holds incoming payments before settlement.


2.2 Create Sandbox API Keys

  • Go to Settings > API Keys
  • Click Create Key
  • Copy your apiKey and apiSecret immediately, the secret is shown only once

Your sandbox keys look like:

apiKey: npk_sandbox_...
apiSecret: nps_sandbox_...

2.3 Set Your Webhook URL (Optional)

  • Add your webhook endpoint in Settings > API Keys
  • See the Webhooks guide for details

2.4 Enable Optional Services

Choose any extras:

  • SMS receipts to customers
  • Email receipts
  • Invoice generation

2.5 Test Your Integration

import { createNylonPay } from '@nile-squad/nylonpay-ts'

const nylonPay = createNylonPay({
  apiKey: 'npk_sandbox_your_key',
  apiSecret: 'nps_sandbox_your_secret'
})

const payment = await nylonPay.collectPayment({
  amount: 5000,
  currency: 'UGX',
  customer: {
    name: 'Jane Doe',
    phoneNumber: '+256712345678'
  },
  description: 'Test payment'
})

payment.on('success', ({ transaction }) => console.log('Paid:', transaction.reference))
payment.on('failed', ({ error }) => console.error('Failed:', error))

Sandbox transactions are marked in the dashboard. They don't count toward limits or statistics.


Step 3: Go Live (When Ready for Real Payments)

Initiate from Settings > Verification or click the Go Live banner.


3.1 Submit Level 1 KYC

What you needDetails
Product/service nameWhat you sell
Use caseHow you use Nylon Pay
Business descriptionBrief overview
National IDVerified via hosted ID capture session
Phone numberMust match your ID name

3.2 Background Checks (Automatic)

CheckWhat it verifies
Risk scoreOverall risk profile
ID verificationGovernment ID is real
Selfie verificationSelfie matches ID photo
Watchlist checkNot on sanctions lists
Use case eligibilityYour business type is allowed

3.3 Decision

OutcomeWhat happens
ApprovedAccount upgraded to live mode. Monthly limit: 10,000,000 UGX
RejectedYou're told the reason. Contact support to appeal

Typical approval time: 1–2 business days.


Step 4: After Approval (Live Mode)

Create Live API Keys

  • Go to Settings > API Keys
  • Create a new key, mode will be live

Your live keys look like:

apiKey: npk_live_...
apiSecret: nps_live_...

Update Your SDK Configuration

const nylonPay = createNylonPay({
  apiKey: 'npk_live_your_public_key',
  apiSecret: 'nps_live_your_secret_key'
})

Set Up Settlement

  • Go to Accounts
  • Add your settlement phone number or bank account
  • Defaults to the phone number from your KYC

Keep Sandbox Keys

Your sandbox keys remain active. Test new features in sandbox while running live payments.


Sandbox vs Live Comparison

FeatureSandboxLive
Real moneyNoYes
API key prefixnpk_sandbox_ / nps_sandbox_npk_live_ / nps_live_
KYC requiredNoYes (free)
Monthly limitUnlimited (test)10,000,000 UGX
SMS to customersNo (simulated)Yes
SettlementNot availableYes

Next Steps

  • Test in sandbox, verify everything works
  • Configure webhooks, receive payment notifications
  • Create payment links, collect payments without coding

On this page