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.

  1. Post a transaction that represents a Sale or Purchase.

  2. This post event Triggers the Tax Bot.

  3. The Tax Bot finds the required tax properties on one of the accounts in this example the Service and gets into Action.

  4. It gathers all the data from this transaction including the property information of the incoming account (Service).

  5. The Tax Bot records another transaction on this book resembling the tax operation.

How to set up and install the Tax Bot?

  1. Create a Book

  2. Install the Tax Bot on this book:

    - Go to "Automations Portal" in your book

    - Choose Tax Bot
    - Click install

  3. Set 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:

  1. Create a Liability account for the Tax Output that represents the collected sales taxes. Note: Tax properties are not set on Liability accounts.

  2. 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:

  1. Create an Asset account for the Tax Input that represents the taxes you have to reclaim.

  2. Create an Asset account that represents a Cash or Receivable account.

  3. 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.

${account.name}: The account name of the account that triggered the Tax Bot

${account.name.origin}: The account name when participates as origin in the transaction. Empty otherwise.

${account.name.destinaton}: The account name when participates as destination in the transaction. Empty otherwise.

${account.contra.name}: The contra account name of the account that triggered the Tax Bot.

${account.contra.name.origin}: The contra account name when participates as origin in the transaction. Empty otherwise.

${account.contra.name.destinaton}: The contra account name when participates as destination in the transaction. Empty otherwise.

${transaction.description}: The same description that comes from the posted transaction that triggered the Tax Bot.

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

Example:
tax_excluded_rate: 10

tax_included_rate: The tax rate to apply, extracting the tax already included in the transaction amount. Use the tax_included_rate property for sales or purchase transactions where taxes are included in the amount on the triggering transaction).

Note: You cannot add two tax_included_rate or tax_excluded_rate properties to one account.

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.

Did this answer your question?