Overview
This guide walks you through accepting payments using FossaPay’s NGN Wallet API. You’ll learn how to create NGN wallets, receive payments, handle webhooks, and reconcile transactions.Quick Start
1
Create an NGN Wallet
Generate a unique account number for your customer
2
Share Account Details
Provide the account number to your customer
3
Receive Payment
Customer transfers money to the wallet account
4
Get Notified
Receive instant webhook notification
5
Credit Customer
Update your customer’s balance or fulfill their order
Creating NGN Wallets
For Wallet Top-ups
For Invoice Payments
Displaying Account Details
Email Template
In-App Display (React)
Handling Webhook Notifications
Set Up Webhook Endpoint
Webhook Payload Example
Querying Transaction Status
Get Transaction by ID
List Virtual Account Transactions
Overpayment
Underpayment
Duplicate Payments
Best Practices
Always Use Metadata
Always Use Metadata
Store relevant information in metadata for easy tracking:
Set Expiry for Temporary Accounts
Set Expiry for Temporary Accounts
Always set expiry dates for invoice payments:
Verify Webhook Signatures
Verify Webhook Signatures
Never process webhooks without signature verification.
Handle Webhooks Idempotently
Handle Webhooks Idempotently
Always check for duplicates using transaction_id or event_id.
Send Confirmations
Send Confirmations
Always notify customers when payments are received.
Testing
Test with a Small Live Deposit
FossaPay operates in production only, so test the collection flow with a small live transfer that you control.- Create a virtual account for the customer.
- Send a small transfer from a real bank account you control.
- Confirm that the deposit webhook fires and the balance updates.
- Verify your reconciliation logic against the live transaction record.
Next Steps
Create NGN Wallet API
API reference for creating NGN wallets
Webhooks Guide
Learn more about handling webhooks
Wallets Concept
Understand wallets in depth

