Source: https://www.revvly.ai/docs/guides/tax

Guide

# Collect tax on invoices, *from your own rates*.

Register where you are liable, publish the rates you charge, describe each client’s tax position, and Revvly adds tax to every invoice when it is issued. Every taxed line is also written to a ledger that the tax report reads.

## Who can use it

- **Flag**: Tax is a workspace feature (TAX) granted by Revvly. Without it there is no Tax tab in Settings, no Tax tab on a client and no Tax tab in Finance. Ask Revvly if you expect it and cannot see it.

- **Who can change things**: Workspace admins. Other members see the Tax pages read-only, and the API refuses their writes. Report exports and the ledger check are admin only as well.

- **Pricing basis**: Tax-exclusive only. Catalog prices are net and tax is added on top of every invoice line. Tax-inclusive pricing is shown in Settings as not available yet.

## Add a registration, then switch tax on

A registration is your own tax number in a country or subdivision. Every rate belongs to one, and tax cannot be switched on until at least one active registration exists.

Where: Settings > Tax > Settings & registrations > Add registration. Fields: Country, Scheme (VAT, GST, Sales tax, Consumption tax or Other), Subdivision (optional), Registration number, Legal name (if different), Effective from, Effective to (optional).

Use ISO codes: a two-letter country and, for a subdivision, a code inside that country such as CA-QC. One registration is primary; its country is the one assumed for a client that has no tax profile. Ending a registration sets an end date and keeps the record, and the rates attached to it stop applying from that date.

Then turn on **Charge tax on invoices** under Tax collection. Turning it off later leaves issued invoices and reports intact.

- **Reverse charge**: Off by default. When on, a business client with a tax ID in its own country, flagged eligible, and in a country where you hold no registration, is invoiced without tax.

- **Show tax IDs on invoices**: On by default. Prints your registration number and the buyer’s tax ID.

- **Legends**: The Reverse-charge legend and the Exempt legend, each up to 500 characters, printed on an invoice that has a line of that treatment.

- **Reporting basis**: Shown as Accrual, with Cash marked not available yet. The tax report itself can still be run on either basis (see section 08).

## Publish rates

Where: Settings > Tax > Rates > New rate. Save a draft, preview it against a client, then Publish.

- **Identity**: Name, Code (shared by every version of the rate), Tax code (the levy, such as VAT or QST) and Invoice label (printed on the invoice, for example VAT 23%).

- **Rate**: Tax type, Treatment and Rate (%), from 0 to 100 with up to four decimals. Zero-rated and Exempt must be 0%; Standard and Reduced must be above 0%.

- **Where**: Country, Subdivision (optional) and the Registration it sits under. The registration must be active when you publish.

- **Effective dates**: From, and To (optional). An invoice uses the rates in force on its invoice date.

- **Stacking**: Sequence (1 to 99) orders the rates on one line. Compound applies the rate to the base plus the taxes with a lower sequence; without it the rate is additive, on the same base as the others. Replaces country rates (subdivision rates only) drops the country-level rates for clients in that subdivision, as with Canadian HST.

- **Applies to**: All items, or Selected tax categories (a comma-separated list). A rate scoped to a line’s category beats an all-items rate for the same levy, which is how a reduced rate sits beside the standard one.

Only published rates are ever used. A published rate is not edited. Choose **New version** to copy it into a draft, set a later start date and publish: the old version is closed at the new start, so earlier invoices keep the old rate. Publish is refused when another published rate of the same levy, place and items overlaps in time. **Archive** retires a rate without deleting it.

## Start from the reference rates

Where: Settings > Tax > Reference data

Revvly maintains an indicative list of rates by country, with the date each was last checked. Tick the layers you want and choose **Import** (the button reads Import N as drafts). Imports are drafts that start today, attached to the registration that covers them, and nothing is live until you publish. A layer is refused if it is already imported, if you have a rate with the same code that did not come from this list, or if no registration of the right scheme covers it. Revvly never changes a rate you own: when the reference data moves on, the page lists the imported rates that now differ so you can publish a new version.

## Describe each client’s tax position

Where: Clients > open a client > Tax. Not shown on a Company that is not yet a client.

The profile holds the billing Country and Subdivision, Business or Consumer, any number of Tax IDs (country, type and number, one per country), an **Exempt from tax** switch with Reason, Certificate reference, Valid from and Valid to, and **Eligible for reverse charge**. Tax IDs are stored as entered and not checked against an external service. An exemption is ignored outside its dates, and the Valid to day counts as valid through its end.

The panel beside the form, **Next invoice will carry**, shows the result and a step list called **How this was worked out**. A profile change applies from the next invoice, and each saved edit is kept in the profile’s history.

## How Revvly decides, line by line

