Enlivy

Taxes

Stop picking VAT rates by hand. Assign a tax class to a product or invoice line and Enlivy resolves the correct rate automatically, based on who the customer is and where they are, with the right EU codes for e-invoicing built in.

Start Today
Taxes

THE ENLIVY TAX ENGINE

Every Sale, Taxed Correctly, Automatically

Assign a Tax Class. Enlivy resolves the right rate automatically, based on who the customer is and where they are.

Taxes no longer mean just adding a percentage to an invoice. The customer's country, business status, VAT number, EU rules, reverse charge, and e-invoice requirements can completely change the treatment of the same sale.

A Tax Class is a semantic product category, the way Stripe models product tax codes: Books, Foodstuffs, Digital services, Exempt. You tag a product with the category it is, never a percentage by hand. Underneath each class sits a set of tax rates, one row per country or selling scenario, and at invoice time Enlivy resolves the single applicable rate by the buyer's country and tax status, taking the highest-priority match.

  • Sync tax classes from Stripe automatically, de-duplicated, with no re-entry
  • Set rates inclusive or exclusive, per class
  • Preview which rate applies to any customer before you send, with Simulate Mapping
  • Full audit trail on every change, even on synced classes
  • One label, the right rate every time

    Assign a Tax Class to a product, a proposal line, or an invoice line. Enlivy resolves the correct rate from who the customer is and where they sit: consumer or business, EU VAT registered or not.

  • Build your own rate set

    Create a class per product category (goods, books, digital services), then add the rate rows underneath: one per country, a 0% EU B2B reverse charge, and a rest-of-world catch-all, each with its own priority in the resolution ladder.

  • Compliant e-invoicing, built in

    Assign EU VAT category codes and VATEX exemption reason codes, so your e-invoices carry the machine-readable data government platforms require, not just a number and a percent.

  • Proven at scale

    The same engine runs Enlivy's own subscription billing across 27 EU countries, and managed classes synced from Stripe stay linked per rate for ongoing consistency.

Everything You Need to Stay Tax-Correct

From automatic rate selection to PEPPOL e-invoicing, every capability you need is built in and working today.

  • Rate Selection

    Enlivy filters and ranks all rates in a class against the customer's country, region, business status, and VAT registration, and applies the highest-priority match. No manual picking.

  • EU B2B Reverse Charge

    Configure a 0% rate for VAT-registered EU businesses, with the correct AE category code and VATEX-EU-AE reason. Enlivy applies it automatically to qualifying customers; the e-invoice passes compliance checks.

  • Catch-All Safety Net

    A Tax Rate with no location set covers every sale that doesn't match a specific country. Without one, uncovered sales go out with no tax, silently. The simulator warns you when this is the case.

  • Tax Resolved at Billing Time

    Tax is determined when each invoice is generated, not when the quote was signed. VAT changes mid-contract, and customer status changes, flow onto the next invoice automatically.

  • PEPPOL & e-Invoicing Ready

    Enlivy produces structured e-invoices with per-line VAT categories (S, AE, Z, E, O), a grouped VAT breakdown block, and party VAT numbers, exactly as Romania's eFactura and PEPPOL require.

  • Inclusive & Exclusive Pricing

    Mark a rate or product as tax-inclusive and Enlivy extracts the VAT from the price. The customer pays the listed amount; the invoice breakdown is still complete and correct.

  • Country, Region & Postal Targeting

    Location targeting works for any country down to region and postal code level. A single rate can cover multiple countries, or zero, to act as a global catch-all.

  • Multilingual

    Tax Class names, descriptions, EU VAT category codes, and exemption code labels are stored and displayed in multiple languages.

THE ENLIVY ADVANTAGE

Stop Juggling Rules. Use One System.

CapabilityEnlivy TaxesManual / Spreadsheet Approach
Rate selectionAutomatic by country, business status, and VAT registrationManual pick per invoice line, error-prone
EU B2B reverse chargeConfigured once, applied automatically with correct codesRemembered per invoice, often missed or miscoded
VAT rate changes mid-contractEach invoice resolves at generation time, always currentFrozen at the rate when the contract was created
PEPPOL / e-invoicing complianceEU VAT category codes plus VATEX reason codes on every lineNo structured output, rejected by government platforms
Inclusive pricingPer-product flag, Enlivy extracts VATManual calculation each time, rounding errors accumulate
Multi-country coverageOne Tax Class covers all countries with a catch-allSeparate lookup or spreadsheet column per country
Stripe tax syncAuto-imported from Stripe, de-duplicated, taggedRe-entered by hand, duplicates accumulate
Exempt invoicesRequires a valid VATEX reason code, audit-proof by default"Exempt" typed as text, rejected by e-invoicing platforms

Get Started in Minutes

Everything you need to configure tax, from scratch to fully covered.

  1. Create a Tax Class

    Add Tax Class. Give it a name (what you’ll see in dropdowns), an optional display name for invoices (e.g. VAT, GST), and an optional description. The class is ready to hold Tax Rates.

  2. Add Tax Rates

    Add a Tax Rate. Set the percentage, who it applies to, and whether it’s location-based. Assign a priority so Enlivy knows which rate wins when multiple match.

Work Seamlessly With Your Enlivy Workspace

Tax doesn’t live in isolation. The same Tax Class configuration powers every step of the commerce workflow; from first quote to final government e-invoice.

  • Products

    Assign a default Tax Class and a "price is tax inclusive" flag to every product. It travels with the product to any invoice or proposal line.

  • Proposals & Offers

    Offer lines carry the Tax Class, not a frozen rate. The rate is resolved at billing time, so changes between quote and invoice are always reflected correctly.

  • Billing Schedules

    Recurring plans resolve tax at each invoice's generation time. Month 7 of a 12-month plan uses the current rate, not the one from when the contract started.

  • Invoices & Receipts

    Tax is stored at two levels, per line item (full detail) and per invoice (grouped summary for PEPPOL). Both are automatically kept in sync.

  • Stripe

    Tax rates sync from Stripe automatically. Content-hash de-duplication prevents copies on repeated syncs. Stripe-sourced classes are labeled for easy identification.

  • Network Exchanges (eFactura)

    Enlivy generates PEPPOL-compliant structured e-invoices with per-line VAT categories, VAT breakdown blocks, and party VAT numbers, ready for Romania's eFactura and any EU government platform.

API Reference

Tax Management from the API

Enlivy models tax the way Stripe models product tax codes, not one class per country. A tax class is a semantic product category (Standard goods & services, Books, Foodstuffs, Digital services, Exempt), and you tag each product with the category it is, never a percentage by hand. Underneath each class sits a set of tax rates, one per country or selling scenario, and at invoice time Enlivy resolves the single applicable rate from the buyer's country and tax status, taking the highest-priority match.

The examples below cover both layers: the class (the category) and the rates (the country rows that resolve underneath it).

List your product-tax categories. Include tax_rates_overview for a summary of the rate set resolving under each class.

GET/organizations/{organizationId}/tax-classes
const organizationId = "your_org_id";
const token = "YOUR_TOKEN_HERE";

fetch(
  `https://api.enlivy.com/organizations/${organizationId}/tax-classes` +
    // filters: name, description, ids
    `?page=1&limit=20` +
    // include tax_rates_overview for a per-class summary of the rate set
    `&include=tax_rates_overview`,
  {
    method: "GET",
    headers: {
      Authorization: `Bearer ${token}`,
      "Content-Type": "application/json"
    }
  }
);