Tax Groups (VAT codes)

Tenant-managed VAT codes in Omnium — a rate, an ERP/SAF-T external code (MVA-kode), validity windows for rate changes, and how tax groups tag products, prices, and ledger lines.

A tax group is a tenant-defined VAT code: a short stable identifier carrying a VAT rate and an external code (the ERP / SAF-T MVA-kode) that your accounting system uses on a VAT return. Tax groups tag products, prices, and order lines, and that tag flows through to the VAT code and rate on each ledger line.

Tax groups are managed under Configuration → Settings → Advanced → Accounting settings, on the VAT rates tab.

The tax-group subsystem is an independent switch from posting generation. Tax groups tag products, prices, and order lines whether or not postings are enabled, and postings can be generated without tax groups.

Why tax groups exist

A bare VAT rate (25) is not enough for accounting. Two lines can both be 0 % yet need different treatment — zero-rated (within VAT scope, reported) versus outside VAT scope (not reported as VAT at all). A tax group attaches the rate and the ERP code and the scope flag to a single tenant-chosen code, so the distinction survives all the way to the VAT return.

Enable tax groups

SettingDescription
Tax groups enabledTurns tax groups on. When on, the default tax group selector and the tax-group list appear, and the tax-group Code field appears on products.
Default tax groupThe code applied to a product, price, or line that has no group of its own — see How a line gets its tax group for the exceptions. Lists the active tax-group codes. Must reference an active group valid today.

Tax group fields

FieldRequiredDescription
Code✓Short stable identifier referenced by products, prices, and lines (e.g. HIGH, FOOD, OUTSIDE). Shown as Code.
Name✓Display name shown in the UI (e.g. Standard 25%, Næringsmidler 15%).
DescriptionOptional longer note. Not shown in the VAT rates list.
Rate✓VAT rate as a percentage — 25 for 25 %, 11.11 for 11.11 %, 0 for zero-rated. Shown as Rate (%). A product with this tax group is sold at this rate.
External codeThe ERP / SAF-T tax code (Norwegian MVA-kode such as 3, 33, 6). Shown as VAT code. Free text — each ERP and country differs. Copied onto order lines with the group. On web-fulfillment postings, it becomes the VAT code on OutputVat lines whose order lines carry it, replacing the chart entry's VAT code. POS postings use the chart entry's VAT code, because the Z-report totals VAT by rate only.
Outside VAT scopeMark groups that represent activity outside the VAT system (no VAT applies). Shown as Outside VAT. Validation then does not require an OutputVat account for the group, and does not report its 0 % rate.
Valid from / Valid toInclusive validity window (date only). Used to handle government rate changes — see below.
ActiveInactive groups are not selectable and are ignored when Omnium looks up a group by code, rate, or as the default. A group already stored on an order line is still used by web-fulfillment postings. Turn a group off instead of deleting it. Defaults to on.

Saving the VAT rates

When Tax groups enabled is on, the VAT rates are only valid when:

  • at least one tax group exists, and a default tax group is selected;
  • no rate is negative;
  • no Valid from is after its Valid to;
  • active entries with the same code do not have overlapping validity windows;
  • the default tax group is active and valid today.

Saving with the card's Save button is refused when the change breaks one of these rules. Save and publish saves without checking them; the settings are validated only afterwards, without blocking the save.

Validity windows and rate changes

When a government changes a VAT rate, you do not edit the existing group in place. Instead, introduce a new entry with the same code and the new effective Valid from date, and set the old entry's Valid to to the day before. The group valid on the date of each sale or posting is used, so historical postings keep the rate that was in force when the sale happened and new postings pick up the new rate automatically.

Validity windows for the same code must not overlap — an overlap is ambiguous, and the card's Save refuses it. The Validation tab reports every repeated code as Duplicate tax group code, including a correct rate-change chain; you can ignore that message when the windows do not overlap.

How a line gets its tax group

  • Products and prices — when a product or price is saved, the group comes from the price's own code, then the product's tax group (the Code field), and otherwise the default tax group. A product that has its own Tax rate but no tax group gets no group. The group's code and rate are stored on the price.
  • Carts, and orders placed from a cart — a line keeps the group it already has, and that group's code, external code, and rate are applied to the line. A line with an explicit tax rate but no group stays without a group; any other line gets the default tax group.
  • In-Store app sales — a line keeps the group it already has. A line without one gets the active group with the same rate on the sale date. When several groups share that rate (for example several 0 % groups) or none does, the default tax group is used only if its rate equals the line's rate; otherwise the line has no tax group.
  • Web-fulfillment postings — the line's stored group is used. A line without one gets the active group with the line's rate on the posting date, when exactly one group has that rate; otherwise it gets the default tax group, even when the default's rate differs from the line's.

POS postings are built from the Z-report, which totals sales and VAT by rate without tax groups. Their Sales and OutputVat lines are therefore matched to accounts by rate — see the note in How an account is resolved.

Tax group on a product

When tax groups are enabled, a product's Settings tab shows a Code field in the Tax section — the product's tax group — listing the active tax-group codes. Leave it empty to use the default tax group — unless the product has its own Tax rate, in which case it gets no group; the placeholder names the default (Default tax group: HIGH). Choosing a group also sets the VAT rate the product is sold at.

Presets

Omnium ships starter charts for common markets that you can apply and then adjust. The Insert Norwegian preset, Insert Swedish preset, and Insert Danish preset buttons are shown while the list is empty. You must verify every external code against your own ERP's MVA-kode chart — the presets use commonly-used codes but every ERP differs.

Norway

CodeNameRateExternal code
HIGHStandard 25%253
MIDLav sats 12%1233
FOODNæringsmidler 15%1531
FISHRåfisk 11.11%11.1132
ZEROFritatt for mva (0%)05
EXPORTEksport (0%)052
OUTSIDEUtenfor mva-loven0 (outside scope)6
PANTPant (statsavgift)0 (outside scope)—

PANT represents a bottle/container deposit — a statutory deposit, not VAT — and should be mapped to its own GL account.

Sweden

CodeNameRateExternal code
HIGHStandard 25%25MP1
MIDLivsmedel 12%12MP2
LOWBöcker, transport 6%6MP3
ZEROMomsfri (0%)0MF
EXPORTExport (0%)0EX
EU_B2BEU-försäljning utan moms0EUF
OUTSIDEUtanför momslagen0 (outside scope)—

Denmark

CodeNameRateExternal code
HIGHMoms 25%25U25
ZERONulsats (0%)0U0
EXPORTEksport (0%)0UEX
EU_B2BEU-salg uden moms0UEU
OUTSIDEUden for momsloven0 (outside scope)—

On this page