Finance

Generate tax rules from tax schemes

Let Transportial write the VAT, GST and sales tax rules of a price configuration from the tax scheme of your country: 36 countries, including the EU-27.

Updated 18 October 2026

Who can do this: The pricing update permission. Creating missing tax rates also needs the create:taxRate permission or a role level with access to the settings.

Which tax goes on a transport invoice depends on where the customer is established, where the transport starts and ends, and the tax law of the country. Transportial keeps that law as tax schemes. The generator turns a scheme into the VAT rules of your price configurations: one rule per situation, in the right order, each with an explanation and its legal basis. You only choose which of your own tax rates applies in each situation.

Tax schemes

Every country uses the same scheme format. A scheme lists the situations (for example "EU business customer (reverse charge)"), the rules that recognise them and the rates, each with the date it takes effect. Countries that share rules include a common template, so the EU rules are written once and used by every EU scheme. Each scheme also carries the legal basis of its rules, its sources and how confident the research behind it is.

SchemeWhat the rules follow
Netherlands, Belgium, GermanyThe shared EU template: the place-of-supply rules of the EU VAT Directive for goods transport, with the national standard rate.
The other 24 EU member states: Austria, Bulgaria, Croatia, Cyprus, Czechia, Denmark, Estonia, Finland, France, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, SwedenThe same EU template, plus the exemption of a domestic leg that is part of an international movement (see below). The reverse charge rule names the national law and the wording the invoice needs, for example "Autoliquidation" in France or "Inversión del sujeto pasivo" in Spain.
United KingdomBusiness customers outside the UK are outside the scope, transport wholly outside the UK is not taxed, transport to or from outside the UK is zero-rated, and other transport gets 20%.
Switzerland (with Liechtenstein)Customers established abroad are not subject to Swiss VAT, transport connected with import or export or performed abroad is exempt, and other transport gets the standard rate. Liechtenstein forms one VAT area with Switzerland, so its customers and stops count as domestic.
NorwayTransport to or from outside the VAT area and services wholly used outside Norway are exempt; other transport gets 25%.
Australia, New Zealand, Singapore, United Arab EmiratesInternational transport is GST-free or zero-rated, including a domestic leg of an international movement; other transport gets the standard rate. In the UAE, freight between GCC countries counts as international.
CanadaInternational freight is zero-rated; other freight is taxed by the province of destination (see below).
United StatesThe state sales and gross receipts taxes on freight, per state (see below).

Administrators can also add their own scheme, or replace a shipped one, through the API (the platform settings). Such a scheme shows own scheme in the Country scheme list.

Generate the rules

  1. Open the side menu (☰, top right) and choose Prices.
  2. Click a price configuration to open its detail page.
  3. Open the VAT rules tab. It lists the current rules in the order they are tried.
  4. Click Generate VAT rules. The generator opens with the steps Setup, Tax rates and Preview.
  5. In Administration, choose the administration the rules are for. Left empty, the Primary administration is used.
  6. In Country scheme, choose a scheme, or leave it on Country of the administration.
  7. Choose the Position of the generated rules: Before own rules or After own rules.
  8. Optional: switch on Also apply to all other pricings to write the same rules into every price configuration.
  9. Click Next.
  10. Under Tax rate per situation, check the tax rate for each situation. Rates marked Proposed were chosen by Transportial from the VAT category and percentage of your tax rates. Situations marked optional may stay on No tax rate.
  11. Click Preview rules. Check each Rule with its Tax rate and Explanation, the number of rules added, replaced and kept per price configuration, and read the warnings.
  12. Click Apply rules. The message "The VAT rules have been generated and saved." appears and the rules are listed on the tab.

Generated rules carry the tag Generated. When you run the generator again, it replaces the generated rules and keeps your own rules.

An own rule without conditions above the generated rules catches every line first, so the generated rules are never reached. Rules on a price module are tried before the rules of the configuration. The preview warns you about both.

EU countries

The EU template has these situations: Domestic / business customer in the home country, EU business customer (reverse charge), Transport to or from outside the EU (zero rate / exempt), Business customer outside the EU (out of scope), Private customer (no VAT number) and, optional, Private customer, departure in another EU country. Without a tax rate for the optional situation, those transports use the private customer rule.

