Transfers And Virtual Accounts
Use the SDK for bank transfers, beneficiaries, virtual accounts, and VA transfers.
Use kyshi.transfers for payouts and beneficiary management. Use kyshi.virtualAccounts for collection accounts. Use kyshi.virtualAccountTransfers for payouts through the virtual-account transfer rail.
Transfers
Create a beneficiary, then initiate a transfer.
const beneficiary = await kyshi.transfers.createBeneficiary({
accountName: 'Jane Doe',
accountNumber: '0123456789',
bankName: 'Test Bank',
bankCode: '000013',
currency: 'NGN',
});
const transfer = await kyshi.transfers.create({
beneficiaryId: beneficiary.id!,
currency: 'NGN',
amount: 1000,
narration: 'Vendor payout',
reference: 'PAYOUT-10001',
});Name Enquiry And Banks
const banks = await kyshi.transfers.listBanks('NGN');
const account = await kyshi.transfers.nameEnquiry({
bankCode: '000013',
accountNumber: '0123456789',
currency: 'NGN',
});Virtual Accounts
const account = await kyshi.virtualAccounts.create({
customer: { email: '[email protected]' },
currency: 'NGN',
accountType: 'INDIVIDUAL',
accountCategory: 'VIRTUAL_ACCOUNT',
bank: 'VFD',
});
const balance = await kyshi.virtualAccounts.getBalance('NGN');Verify Virtual Account Payment
const payment = await kyshi.virtualAccounts.verifyPayment({
reference: 'ORDER-10001',
});Virtual Account Transfers
kyshi.virtualAccountTransfers exposes the same transfer and beneficiary methods as kyshi.transfers, mapped to the virtual-account transfer API routes. It also supports bulk VA transfer batches for larger NGN payouts that need to be split by the provider payout limit.
const vaTransfer = await kyshi.virtualAccountTransfers.create({
beneficiaryId: 'beneficiary-id',
currency: 'NGN',
amount: 1000,
narration: 'VA payout',
reference: 'VA-PAYOUT-10001',
});Bulk Virtual Account Transfers
Kyshi charges the transfer fee once on the batch, reserves the total debit once, and processes the provider payouts in the background.
const batch = await kyshi.virtualAccountTransfers.createBulk({
beneficiaryId: 'beneficiary-id',
currency: 'NGN',
amount: 100000000,
narration: 'Bulk supplier payout',
splitCount: 20,
reference: 'VA-BULK-10001',
});
const latestBatch = await kyshi.virtualAccountTransfers.retrieveBulk(batch.id!);Common Methods
| Resource | Methods |
|---|---|
kyshi.transfers | create, retrieve, list, createBeneficiary, listBeneficiaries, retrieveBeneficiary, nameEnquiry, listBanks |
kyshi.virtualAccounts | create, createCorporate, list, retrieve, getDetails, getBalance, verifyPayment, simulateCredit |
kyshi.virtualAccountTransfers | Same transfer methods, using /va/transfer routes, plus createBulk and retrieveBulk |
For exact API fields and response schemas, see Reference > Transfers, Reference > Virtual Accounts, and Reference > VA Transfer.
