What is the Bkper Tax Bot?
The Tax Bot is a bot that records sales taxes on Purchase or Sales transactions posted in your book.
The Tax Bot either extracts non-included or included taxes depending on the custom properties set on the incoming or outgoing accounts. The sales taxes / vat article explains these concepts in detail.
Note: Tax Bot Properties can be set on Accounts or on Groups for more than one account.
How the Tax Bot works?
Is triggered by Custom properties on accounts/groups or transactions, to calculate the collected or paid taxes, and record that in another transaction. On each post transaction event in your book the Tax Bot checks the accounts and groups involved for two properties.
Post a transaction that represents a Sale or Purchase.
This post event Triggers the Tax Bot.
The Tax Bot finds the required tax properties on one of the accounts in this example the Service and gets into Action.
It gathers all the data from this transaction including the property information of the incoming account (Service).
The Tax Bot records another transaction on this book resembling the tax operation.
How to set up and install the Tax Bot?
Create a Book
Install the Tax Bot on this book:
- Go to "Automations Portal" in your book
- Choose Tax Bot
- Click installSet properties:
Set properties on accounts (or group).
or Set properties on transactions.
The Tax Bot works for both, Sales as well as Purchase transactions and it can reflect both included as well as non included taxes:
Sales scenario
Purchase scenario
How can I use Tax Bot for the Sales scenario?
The Tax Bot works by properties on accounts or properties on transaction.
Setting properties on accounts:
Create a Liability account for the Tax Output that represents the collected sales taxes. Note: Tax properties are not set on Liability accounts.
Create an Incoming account for Service or Product that you sell that will hold the tax properties. Insert properties in the Incoming account.
In the tax _description property it's important that you follow the order of the tax output account followed by the variable, so a tax payable is recorded.
Example: Output tax ${account.name} #VATout ${transaction.description}
In the above gif, the Output Tax is the liability account representing the taxes that you will have to pay and ${account.name} is the variable, in this case Service, where the included tax has to be deducted.
See that after set the account properties, when you post the Sales transaction, the other (tax) is created automatically:
How can I use Tax Bot for the Purchase scenario?
The Tax Bot works by properties on accounts or properties on transaction.
Setting properties on accounts:
Create an Asset account for the Tax Input that represents the taxes you have to reclaim.
Create an Asset account that represents a Cash or Receivable account.
Create an Outgoing account or group for the products or services you aquire, that will hold the tax properties.
In the tax description property it is important to follow the order of the variable followed by the tax input account so a tax receivable is recorded.
Example: Input tax ${account.name} #VATin ${transaction.description}
In the above image ${account.name} is the variable, in this case Materials, where the included tax has to be deducted and Input Tax is the Asset account representing the taxes that you will have to receive.
The use of a variable for the triggering account instead of hard copying it into the property is important because renaming an account will not affect the property. Also setting these properties at group level will include all the accounts within the group so you can add more accounts and do not have to worry about the properties as they are covered by the variable.
Use the tax_excluded_rate property for sales or purchase transactions where taxes aren't included in the amount on the triggering transaction. A a separate payable or receivable is recorded using the "other" account on the triggering transaction as the counter account for the payable or receivable. This "other" account is represented by the ${account.contra.name} variable.
Accounts properties:
The operation will depend on the property defined.
tax_description | This property value is a text specifying the debit and credit accounts of the tax transaction that will be generated by the Tax bot, as well as its description. |
tax_excluded_rate or tax_included_rate | tax_excluded_rate: The tax rate to apply, calculating the tax based on the transaction amount.Use the tax_excluded_rate property for sales or purchase transactions where taxes aren't included in the amount on the triggering transaction |
How do I know if the Tax Bot is working?
At the transactions page, observe the Tax Bot icon:
If is blue: working properly
If is red: error
If there is no icon: not installed.
More about how Tax Bot works
Trigger
The Tax Bot is triggered by the post transaction event. It checks both accounts for the tax properties and continues its actions when either account on the transaction has the properties: tax_description, tax_included_rate or tax_excluded_rate.
Action
The Tax Bot collects all the data on the transaction, including the tax properties and records another transaction on this book resembling the tax operation according to the properties.
Note: sometimes it can take a while for the tax transaction to appear on your book. As long as the Tax Bot icon is blue you only have to wait for it to be recorded.
Closing an outstanding tax balance
At some point the outstanding Input and Output tax balances closed.
If you keep two separated Input and Output tax accounts like in the examples above, you should deduct one from another and pay the amount due or claim the amount receivable.
Multiple taxes on one transaction
You cannot add two tax_included_rate or tax_excluded_rate properties to one account. So if you need to record for example a state and a federal tax on one transaction you have to work with the tax properties on Groups.
Create two groups, one for the state and another one for the federal taxes and add the corresponding tax rates to each group.
Add the accounts to which both taxes apply to both the groups.
Now, for each posted transaction with accounts that are in both groups the tax bot will record two tax entries.