The Tax Bot records Sales Taxes on Purchase or Sales transactions posted in your book.

The Tax Bot is triggered by Custom properties on transactions, to calculate the collected or paid taxes, and record that in another transaction.

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.

Overview

On each post transaction event in your book the Tax Bot checks the accounts and groups involved for the tax_included_rate or tax_excluded_rate properties. If so, it will take the transaction and property data to record a tax transaction with that information.

The Tax Bot works on a single book.

Installation

- Create a Book
- Install the Tax Bot on this book.

Tax Bot status

Blue: working properly

Red: error

No icon: not installed.

Detailed Flow

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

100 Service >> Receivable 1 hour work

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.

Accounts

The accounts needed for the Tax Bot to work properly.

For the Sales scenario

An Incoming account for Service or Product that you sell, that will hold the tax properties.

A Liability account for the Tax Output that represents the collected sales taxes.

For the Purchase scenario

An Outgoing account for the products or services you aquire, that will hold the tax properties.

An Asset account for the Tax Input that represents the taxes you have to reclaim.

An Asset account that represents a Cash or Receivable account.

Properties

Tax Bot Properties can be set on Accounts or on Groups for more than one account.

Properties to set in the Sales scenario.

On an incoming account or group:

tax_description

tax_included_rate

tax_exluded_rate

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.

In the above image Output Tax is the liability account representing the taxes that you will have to pay and ${account.name} is the variable, in this case Services, where the included tax has to be deducted.

Properties to set in the Purchase scenario.

On the outgoing account or group:

tax_description

tax_included_rate

tax_exluded_rate

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.

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.

Note: Tax properties are not set on Asset or Liability accounts.

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 and / 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?