Managing Virtual Accounts with Twisp

Setting up, tracking, reconciling, and generating financial reports for virtual accounts. This guide is best for fintech companies, banks, and any organization that requires efficient and accurate management of virtual accounts for streamlined financial operations and enhanced business decision-making.

Setting up virtual accounts

Creating and maintaining FBO GL accounts (also known as virtual accounts) is an essential part of managing financial transactions, especially for multi-tenant applications. In this section, we'll walk through the process of setting up virtual accounts using Twisp.

1. Create a chart of accounts for virtual accounts

To get started, you'll first need to create a chart of accounts that represents the various virtual accounts you'll be working with. This chart of accounts will form the basis for tracking balances, transactions, and generating reports. You can use Twisp's createAccount mutation in the GraphQL API to create new accounts for this purpose. Refer to the Creating Accounts documentation for more information on creating a chart of accounts.

2. Designate a master account for each virtual account category

It's essential to organize your virtual accounts into categories for better management and reporting. Designate a master account for each category of virtual accounts, such as customer accounts, business accounts, and settlement accounts. You can create master accounts using the createAccount mutation and specifying their purpose in the account details.

3. Provision virtual accounts for individual customers or entities

Once you have your chart of accounts and master accounts set up, you can start provisioning virtual accounts for individual customers or entities. You will need to create an account for each customer or entity using the createAccount mutation, and link these accounts to the appropriate master account.

Additionally, you can use the AccountSet feature in Twisp to group and organize accounts into categories, making it easier to manage and query the accounts. Refer to the Organizing with Account Sets tutorial for more information.

By following these steps, you'll have a well-organized chart of accounts with virtual accounts set up for your customers or entities. This will enable you to track financial transactions, maintain accurate balances, and generate reports with ease.

Tracking transactions in virtual accounts

Managing and tracking transactions in your virtual accounts is essential for maintaining accurate financial records and ensuring the smooth operation of your financial system. Twisp provides powerful tools for defining, posting, and reviewing transactions in your virtual accounts. In this section, we will cover how to define transaction codes, post transactions, and use tran codes to ensure consistency and accuracy in your accounting entries.

1. Define transaction codes for common financial activities in virtual accounts

Transaction codes (tran codes) are pre-defined templates that specify how transactions should be processed within Twisp. They encode the basic patterns for each type of transaction as a predictable and repeatable formula, ensuring a consistent and accurate accounting system. To define transaction codes for your virtual accounts:

  • Review the types of transactions your organization needs to handle, such as deposits, withdrawals, transfers, and fees.
  • Create unique identifiers for each transaction type, such as DEPOSIT, WITHDRAW, TRANSFER, or FEE.
  • Design tran codes that specify the debited and credited accounts, as well as any additional parameters required for each transaction type.

2. Post transactions to the appropriate virtual accounts using Twisp's API

Once your transaction codes are defined, you can use Twisp's API to post transactions to the appropriate virtual accounts. To post a transaction:

  • Choose a transaction code that corresponds to the type of transaction you want to post, such as DEPOSIT or WITHDRAW.
  • Use the postTransaction GraphQL mutation to submit the transaction, along with the required parameters, such as the debit and credit accounts, amount, currency, and effective date.
  • Ensure that your application properly handles any errors or exceptions that may occur during the transaction posting process.

3. Use tran codes to ensure consistency and accuracy in accounting entries

Tran codes play a crucial role in maintaining a consistent and accurate accounting system within Twisp. By using tran codes to structure your transactions, you can:

  • Enforce a strong separation of concerns between accounting logic and product/business logic.
  • Ensure that all transactions are executed atomically, leading to correct and easy-to-reason-about systems.
  • Centrally manage the interface for defining every type of transactional activity that your system handles, providing a rich view into your funds flow.

By following these steps, you can effectively track transactions in your virtual accounts using Twisp's powerful accounting tools. This will help maintain accurate financial records and ensure the smooth operation of your financial system.

Reconciling balances in virtual accounts

In order to ensure the accuracy of your virtual accounts' financial data, it's crucial to perform regular reconciliations. Reconciliation involves confirming that your account balances match the actual transactions and activities that have taken place. With Twisp's robust GraphQL API, you can easily retrieve account history and transaction details to perform reconciliations within your FBO accounts. Here's how:

1. Perform regular balance checks to confirm accuracy

Use Twisp's balance and balances queries to get the current balance of each virtual account. You can retrieve a single balance for a specific account and currency, or a set of balances for a given set of conditions.

2. Retrieve account history and transaction details

