Virtual Accounts
Virtual accounts let customers pay you by bank transfer. Kyshi creates account details for the customer, receives payment notifications from the provider, and records successful credits as transactions.
Recommended Flow
- Create a virtual account for the customer.
- Show the account number, account name, bank name, and amount to the customer.
- Wait for webhook notification or poll
GET /v1/wallets/verify. - Verify that the credited transaction matches the expected amount/reference.
- Reconcile your available, pending, reserved, and transferable balances.
When To Use Virtual Accounts
Use Virtual Accounts when a customer should pay by bank transfer instead of card or hosted checkout. This is useful for bank-transfer checkout, reusable customer collection accounts, and wallet-style reconciliation.
Temporary vs Dedicated Accounts
| Account Category | Use When |
|---|---|
VIRTUAL_ACCOUNT | You need a temporary account for one payment or checkout session. |
DEDICATED_VIRTUAL_ACCOUNT | You need a reusable account tied to a customer or business relationship. |
Important Notes
- Virtual account details are a collection rail; they are not regular bank accounts for customer storage.
- For temporary accounts,
expiresAtis supplied in minutes. - In test mode, use simulate credit to test the webhook and verification flow.
transferableBalanceis the balance Kyshi considers available for payout rails that support transfers.- Match incoming credits against the expected customer, amount, and reference before updating your system.
For exact request and response schemas, see Reference > Virtual Accounts.
Updated 2 days ago
