> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flipapp.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Tax schemes

> Define organisation tax schemes, maintain dated rate history, and understand how changes affect territory defaults and product supply prices.

export const PageUpdated = ({date}) => <p className="mt-8 border-t border-gray-200 pt-4 text-sm text-gray-500 dark:border-gray-800 dark:text-gray-400">
    Last updated on {date}
  </p>;

<PageUpdated date="19 June 2026" />

Tax schemes let you define the taxes your organisation uses — such as GST or VAT
— in one place, including **dated rate changes** when legislation updates a
percentage. Territory supply defaults reference a scheme; when you activate a
product for a territory, Flip seeds supply prices that link to that scheme and
derive their tax fields from it.

## Where to find tax schemes

Open **Organisation settings** and go to **Finance → Tax schemes**.

The list shows each scheme's name, tax type, current effective rate, status, and how many dated rate rows it has. Use the search box to filter by name, description, or ID.

## What a tax scheme contains

Each tax scheme is an organisation-level record for one tax instrument (for example, "Australia GST").

| Field           | Purpose                                                                                                                                                |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Scheme name** | Unique label within your organisation. Required.                                                                                                       |
| **Description** | Optional admin notes.                                                                                                                                  |
| **Tax type**    | The kind of tax for the whole scheme, using [ONIX List 171](https://ns.editeur.org/onix/en/171) (for example, VAT, GST, or local sales tax). Required. |
| **Active**      | Whether the scheme is available for new configuration. Inactive schemes remain on existing records.                                                    |
| **Tax rates**   | One or more dated rate rows (see below). At least one rate is required when you create or save a scheme.                                               |

### Dated rate rows

Each rate row defines how much tax applies during a date range:

| Field          | Purpose                                                                                                     |
| -------------- | ----------------------------------------------------------------------------------------------------------- |
| **Valid from** | Inclusive start date for this rate. Required.                                                               |
| **Valid to**   | Inclusive end date. Leave blank for an open-ended rate.                                                     |
| **Rate code**  | [ONIX List 62](https://ns.editeur.org/onix/en/62) code (for example, standard, zero-rated, or higher rate). |
| **Percent**    | Tax percentage (for example, `10` for 10%).                                                                 |

Date ranges within a scheme **must not overlap**. If you try to save overlapping ranges, Flip shows a validation error.

<Note>
  Tax type is set once on the scheme, not on each rate row. A scheme represents
  one tax instrument; rate rows only change **how much** is charged over time.
</Note>

## Create a tax scheme

<Steps>
  <Step title="Open the add dialog">
    On the Tax schemes page, click **Add tax scheme**.
  </Step>

  <Step title="Enter scheme details">
    Provide a **Scheme name**, optional **Description**, and select a **Tax
    type**. Leave **Active** on unless you are preparing a scheme you do not
    want used yet.
  </Step>

  <Step title="Add at least one rate row">
    In the **Tax rates** table, set **Valid from**, optional **Valid to**,
    **Rate code**, and **Percent**. Click **Add rate** if you need multiple
    non-overlapping periods (for example, 10% until a legislative change, then
    15%).
  </Step>

  <Step title="Save">
    Click **Create**. The new scheme appears in the list with its current
    effective rate.
  </Step>
</Steps>

## Edit a tax scheme

Click the row actions menu on a scheme and choose **Edit**. You can update the name, description, tax type, active flag, and rate rows.

When you save rate changes, Flip inserts, updates, or removes rate rows as needed. Existing rate rows keep their IDs when you edit them in place.

<Warning>
  Changing **Tax type** on a scheme does not rewrite tax lines already stored on
  product supply prices. ONIX export resolves tax type from the scheme at export
  time.
</Warning>

## Delete a tax scheme

You can delete a scheme only when nothing else references it. Flip hides **Delete** when the scheme is in use on:

* **Territories** — as a default tax scheme
* **Territory markets** — as a default tax scheme override
* **Product supply price taxes** — on activated product territory supply prices

If delete is unavailable, reassign or remove those references first, or deactivate the scheme instead of deleting it.

## How tax schemes connect to the rest of Flip

Tax schemes sit at the top of a chain that flows into product pricing:

```mermaid theme={null}
flowchart TD
  A[Tax scheme] --> B[Dated rate rows]
  C[Territory defaults] -->|default tax scheme| A
  D[Product territory activation] --> E[Product supply]
  E --> F[Supply price]
  F --> G[Supply price tax line]
  G -->|tax scheme link| A
  B -->|effective rate for date| G
```

### Territory supply defaults

Territories (and optional territory market overrides) can set a **default tax scheme**. When you activate a product for a territory, Flip requires a default warehouse and default tax scheme to be configured. Activation then seeds:

1. A **product supply** row (warehouse from defaults)
2. A **supply price** row (amount left for you to fill in)
3. A **supply price tax** row linked to the default tax scheme

The tax percentage and rate code on that line are **materialized** from the scheme's effective rate for the price's "as of" date — not looked up live on every screen load.

### "As of" date for rates

Flip picks the effective rate row using the supply price's **Valid from** date when set; otherwise it uses today's date.

Example: a price with **Valid from** `2026-10-01` uses the rate effective on that date (for example, 15% GST), even if you view it earlier in the year.

## Impact when you change tax schemes

Understanding what updates automatically helps you plan legislative rate changes and territory setup.

| Change                                               | Effect on existing product supply tax lines                                                     |
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| Add a new future rate row (future **Valid from**)    | No change until the supply price's **Valid from** crosses that date, or the price is recomputed |
| Edit an existing rate row's dates or percentage      | No immediate change — values refresh on the next recompute for affected prices                  |
| Change **Tax type** on the scheme                    | No change on stored tax lines; resolved from the scheme at ONIX export                          |
| Change a territory's **default tax scheme**          | **No** change on products already activated — only affects **new** activations                  |
| User edits supply **price amount** or **Valid from** | Recompute runs; rate and totals refresh for the new "as of" date                                |

<Info>
  There is no automatic mass-update when you edit master rate data. Existing
  supply prices keep their last materialized rate until something triggers a
  recompute (such as editing the price or its valid-from date).
</Info>

### Worked example: GST 10% → 15%

Suppose you maintain "Australia GST" with:

* `2000-01-01` to `2026-09-30` at **10%** (standard rate)
* `2026-10-01` onward at **15%** (standard rate, open-ended)

**Product activated in September 2026** — supply price has no **Valid from** → today's rate (**10%**) is materialized.

**Price scheduled from October 2026** — you set **Valid from** to `2026-10-01` on the supply price → recompute materializes **15%**.

**Existing October prices after you add the new rate row** — they do not update by themselves. Users editing those prices, or a bulk refresh operation run by your team, rematerializes rates for the correct date.

## Recommended setup order

<Steps>
  <Step title="Create tax schemes">
    Add one scheme per tax instrument (for example, "Australia GST", "UK VAT")
    with the correct tax type.
  </Step>

  <Step title="Add dated rate rows">
    Enter at least one non-overlapping rate period per scheme. Add future rows
    before legislative effective dates when you know them.
  </Step>

  <Step title="Configure territory defaults">
    On each territory (and territory market overrides where needed), set the
    default tax scheme along with warehouse, currency, and other supply
    defaults.
  </Step>

  <Step title="Activate product territories">
    When you activate a product territory, supply and tax lines seed
    automatically from those defaults.
  </Step>

  <Step title="Plan rate changes">
    When a rate changes in law, add a new dated rate row. Expect existing supply
    prices to pick up the new rate only when their valid-from date or a
    recompute aligns with the change.
  </Step>
</Steps>

## Related ONIX codelists

Flip uses standard ONIX codes so tax data exports correctly:

* [ONIX List 171 — Tax type](https://ns.editeur.org/onix/en/171) — scheme-level tax type (VAT, GST, and so on)
* [ONIX List 62 — Tax rate code](https://ns.editeur.org/onix/en/62) — per-rate code (standard, zero-rated, higher rate, and so on)