The first matching rule wins: tax off or no registration in force; the client’s jurisdiction (from the profile, otherwise your primary registration’s country); a valid exemption; reverse charge; no registration covering the jurisdiction; then the published rates in force on the invoice date that match the line’s category, one per levy. Tax is rounded half-up to the currency’s minor unit per tax line, never per invoice.

Order of the tax rules

First match wins, top to bottom

1. Tax off, or no registration in forceOut of scope
2. Find the client jurisdictionFrom the profile, otherwise your primary registration country.
3. Valid exemptionExempt
4. Reverse charge appliesReverse charge
5. No registration covers the jurisdictionOut of scope
6. Published rates in force match the lineOne rate per levy. No matching rate means out of scope.StandardReducedZero-ratedExempt

Revvly stops at the first rule that matches a line.

1. 1StandardA rate above 0%. You publish it as a rate with this treatment.
2. 2ReducedA rate above 0% for reduced-rate supplies. Scope it to selected tax categories and it replaces the standard rate for those items instead of adding to it.
3. 3Zero-ratedA rate of exactly 0%. The supply is taxable at nothing, and its taxable base is reported separately from the tax collected.
4. 4ExemptNo tax. Used for a rate of 0% marked exempt, and for every line of a client with a valid exemption. Prints your exempt legend.
5. 5Reverse chargeNo tax. Decided by Revvly, never stored as a rate: the client accounts for the tax. Prints your reverse-charge legend.
6. 6Out of scopeNo tax. Decided by Revvly when tax is off, no registration is in force, you hold no registration covering the client, or no published rate matches.

- **Worked example**: A line of 100.00 with rate A at 5% (sequence 1) and rate B at 10% (sequence 2). If B is additive, tax is 5.00 and 10.00, total 15.00, gross 115.00. If B is compound, it takes 105.00 as its base: 5.00 and 10.50, total 15.50, gross 115.50. A single 9.975% rate on 100.00 is 9.975 before rounding and 9.98 on the invoice.

Net plus tax equals gross

- Net line100.00
- Rate A tax (5%)5.00
- Rate B tax (10%, additive)10.00
- Total115.00

Lines stay net; each tax is added on top, so the gross is the receivable.

## On invoices, credit notes and receivables

- **Drafts**: A held draft is stored untaxed. Tax is worked out when it moves from draft to issued, on the lines as they stand then. Until then the invoice page shows **Estimated tax** for the draft, at today’s rates, and writes nothing. Creating an invoice by hand is taxed too; an imported invoice is a record of a document issued elsewhere and is left as it was.

- **Invoice and PDF**: Lines stay net. The totals show the subtotal, one row per tax (label, the base it applied to, the amount) and the gross total. Under the total the PDF prints your registration number, the client’s tax ID (when Show tax IDs is on) and any legend.

- **Credit notes**: A credit note against a taxed invoice reverses the tax in proportion to the net credited, never more than was charged. The credit that uses up a line absorbs the rounding remainder. See [Credit notes](https://www.revvly.ai/docs/guides/credit-notes).

- **Receivables**: Receivables are gross, tax included. Once any receivable carries tax, Finance offers a **Gross**, **Net** and **Tax only** switch over the cards, which also show a Net and Tax line.

## The tax report

Where: Finance > Tax

Pick a Period (This month, This quarter, This year or Custom From and To), Group by (Jurisdiction, Tax code or Month) and Basis. Totals are one per currency with no conversion: taxable base, tax charged, tax credited and the net tax.

- **Accrual (invoice date)**: Tax counts when an invoice is issued. Credit notes reduce it when they are issued.

- **Cash (as paid)**: Tax counts as payments arrive, in proportion to each payment and after credit notes. An unpaid invoice reports nothing. There is no write-off flow, so a bad debt is not relieved, and payments in a currency other than the invoice’s are skipped.

- **Supplies without tax**: The taxable base of zero-rated, exempt, reverse-charge and out-of-scope supplies, kept apart because returns ask for it separately.

- **Drill-down**: Select a row to list the ledger rows behind it, marked Charge or Credit.

- **Export**: **Export CSV** and **Export Excel**, admins only. Both lead with your registration numbers, the period and the basis, then the grouped rows.

## The ledger, for your auditor

- Each taxed line writes one ledger row per tax, and credit notes write negative rows. Rows are append-only: they are never edited, so a later rate change cannot rewrite what a past invoice charged.
- Exempt, reverse-charge and out-of-scope lines still write a row with a tax amount of 0, so their taxable value is reportable. Zero-net lines write nothing.
- A nightly check compares each taxed invoice from the last 35 days with its ledger rows. An invoice with no rows at all is rebuilt from its own tax breakdown. Rows that exist but disagree are never rewritten; they raise an alert, and the Tax report shows a red **mismatches** badge to admins, or **Reconciled · 0 mismatches** when the ledger agrees.

Revvly applies the rates you publish. Reference rates are a starting point, and you are responsible for the rates you publish.

