Skip to main content

Payout

Move funds from your iNPAY wallet to other PayIDs or external bank accounts. iNPAY provides two payout methods to suit different business needs.

🚀 Available Payout Options

1. PayID-to-PayID Transfer

Send money instantly between PayIDs within the iNPAY network.

Best for:

  • Peer-to-peer payments
  • Merchant-to-customer refunds
  • Internal business transfers
  • Instant settlements

Learn how to implement PayID transfers →

2. External Bank Transfer

Send money to any Nigerian bank account outside the iNPAY network.

Best for:

  • Supplier payments
  • Salary disbursements
  • Vendor payments
  • External business transactions

Learn how to implement external transfers →

💡 Key Concepts

Source Wallet (fromPayId)

  • Must be a wallet PayID created by your iNPAY account
  • Store in environment variables for easy access
  • Funds are debited from this wallet during transfers

Destination (toPayId or Bank Account)

  • PayID transfers: Receiver valid PayID for payment destination
  • External transfers: Use bank account number + bank code
  • Always verify destination before sending money
  • Use bank list API to get valid bank codes

Amount Format

  • All amounts in kobo (1 Naira = 100 kobo)
  • ₦100.00 = 10000 kobo
  • ₦500.00 = 50000 kobo
  • ₦1000.00 = 100000 kobo

🔧 Getting Started

Step 1: Setup Your Variables

Store your PayID as an environment variable:

# .env file
INPAY_WALLET_PAYID=mybusiness123.wallet
INPAY_SECRET_KEY=sk_live_your_secret_key

Step 2: Choose Transfer Method

For PayID Transfers:

  • Verify destination PayID first
  • Use instant transfer endpoint
  • Get immediate confirmation

For External Bank Transfers:

  • Get Bank List with bank code
  • Verify bank account details with bank code
  • Use external transfer endpoint
  • Track transfer status

📊 Transfer Comparison

FeaturePayID-to-PayIDExternal Bank Transfer
SpeedInstantStandard bank processing
CostFreeHigher fees
VerificationPayID verificationBank account verification
Use CaseInternal transfersExternal payments
RequirementsReciever PayIDsBank account details
LimitationsiNPAY network onlyNigerian banks only

🎯 Common Use Cases

E-commerce Refunds

// Refund customer via PayID
const refund = await transferManager.completePayIdTransfer(
process.env.INPAY_WALLET_PAYID, // Your wallet
customer.payId, // Customer's PayID
order.refundAmount * 100, // Convert to kobo
`Refund for order #${order.id}`,
`refund-${order.id}-${Date.now()}`
);

Supplier Payments

// Pay supplier via external bank transfer
const supplierPayment = await transferManager.completeExternalTransfer(
process.env.INPAY_WALLET_PAYID, // Your wallet
supplier.accountNumber, // Supplier's account
supplier.bankCode, // Supplier's bank code
invoice.amount * 100, // Convert to kobo
`Payment for invoice #${invoice.number}`,
`supplier-${invoice.id}`,
supplier.accountName // Supplier's name
);

Peer-to-Peer Payments

// Send money to friend's PayID
const p2pPayment = await transferManager.completePayIdTransfer(
process.env.INPAY_WALLET_PAYID, // Your wallet
friend.payId, // Friend's PayID
amount * 100, // Convert to kobo
`Payment from ${user.name}`,
`p2p-${Date.now()}`
);

🔒 Security Best Practices

Wallet Management

  • Keep wallet PayID secure - Store in environment variables
  • Monitor wallet balance - Ensure sufficient funds before transfers
  • Use unique references - Each transfer needs a unique reference
  • Log all transfers - Keep records for reconciliation

Transfer Security

  • Always verify destinations - Check PayIDs and bank accounts before sending
  • Validate amounts - Double-check amounts before processing
  • Use meaningful references - Include order IDs, customer info, etc.
  • Handle errors gracefully - Implement proper error handling

📚 Next Steps


Need Help?

  • Check our API Reference for detailed endpoint documentation
  • Review Code Examples for implementation guidance
  • Contact support for assistance with integration