United States

In the United States most states do not tax a carrier's freight charge. The scheme therefore generates, in this order:

  1. Tax-exempt customer (exemption certificate): the customer has a valid exemption for the state where the transport departs. See Customer tax registrations and exemptions.
  2. Transport to or from outside the United States: no state tax.
  3. Interstate transport (not taxable): stops in more than one state.
  4. Freight within Hawaii and Freight within New Mexico: one situation per state whose tax on freight is charged on the invoice.
  5. Transport within a state without tax on freight: everything else, including routes whose state is unknown.
StateTax on freight within the state
HawaiiGeneral excise tax of 4%, customarily passed on as its own invoice line. The proposed invoice rate is 4.712%, which includes the county surcharge that may be passed on.
New MexicoGross receipts tax of 4.875% plus local rates of the destination.
Washington, DelawareA tax the carrier pays itself (public utility tax, gross receipts tax). It is not charged on the invoice, so these states get no rule of their own.
All other statesNo tax on a carrier's freight charge.

Expand State / province data in the Tax rates step to see every state with its status (Charged on the invoice, Carrier tax, not charged on the invoice or Not taxed), its rate and the legal basis.

County and city rates are not in the scheme. Where they apply, map a combined rate with components, for example state + county + city (see Tax rates and VAT rules). The preview warns when a mapped rate differs from the state rate, so you can check it is the combined rate you meant.

Canada

Freight to or from outside Canada is zero-rated. Other freight is taxed by the province or territory where it ends (the last unloading stop):

DestinationTax
OntarioHST 13%
New Brunswick, Newfoundland and Labrador, Prince Edward IslandHST 15%
Nova ScotiaHST 14% (15% before 1 April 2025)
Québec, when the freight also starts in QuébecGST 5% + QST 9.975% (14.975%, not compound): map a combined rate with these two components.
All other provinces and territories, and Québec when the freight starts elsewhereGST 5% only. The provincial sales taxes of British Columbia, Saskatchewan and Manitoba do not apply to freight.

Part of an international movement

Some legs of an import or export lie entirely in one country, for example from the port to the customer's warehouse. Many countries zero-rate or exempt such a domestic leg when it is part of an international movement, but only with evidence, such as the export declaration, proof of foreign origin or the documents of the through transport.

Mark such a leg with the switch Is combined transport on its consignments (see Add consignments and goods). An order counts as part of an international movement when one of its consignments is combined transport, or when its route crosses a country border; a Trip has the fact when one of its orders has it.

Switch on Is combined transport only when you hold the evidence your tax authority requires for the domestic leg of an import or export. The rules cannot check the documents; they only see the switch. With the platform setting Always combined transport on, every new consignment has the switch on by default, so check that setting before you generate these rules.

The fact is used by the schemes of the 24 EU member states other than the Netherlands, Belgium and Germany, and by the United Kingdom, Switzerland, Norway, Canada, Australia, New Zealand, Singapore and the United Arab Emirates. In the EU and Switzerland it only zero-rates legs that stay within one country. In your own VAT rules it is available as taxContext.internationalMovement, and the switch alone as taxContext.combinedTransport.

Create missing state tax rates

For a scheme with state or province data, the Tax rates step shows the switch Create missing state / province tax rates. Switch it on, and every per-state situation without a tax rate gets the tag Will be created. The preview lists the rates, and Apply rules creates them: named after the state and its rate, with the state's region code (for example US-HI) as jurisdiction and VAT category S, and maps them to their situation. When the scheme lists several taxes for a state or province, the new rate is a combined rate with those taxes as its components; the preview lists them under the rate.

Effective dates

Every rate in a scheme carries the date it takes effect, so a scheme can already hold a change that is announced for next year, and keeps earlier rates, such as Estonia's move from 22% to 24% on 1 July 2025 or Switzerland's 8.1% since 2024. The generator uses the rates in force today. Through the API you can generate with the rates of another date, for example to prepare for a rate change. The rules point at your tax rates, so when a rate changes, create a new tax rate, run the generator again and map the new rate.

