Skip to main content

Overview

monei.walletAccount view wallet balances and create virtual bank accounts for deposits.

Get Wallet Info

// Optionally scope to a specific EVM chain
const wallet = await monei.walletAccount.getWallet(56); // BSC chain ID
console.log(wallet.balance, wallet.address);

Create Virtual Account

Virtual accounts give users a dedicated Nigerian bank account number to fund their Naira wallet.
const account = await monei.walletAccount.createVirtualAccount({
  subWalletId: 'sub-wallet-id',
});

console.log(account.accountNumber); // e.g. "0123456789"
console.log(account.bankName);      // e.g. "Wema Bank"

Deposit Service

monei.deposit fund the Naira wallet via multiple channels.

Initialize a Deposit

import { DEPOSIT_METHOD } from 'monei-sdk';

const deposit = await monei.deposit.initializeDeposit(
  DEPOSIT_METHOD.BANK_TRANSFER,
  {
    amount: 5000,          // Amount in kobo
    currency: 'NGN',
    subWalletId: 'sub-wallet-id',
  }
);

console.log(deposit.reference, deposit.paymentUrl);

Deposit with Saved Payment Method

const deposit = await monei.deposit.depositWithPaymentMethod({
  amount: 5000,
  currency: 'NGN',
  paymentMethodId: 'pm-id',
  subWalletId: 'sub-wallet-id',
});

Authorize a Deposit (OTP / 3DS)

await monei.deposit.authorizeDeposit({
  reference: deposit.reference,
  otp: '123456',
});
Share a payment link so anyone can fund your wallet without an account.
const link = await monei.deposit.generatePaymentLink({
  amount: 10000,
  currency: 'NGN',
  description: 'Invoice #42',
  subWalletId: 'sub-wallet-id',
});

console.log(link.url);

Check Deposit Status

const status = await monei.deposit.getStatus(deposit.reference);
console.log(status.status); // "pending" | "successful" | "failed"

Payout Service

monei.payout send Naira to bank accounts or other Monei users.

Bank Transfer

const transfer = await monei.payout.bankTransfer({
  amount: 5000,
  bankCode: 'GTBINGLA',
  accountNumber: '0123456789',
  accountName: 'John Doe',
  narration: 'Payment for services',
  subWalletId: 'sub-wallet-id',
});

console.log(transfer.reference, transfer.status);

Peer Transfer (Monei-to-Monei)

Send funds instantly to another Monei user’s wallet — zero fees, instant settlement.
await monei.payout.peerTransfer({
  amount: 2000,
  recipientTag: '@john',   // or email / user ID
  narration: 'Lunch split',
  subWalletId: 'sub-wallet-id',
});

Wallet Utility Service

monei.walletUtility look up banks and verify account numbers before sending.

Get All Banks

const { banks } = await monei.walletUtility.getBanks();
banks.forEach(b => console.log(b.name, b.code));

Verify Bank Account

Always call this before a bank transfer to confirm the account name matches.
const verified = await monei.walletUtility.verifyBankAccount({
  accountNumber: '0123456789',
  bankCode: 'GTBINGLA',
});

console.log(verified.accountName); // "JOHN ADEWALE DOE"