−%
DiscountBundle
Plugin for Kimai

Per-invoice discounts for Kimai

Decide the discount when you invoice.

Add fixed or percentage discounts to a single Kimai invoice, right on the “Create invoice” page. Subtotal, tax and total are calculated from the discounted amount — on the invoice, in the PDF, in the payment QR code and in the invoice history.

Free to use for 3 discounts per month. Requires Kimai 2.71 or newer.

Discount lines
Fixed amount · Percent
Calculation
Net amount, before tax
One-time use
Preview is free, saving uses it
Invoice
Northwind Studio GmbH
Implementation of the new website
Fixed price
€600.00
Workshop and content consulting
4 h × €100.00
€400.00
Loyalty discount
10 % of €1,000.00
−€100.00
Credit for delayed delivery
Fixed amount
−€100.00
Net amount€800.00
VAT 21 %€168.00
Total
€1,210.00 €968.00

What it does

A discount that belongs to one invoice — not to a customer or a template.

You see the invoice amount first, then decide. Time entries, rates and budgets stay untouched.

🧾

Multiple discount lines

Up to 10 lines per invoice, each with its own description and either a fixed net amount or a percentage.

⚡

Entered where you invoice

Click “+ Discount” next to the customer on the “Create invoice” page. The total price column updates immediately.

✅

Correct totals everywhere

The discount is part of the invoice lines, subtotal, taxes and total stored in Kimai — and of the PDF, the payment QR code and the XLSX export.

🔒

Used exactly once

Preview as often as you like. Saving the invoice uses the discount — also with two open tabs, a double click or a resubmitted form.

📌

Immutable snapshot

Every saved invoice keeps a snapshot of its discounts and calculation, so historical invoices never change.

📊

Report with discounts

“Invoiced (with discounts)” sums saved invoices by customer and month: net before discount, discount, tax and total. License

Calculation

One clear rule: one after another, on the remaining net amount.

  • Each line is applied in order to what is left after the previous one; taxes are calculated afterwards.
  • Calculated in whole cents, percentages rounded half-up. The discount lines always add up exactly.
  • Without a discount, the plugin calculates exactly like Kimai’s own calculator.
Net amount Discount lines Result (net)
€1,000.00 −10 %, then −€100.00 €800.00
€1,000.00 −€100.00, then −10 % €810.00
€1,000.00 −10 %, then −10 % €810.00
€800.00 net + VAT 21 % (€168.00) €968.00

Create invoice

Discount editor next to the customer

Kimai Create invoice page with the discount editor open for one customer

Add lines, choose percent or fixed amount and click “Use”. Invalid input is shown in the editor and nothing is saved.

Total price

See the discounted total before saving

Customer row showing the discounted total and the original amount

The server calculates the total exactly like the preview: discounted amount with tax in bold, the original amount below.

Invoice document

Your templates just work

Invoice PDF with two discount lines and recalculated subtotal, tax and total

Discounts are regular invoice lines with a negative amount. Kimai’s built-in documents need no changes; custom templates get extra variables such as invoice.discount_total.

Reporting

Invoiced amounts with discounts

Report Invoiced (with discounts) grouped by customer with totals per currency

Filter by period, customer and status, group by customer and/or month, totals per currency and XLSX export.

Pricing

Start free. License when you need more.

Free
0 €
  • ✓3 discounts per month per Kimai installation
  • ✓All invoice features: editor, PDF, QR code, snapshots, history
  • –Report “Invoiced (with discounts)”
Download free
License
49 € / year
  • ✓Unlimited discounts
  • ✓Report “Invoiced (with discounts)” and its XLSX export
  • ✓One production and one test installation
Buy on Lemon Squeezy

Activate the key in Kimai under System → DiscountBundle license. The license is verified at most once every 7 days (only the key, the activation ID and the Kimai domain are sent) and stays valid for 30 days if the server is unreachable. When it ends, the plugin falls back to the free version — existing invoices and their discounts stay unchanged.

Quick start

Install, pick a calculator, discount your next invoice.

  1. 1Unzip the plugin into var/plugins/ so that var/plugins/DiscountBundle/ exists, then run the commands on the right.
  2. 2In Invoices → Invoice template, set the grouping of invoice lines to “Default + discount” or “Project + discount”.
  3. 3On Invoices → Create invoice, click “+ Discount”, add your lines and save the invoice.
Install commands
unzip DiscountBundle.zip -d var/plugins/
bin/console kimai:reload
bin/console kimai:bundle:discount:install

Run as the web server user (e.g. www-data). Works in Docker with kimai/kimai2.

Kimai 2.71 or newer (tested with 2.71.0)
MySQL / MariaDB, like Kimai itself
Currencies with two decimal places (EUR, CZK, USD …)
Interface in English and Czech

FAQ

Good to know

Do I have to change my invoice template?+

No. Discount lines are part of entries, and invoice.subtotal, invoice.tax_rows, invoice.total and invoice.total_plain already include them. Only custom documents that add up totals on their own need an update — and the discount must never be subtracted again in Twig.

Does it change time entries, rates or budgets?+

No. Worked time, rates, internal rates and budgets stay as they are. That is also why Kimai’s time-entry based reports don’t include the discount — the invoice history, its export and the plugin’s own report do.

What happens when I select a discount with another calculator?+

Kimai rejects the preview and saving with a clear message. A discount is never ignored silently.

Can I uninstall it later?+

Yes. Switch your invoice templates back to Kimai’s calculators and disable the plugin. Saved invoices, their amounts, PDFs and snapshots stay unchanged; the plugin never deletes data automatically.

Ready to use

Give the discount on the invoice, not around it.

Download the free version and try it on your next invoice. Upgrade any time for unlimited discounts and the report.