Trade blocs and corrections

  • Trade blocs: the EU is a trade bloc with its 27 member states. Administrators can add other blocs, such as a customs union or VAT area, through the API (the platform settings). The rules can then check whether the customer, departure and arrival are in a bloc and whether the route stays within it or leaves it.
  • Corrections per region: administrators can correct the state data of a scheme per region code through the API: whether freight is taxed, the rate, whether the tax goes on the invoice and the invoice rate. A state whose tax is put on the invoice this way gets its own situation and rule.

Known limitations

The rules only see the facts of the order or Trip. These cases are not generated, so correct them by hand with your own rules or tax rates:

  • Use and enjoyment: the German and Belgian rule for business transport performed wholly outside the EU is not generated. The UK rule only looks at departure and arrival, so a transit is not seen.
  • Private customers: transport for private customers that is only partly in a country (taxed by the distance in that country) cannot be split over one invoice line.
  • Canada, several destinations: freight to several provinces must be split per province; the rules use the last unloading stop.
  • Taxes the customer pays: reverse-charged or self-assessed taxes, such as the QST on freight into Québec, are the customer's. The rule gives a 0% (or GST-only) line instead of a component.
  • Special territories and the supplier's establishment: regional rates such as the Azores and Madeira, Greek islands, the Canary Islands and the French overseas departments, and rules that depend on where you as the supplier are established or registered (for example cabotage in Norway), are not modelled.
  • Transitional rates: rates that depend on a contract date or when the tax became payable follow the scheme date only.

Region codes

Transportial names countries and regions with ISO codes: countries with two letters (ISO 3166-1, for example NL or US) and states, provinces and other regions with the country code and a region code (ISO 3166-2, for example US-TX for Texas, CA-ON for Ontario, DE-BY for Bavaria or NL-NH for North Holland). Wherever you choose a jurisdiction, you first pick the country and then, if needed, the State / province / region.

The region of a stop comes from the state or province of its address. "Texas", "TX" and "US-TX" in a US address all become US-TX.

Fill in the state or province of your addresses. Without it, the region of a stop is unknown, and the US rules treat the transport as transport within a state without tax on freight.

Facts the rules check

The generated rules check facts that Transportial works out for each transport order or Trip being priced, under the selector taxContext. You can use the same selectors in the conditions of your own VAT rules. The customer is the invoiced party: the bill-to party of the order, else its customer.

SelectorMeaning
taxContext.availableAlways true when the tax facts could be worked out.
taxContext.issuer.country, .subdivision, .blocsCountry, region code and trade blocs of your administration.
taxContext.customer.country, .subdivision, .blocsWhere the customer is established.
taxContext.customer.vatNumber, .hasVatNumberThe customer's VAT number, and whether it has one.
taxContext.customer.registrations, .registeredInThe customer's tax registrations, and the jurisdictions they are for.
taxContext.departure.country, .subdivision, .blocsThe first loading stop.
taxContext.arrival.country, .subdivision, .blocsThe last unloading stop.
taxContext.countries, taxContext.subdivisionsThe countries and region codes of the stops, in route order.
taxContext.singleCountry, taxContext.crossesCountryBorderAll stops are in one country, or in more than one.
taxContext.singleSubdivision, taxContext.crossesSubdivisionBorderAll stops are in one known region, or in more than one.
taxContext.blocs.EU.customerIn, .departureIn, .arrivalInThe customer, departure or arrival is in the bloc (here the EU).
taxContext.blocs.EU.within, .intra, .leavesAll stops are in the bloc; departure and arrival are in two different member countries; at least one stop is outside the bloc.
taxContext.customerExemptThe customer has a tax exemption that is valid today for the region or country of departure.
taxContext.combinedTransportA consignment of the order is marked Is combined transport.
taxContext.internationalMovementA consignment of the order is combined transport, or the route crosses a country border.

Rules written with the older selector vatContext keep working. It holds the same facts plus the earlier flat fields, such as vatContext.customerHasVatNumber, vatContext.customerInEu, vatContext.departureCountry and vatContext.leavesEu. Use taxContext for new rules.

The facts exist for lines of transport orders and Trips. Price configurations that invoice per vehicle or driver have no route, so these rules do not apply to them; the preview warns you.

Still need help?

Our support team is happy to answer any question about Transportial.