Collection flow
1
Create the individual customer
Call
POST /api/v1/customers and store the customer UUID.2
Create the NGN wallet
Call
POST /api/v1/wallets/fiat/create with the customer UUID, your wallet name, and your wallet reference.3
Display the account details
Show the returned bank, account name, and account number to that customer.
4
Receive a signed event
FossaPay sends
deposit.completed after a deposit is successfully processed.5
Reconcile and credit once
Deduplicate the event, persist its transaction identifiers, and update your own ledger exactly once.
Create the customer and wallet
Handle the deposit event
Reconcile a deposit
Use the wallet’s transaction list when a webhook is delayed or an operator needs an account statement. Retrieve a single transaction by ID when you already have the identifier from a webhook or support case.Persistent wallet versus checkout
Production checklist
- Create an
individualcustomer and persist its UUID. - Store the FossaPay wallet ID, account number, and your wallet reference.
- Keep API keys and webhook secrets server-side.
- Verify the signature over
JSON.stringify(body.data). - Return 2xx quickly and process asynchronously.
- Deduplicate by
eventIdand also retain the transaction reference. - Reconcile delayed notifications through wallet transaction endpoints.
- Keep personal and bank information out of application logs where possible.
Related endpoints
Create customer
Register the individual who owns the wallet.
Create NGN wallet
Provision the customer’s dedicated bank account.
Wallet transactions
Reconcile deposits and withdrawals.
Webhook handling
Verify, acknowledge, deduplicate, and monitor events.

