Taxes
The Taxes module decides how your sales are taxed. You define the tax rates you charge, group the rates that are charged together (for example GST + PST), and write rules that pick a group from the customer's location and the product's tax class. Quotations, sales orders and invoices then ask this module for the taxes of every line, so you never pick a tax by hand on a document.
Before you begin
- Open the module from the sidebar under Administration → Taxes (
/m/taxes). You can also search for "Taxes", "VAT", "GST" or "sales tax" in the command palette. - To view rates, groups and rules and to use Try it, you need
taxes.tax.read(members have it by default). - To create or change rates, groups, rules and the tax setting, you need
taxes.manage. To make customers tax exempt, you needtaxes.exemption.manage. Administrators have both by default. - Give each product a Tax class in the Product Catalog. The rules use it to tell standard goods from reduced, zero-rated or exempt goods.
- Fill in your customers' Country and address regions in Contacts. Without a country, only rules for any country can match.
Key concepts
| Concept | What it is |
|---|---|
| Rate | One tax and its percentage, such as GST 5 % or PST 7 %. A rate can be compound (tax on tax) and can name the ledger account it posts to. |
| Group | The rates charged together, in the order they apply, such as GST + PST. A group shows its Total rate on an amount of 100. |
| Rule | Which group taxes a sale, chosen by the customer's Country, Region (state, province) and the product's Product tax class. A rule without a group charges no tax. |
| Exempt customer | A company or contact that is not taxed (for example a charity or public body), with a reason, an optional certificate number and optional validity dates. |
| Tax class | Set on each catalog product: Standard, Reduced, Zero-rated or Exempt. Free-text document lines use Standard. |
The Taxes page has five tabs: Rates, Groups, Rules, Exempt customers and Try it.
Set up tax rates
-
Go to Administration → Taxes. The Rates tab opens.
-
Select New rate.
-
Fill in the fields:
Field What to enter Code A short code, unique among your rates, such as GST. Letters, digits and-,_,.only; Modulix saves it in upper case.Name The name shown on documents and in totals, such as GST.Rate The percentage, from 0 to 100, with up to 4 decimals (for example 9.975).Compound (tax on tax) Turn on when this tax applies to the amount plus the taxes before it in its group. Tax account Optional. The code of the general ledger account the tax posts to (see How taxes reach the ledger). Active Inactive rates are not offered when you build groups. A rate already in a group is still charged until you remove it from the group. Description Optional notes. -
Select Save.
To change a rate, select its code in the list. To delete it, open it and select Delete. A rate that belongs to a group cannot be deleted: remove it from its groups first, or make it inactive.
Changing a rate's percentage does not change documents that were already priced. Each quotation, order and invoice keeps the taxes it was calculated with until its lines, customer, currency or date change.
Group rates together
Every rule points to a group, even when only one tax applies. Create a one-rate group (for example GST) for places that charge a single tax.
- Open the Groups tab and select New group.
- Enter a Code and a Name (for example
GST-PSTandGST + PST). - Under Rates, in the order applied, tick the rates of the group. Use the up and down arrows to put them in order. The order matters only for compound rates, which apply on the amount plus the rates before them.
- Select Save. You must choose at least one rate.
The list shows each group's rates (for example GST + PST) and its Total rate, compound rates included.
An inactive group charges no tax on new documents. A group used by rules cannot be deleted: change those rules first.
Write tax rules
Rules choose the group that taxes each line of a sale.
-
Open the Rules tab and select New rule.
-
Fill in the fields:
Field What to enter Name A name you will recognize, such as British Columbia.Country The customer's country. Leave empty for any country. Region (state, province) Optional. A region of that country, such as BCorOntario. It must match the region your customers' addresses use (case and extra spaces are ignored). You must choose a Country to use a region.Product tax class Optional. Limit the rule to one tax class. Leave empty for any class. Tax group The group to charge. Leave empty to charge No tax (for example for zero-rated goods). Priority A number from 0 to 1000 (default 100). Lower numbers win ties. Active Inactive rules are ignored. -
Select Save.
Which rule applies
For each document line, Modulix looks at all active rules that fit the customer's location and the line's tax class, then picks one:
- The most specific rule wins. A rule that names a country beats one that does not; then a rule that names a tax class beats one that does not; then a rule that names a region beats one that does not.
- Among equally specific rules, the lowest Priority number wins.
- If no rule matches, the line has no tax.
Because the tax class counts more than the region, a rule such as "Canada, Zero-rated, no tax" applies in every province, even where a province rule exists.
For example, for a Canadian business:
| Rule | Country | Region | Product tax class | Tax group |
|---|---|---|---|---|
| Canada | Canada | Any class | GST | |
| British Columbia | Canada | BC | Any class | GST + PST |
| Ontario | Canada | ON | Any class | HST |
| Quebec | Canada | QC | Any class | GST + QST |
| Zero-rated goods | Canada | Zero-rated | No tax |
A standard product sold to a customer in Alberta gets GST; the same product sold to a customer in Ontario gets HST; a zero-rated product gets no tax anywhere in Canada. A customer outside Canada matches no rule and is not taxed.
Deleting a rule is safe: sales it applied to follow the next matching rule.
Where the customer is taxed
On quotations, sales orders and invoices, the customer is a company. Modulix uses:
- the company's Shipping address, when it has a country; otherwise
- the company's Country and the region of its Address.
Purchase orders and vendor bills are taxed for the supplier company's Country and the region of its Address. See Purchase orders.
Make a customer tax exempt
An exempt customer is not taxed on documents dated within the exemption's validity dates.
You can do this from the Taxes page:
- Open the Exempt customers tab and select New exemption.
- Choose the Customer type (Company or Contact) and the Customer.
- Enter the Reason (required), and optionally the Certificate number, Valid from and Valid until dates.
- Select Save.
Or from the customer's page in Contacts: the Tax exemption card shows "Taxed normally." or the current exemption. Select Make exempt to add one, or Edit exemption to change it. An exemption past its end date shows Expired.
Things to know:
- A customer can have one exemption. To change it, edit it; you cannot pick another customer for an existing exemption.
- Valid until must be on or after Valid from.
- The exemption is checked against each document's date: a quotation's issue date, an order's order date or an invoice's issue date.
- Sales documents are made out to a company, so it is the company's exemption that counts on them.
- When a customer is deleted, their exemption is deleted too. When two customers are merged, the exemption follows the record that is kept (if it has none of its own).
- Removing an exemption taxes the customer again on new documents.
How a line is taxed
For each line, Modulix takes the line's net amount after discounts, finds its rule and group, and applies each rate of the group in order:
- A normal rate is a percentage of the net amount.
- A compound rate is a percentage of the net amount plus the taxes before it in the group.
- Each tax is rounded to the currency's decimals.
The document's totals add up the lines and list the tax of each rate on its own line (for example "GST 5 %" and "PST 7 %"). Each line also shows the codes of its taxes in the Tax column (for example GST + PST).
For example, a line of 100.00 with GST (5 %) and PST (7 %) gives GST 5.00 and PST 7.00, total 112.00. With a 10 % compound rate after a 5 % rate, the second tax is 10 % of 105.00, so 10.50.
Prices that include tax
If your prices already include tax, turn on Prices include tax (taxes are taken out of them) under Administration → Settings, Taxes tab. You need permission to manage organization settings.
With this setting:
- the amounts of the lines are gross amounts, and Modulix works out the net amount and the taxes inside them;
- any rounding difference goes to the last tax of the group, so net + taxes always equals the gross amount exactly;
- totals show each tax as "incl. GST 5 %" and there is no separate net line on PDFs.
Each document remembers whether its prices included tax when it was calculated. Purchase orders and vendor bills always use prices before tax.
Try the rules
Use Try it to check your set-up before you issue documents.
- Open the Try it tab.
- Choose a Country, and enter a Region (state, province) if needed.
- Choose the Product tax class.
- Enter an Amount and choose a Currency.
- Turn on The amount includes tax to test tax-inclusive prices.
- Select Try the rules.
The result shows the Net, each tax with its rate, and the Total. If no rule matches, it says "No rule matches: no tax."
Try it does not look at exemptions; it shows the taxes for a location and a tax class only.
How taxes connect to other modules
- Product Catalog: each product's Tax class feeds the rules.
- Quotations, Sales orders and Invoicing: every line is taxed when you save the lines, and again when you change the customer, currency or document date (prices and discounts are kept). An order made from an accepted quotation keeps the quotation's lines and totals. An invoice made from an order keeps the order's prices and discounts, and its taxes are calculated for the invoice.
- Purchase orders and vendor bills in Accounts payable: lines are taxed with the same rules, for the supplier's location.
- Accounts receivable and the General ledger: issuing an invoice posts each tax amount to its rate's ledger account.
- Tax management reports tax collected against tax paid and prepares GST/HST and VAT returns from those ledger accounts.
How taxes reach the ledger
When an invoice is issued, each tax on it is credited to the account in its rate's Tax account, as long as that code is an active account you can post to in the general ledger. Otherwise the tax goes to the ledger's default account for tax collected. Credit notes reverse this. Tax management can set up an account for every rate for you.
Settings
| Setting | Where | Default | Effect |
|---|---|---|---|
| Prices include tax (taxes are taken out of them) | Administration → Settings, Taxes tab | Off | Line amounts on sales documents are treated as gross amounts, and taxes are taken out of them. |
Permissions
| Permission key | What it allows | Granted by default to |
|---|---|---|
taxes.tax.read | View tax rates, groups and rules, see customers' exemptions, and use Try it. | Admin, Member |
taxes.manage | Create, change and delete rates, groups and rules. | Admin |
taxes.exemption.manage | Make customers exempt, and change or remove exemptions. | Admin |
Troubleshooting
A line has no tax. Check, in order: the customer company has a Country (and a region, if your rules use regions) on its shipping address or address; a rule matches that country, region and the product's Tax class; the rule has a Tax group; the rule and the group are active; the customer is not exempt on the document's date. Use Try it with the same country, region and class to see which taxes apply.
The wrong province's tax is charged. Rules compare the region text exactly (ignoring case and spaces). If some addresses say British Columbia and your rule says BC, add a rule for each spelling or make the addresses consistent.
A document still shows an old rate. Documents keep the taxes they were calculated with. Edit and save the lines of a draft, or change its date, to recalculate them.