Skip to content

Transaction Tax Rate (Percent) Override

There are certain tax exemptions/benefits programs and other regulations that would require changing tax rates on some or all items of a transaction. Jumpmind Commerce can be configured to enable a toggling all sale items for an active transaction to have a specific tax rate override instead of the usual tax rate rules.

One example of this kind of scenario is section 87 of the Indian Act in Canada, where indigenous peoples under certain incomes are eligible for different tax rates. This Transaction Tax Rate Override feature enables behavior to support those types of tax exemption/override requirements.

The system supports any number of configurations for this type of tax exemption, though only one of these exemptions may be enabled on any transaction.

Note: Tax rate overrides applied this way do not work on Return items or Loyalty item types.

Configuration

The sample configuration described here is for what will be referred to as the First Nations Tax Exemption (formally, FirstNations) in order to fulfill the requirements of the Canada legality described above. The specific behavior configured below can be summarized as:

When a First Nations exemption is applied, all taxable items taxed against the selling store (e.g. cash-and-carry items) will have their HST tax reduced to 5%. All taxable items taxed against a shipping destination (e.g. when shipping to a customer's reservation address) will have their HST tax reduced to 0%.

Note the distinction between a standard "tax override to 0%" operation and what we're trying to accomplish here. We're adding sensitivity not only to the taxing jurisdictions in play by distinguishing between cash-and-carry and delivery items but also to which tax group rules are impacted. To the latter point, if the same exemption were applied in a "non-harmonized" jurisdiction -- i.e. where PST and GST taxes are separated rather than amalgamated -- it must also be possible to, for example, zero out an item's PST tax but preserve its GST taxes in full.

The configurations required to achieve this result are as follows:

CTX_BUTTON

A ctx_button row is required to make the First Nations exemption option available from the Sale menu.

button_group_id button_id button_type button_value default_payload enabled
sale.transaction_active IndigenousPeoplesTaxExemption action TaxExemptionPercentOverrideSale FirstNations 1

Boilerplate/extraneous columns have been omitted for clarity. Note the following:

  • button_value must, for now, have a value of TaxExemptionPercentOverrideSale. This is to maintain backwards compatibility with a prior implementation of the tax exemption feature.
  • default_payload may have any value, but that value must match the corresponding value supplied in other tables configuring this exemption.

CTX_FORM and CTX_FORM_FIELD

Because the information appropriate for capture for First Nations exemptions differs from the generic "tax override to 0%" form, we'll create a custom form:

form_id form_group_id
taxExemptAdd.FirstNations taxExemptAdd.FirstNations

with the requisite proprietary fields:

form_id form_field_id field_type required read_only
taxExemptAdd.FirstNations taxExemptCertificate NUMERIC 1 1
taxExemptAdd.FirstNations bandRegistryNumber NUMERIC 1 0
taxExemptAdd.FirstNations firstName ALPHANUMERIC 1 0
taxExemptAdd.FirstNations lastName ALPHANUMERIC 1 0

Boilerplate/extraneous columns have been omitted for clarity. Note the following:

  • ctx_form.form_id, ctx_form_group_id, and ctx_form_field.form_id must all have values of the form "taxExemptAdd.<taxExemptCode>", where taxExemptCode matches the ctx_button.default_payload value for the button by which the First Nations exemption is activated. In this case: taxExemptAdd.FirstNations.

TAX_EXEMPTION_RULE

Tax exemption rules map tax exempt codes (FirstNations for this example), to tax exemption behaviors. Currently, these behaviors will be applied to all taxable line items within a transaction, but future enhancements may permit more fine-grained control. Here is the exemption rule we need to support our use case:

rule_type rule_action rule_action_parameter
FirstNations USE_TAX_GROUP FirstNationsTax

Boilerplate/extraneous columns have been omitted for clarity. Note the following:

  • rule_type must have the same value as our tax exempt code; i.e. the ctx_button.default_payload value for the button by which the First Nations exemption is activated. In this case: FirstNations.
  • rule_action must be one of the following:
  • USE_TAX_GROUP - changes the tax group used to calculate taxes on exempted line items to the one named by rule_action_parameter
  • USE_TAX_TYPE - applies the taxes for the tax type named by rule_action_parameter and ignores all others associated with whatever tax group is assigned for each exempted line item
  • OVERRIDE_PERCENT - forgoes all tax calculations for each exempted line item and assigns them an authority-agnostic fixed tax rate named by rule_action_parameter
  • NONE - perform no exemptions and calculate taxes normally for all exemption-eligible line items
  • rule_action_parameter is sensitive to the semantics of rule_action. Since we're changing the tax group assigned to First Nations-exempted line items to one which will satisfy our requirements, here it is the name of a new tax group whose rates we'll configure separately.

TAX_GROUP_RULE

Our tax_exemption_rule has identified a new tax group for line items qualifying for a First Nations exemption, so we'll need some tax_group_rule rows to match:

category authority_id group_id tax_type rule_name
businessunit ON_HST FirstNationsTax FirstNationsHST HST
destination ON_HST FirstNationsTax FirstNationsHST HST

Boilerplate/extraneous columns have been omitted for clarity, and the more detailed mechanics of general tax configuration are outside the scope of this document. Note the following:

  • We need a separate group for the businesunit and destination categories. The former will drive our 5% HST exemption logic for cash-and-carry line items, while the latter will do the same for our 0% HST requirement for delivery lines.
  • group_id must correspond to the retargeted tax group named by tax_exemption_rule.rule_action_parameter.
  • authority_id and tax_type are integration dependent and/or dependent on related retailer tax data.
  • rule_name is theoretically arbitrary, but since taxes are typically aggregated by rule_name, it should rule name of the tax being overridden by the exemption.
  • If more than one tax rule needs to be adjusted by an exemption, additional tax_group_rule records may be created so long as each has a distinct rule_name.

TAX_RATE_RULE

Our tax_group_rules require corresponding tax_rate_rule records to dictate what tax rate should be applied to line items qualifying for a First Nations exemption:

category tax_type authority_id group_id tax_percent
businessunit FirstNationsHST ON_HST FirstNationsTax 5.00000
destination FirstNationsHST ON_HST FirstNationsTax 0.00000

Boilerplate/extraneous columns have been omitted for clarity, and the more detailed mechanics of general tax configuration are outside the scope of this document. Note the following:

  • tax_percent is 5% for cash-and-carry line items and 0% for delivered line items, per our requirements.
  • category, tax_type, authority_id, and tax_type must correspond exactly to the tax_group_rule for which a tax exemption rate applies.'

CTX_CONFIG

The openpos.sell.autoGenerateTaxExemptCustomer flag identifies whether nonexistent Tax Exempt certificates/accounts should be created at the time that the Certificate is attempted to be added to a Tax Exempt sale. If this flag is set to false, the prompt to create a Tax Exempt account of the "current" configured Tax Exemption type will not be prompted.