Access the account history and transaction details by querying the entries field of an account in Twisp's GraphQL API. This will provide you with a list of all entries posted to the account, including debits and credits.

You can also retrieve transaction details by querying the Transaction object, which will provide you with information about the specific transaction, such as transaction codes, dates, and amounts.

3. Identify and resolve discrepancies in balances or transactions

Compare the retrieved account balances and transaction details against your internal records and external sources (such as bank statements or payment processor records) to identify any discrepancies.

If you find any discrepancies, investigate the root cause and make any necessary adjustments using Twisp's API. This may involve correcting transaction codes, posting new entries to the ledger, or even updating the account details.

By regularly reconciling your virtual accounts, you can ensure that your financial data remains accurate and up-to-date. Twisp's GraphQL API makes it easy to access the information you need for reconciliation, allowing you to maintain the integrity of your FBO accounts with confidence.

Generating financial reports for virtual accounts

In this section, we will discuss how to use Twisp's API to retrieve account balances and transaction data, aggregate data from individual virtual accounts for reporting purposes, and generate customized financial reports based on aggregated data.

1. Retrieve account balances and transaction data

To retrieve account balances and transaction data from virtual accounts, you can use Twisp's GraphQL API. The balance and balances queries allow you to easily obtain balance information for your ledger entries and financial reporting. For more details on querying account balances, refer to the Conclusion.

For transaction data, you can query transaction details using the API, including filtering by date range, account, or transaction type. This will allow you to gather necessary information for generating financial reports.

2. Aggregate data from individual virtual accounts for reporting purposes

Once you have retrieved account balances and transaction data from the virtual accounts, you can aggregate this data to create meaningful financial reports. You can group transactions by account, transaction type, or date to analyze the overall performance of your virtual accounts and identify any trends or patterns.

3. Generate customized financial reports based on aggregated data

With the aggregated data, you can create customized financial reports that provide insight into the performance of your virtual accounts. These reports can include information such as total balances, transaction volumes, and revenue generated from specific transaction types. You can also generate reports for specific time periods, such as monthly or quarterly reports, to track the performance of your virtual accounts over time.

By utilizing Twisp's API and the features available within the Twisp system, you can effectively manage virtual accounts, track transactions, and generate financial reports that provide valuable insights into the financial health of your organization.

Maintaining and updating virtual accounts

As your financial product evolves and grows, it's crucial to maintain and update your virtual accounts to ensure accurate financial tracking and reporting. In this section, we'll cover how to use the Twisp API to update virtual account details, monitor activity, and make adjustments as needed.

1. Update virtual account details as needed

To modify the details of an existing virtual account, you can use the updateAccount mutation in the Twisp GraphQL API. This allows you to update properties such as the account name, description, or other relevant attributes. Be sure to follow the guidelines set by your chart of accounts when making these updates.

2. Monitor virtual account activity

To spot potential issues or opportunities for optimization, regularly review the activity of your virtual accounts to identify any discrepancies or areas for improvement. You can use Twisp's API to query transaction history, account balances, and other relevant data. By staying informed about account activities, you can proactively address any issues and optimize your financial product's performance.

3. Make adjustments to virtual account structure and transaction codes

As your financial product grows and changes, you may need to adjust your chart of accounts and transaction codes to better reflect the evolving nature of your business. Utilize the Twisp API to create, update, or delete accounts and transaction codes as needed. Remember to test any changes thoroughly to ensure they meet your financial system's requirements and maintain the integrity of your accounting data.

By regularly maintaining and updating your virtual accounts, you can ensure the accuracy and reliability of your financial reporting while keeping your accounting system agile and adaptable to changing business needs. Stay proactive and make data-driven decisions by harnessing the power of Twisp's financial ledger database and API capabilities.


In conclusion, Twisp's robust capabilities offer a comprehensive solution for managing virtual accounts. From setting up the right account structure, tracking transactions accurately, conducting regular reconciliation, generating detailed financial reports, to maintaining and adapting your system as business needs evolve - Twisp provides all the necessary tools.

This guide has walked you through each step of the process, highlighting the use of the Twisp API and its functionalities. As you continue to manage your virtual accounts, keep in mind the importance of regular audits, prompt reconciliation, and updates to ensure the efficiency and accuracy of your financial system.

Remember, the heart of successful virtual account management lies in understanding your unique business requirements and using a system like Twisp that is flexible, powerful, and precise. With these tools at your disposal, you're well-equipped to handle the complexity and variability of today's financial transactions while maintaining complete visibility and control over your virtual accounts.