Virtual Account (VA)

New Virtual Account

Changed on

Create a Virtual Account for an existing customer. Virtual Account is a Bank account number issued to a Finmo Wallet. The Virtual account can receive funds from any bank using the bank’s own tools.

Merchants who wish to enable the Virtual Account creation should contact the Finmo support team at support@finmo.net, and we will review your request promptly. Please ensure to use your registered email and include your organization ID in the email.

Virtual accounts can be classified into two types:

  1. Static VA: As the name suggests, Static VAs are fixed and function like a regular bank accounts. Once issued, they can be reused indefinitely for multiple transactions. There are no restrictions on the amount that can be transferred to a Static VA.

  2. Dynamic VA: Dynamic VAs are generated for specific transactions, with each account number being unique to a particular purpose and amount. While beneficial for reconciliation, Dynamic VAs can be somewhat inconvenient for consumers, as they must transfer funds to a new account number for each transaction. Additionally, some banks may impose restrictions on the amount or have a waiting period for newly added beneficiaries. Finmo supports both types of VAs depending on the market.

Virtual Accounts in Various Markets

  • Australia: Virtual Accounts can be issued in the form of a BSB and Account Number, a static PayID, or an account proxy, e.g., customer_username@myfiatwallet.com.

  • Singapore: Virtual Accounts are issued solely as Account Numbers.

  • EU and UK: Virtual Accounts are issued as IBANs.

  • Indonesia: Virtual Accounts are issued as account numbers, where the first six digits identify the issuing bank. Dynamic VAs are especially popular in Indonesia, with 80-90% of eCommerce transactions conducted via Dynamic VAs.

Popular Use-cases

  • Remittances: Generate a Virtual Account and issue it to customers who frequently transfer funds. This way, customers do not need to change account numbers for each transfer.

  • Fiat or Digital Currency Wallet Top-ups: Issue a VA to wallet users, allowing them to easily load funds and transact on your platform.

post/virtual-account

Request

  • Base URL
    https://api.finmo.net/v1
  • Auth
    HTTP basic

Request body

currencystring required

VA currency

customer_idstring required

Customer reference (customer_*)

scope'CUSTOMER' | 'MASTER'

Scope of the VA, can be "CUSTOMER" or "MASTER"

credit_wallet_idstring required

Conditionally required: Either credit_wallet_id or credit_wallet_category should be present. Wallet ID is needed when a customer is linked to more than one wallet. If you pass a customer_id and its linked to a customer wallet, all funds are deposited there. But if the customer_id is linked to your Organization Payin wallet then you don't need to provide it here. However if you pass both the Customer_id and the wallet_id and both of them are not linked then the API would give an error. If you pass a customer wallet only and nothing in customer_id, API will still work.

credit_wallet_category'PAYIN' | 'PAYOUT' | 'FEES' | 'GENERAL' required

Conditionally required: Either credit_wallet_id or credit_wallet_category should be present Credit Wallet Category. Category can be "PAYIN", "PAYOUT", "FEES", "GENERAL".

fees_wallet_idstring

Fees Wallet ID

descriptionstring

VA reference or description can be passed

payin_method_namestring required

Payment method name. If you pass a Payin Method here that does not support the currency you passed, the API will fail

payin_method_paramobject

Provide the params required by the Payin method

organization_reference_idstring

A reference you can later use to identify this payment, such as an order number. Can only be alphanumeric and must be unique for Benefit.

webhook_urlstring

Example request

{
  "credit_wallet_category": "Payout",
  "credit_wallet_id": "wallet123",
  "currency": "AUD",
  "customer_id": "customer_cca213f34f4949d89e059fb4ec8318ac",
  "description": "description",
  "fees_wallet_id": "wallet234",
  "metadata": {
    "any-custom-ref": "INV_123"
  },
  "organization_reference_id": "org123",
  "payin_method_name": "au_bank_npp",
  "payin_method_param": {
    "payid_reference": "va_c829c06845244ca4938b054d92f26513"
  },
  "scope": "MASTER",
  "webhook_url": "finmo.net"
}

Response

Created

request_idstring
request_timestring date-time
status_codeinteger
status_textstring
successboolean

Changes