VAT calculation and rounding
How faktoora calculates VAT and handles rounding differences
Correct calculation of VAT is crucial for accounting. faktoora calculates the tax automatically, and there are ways to balance rounding differences.
How is VAT calculated?
faktoora calculates VAT according to German regulations:
For each invoice line item:
- Net amount = quantity × unit price
- Tax amount = net amount × tax rate
- Gross amount = net amount + tax amount
For the invoice as a whole:
- Sum of all net line items
- Sum of all taxes per tax rate
- Total amount = total net + total tax
Example
- Line item 1: 100 EUR net × 19 % = 19 EUR tax
- Line item 2: 200 EUR net × 7 % = 14 EUR tax
- Total net: 300 EUR
- Total tax: 33 EUR
- Total gross: 333 EUR
Rounding rules
Under German invoicing law, VAT is rounded to the nearest whole cent:
- If 19.456 EUR is calculated → rounded to 19.46 EUR
- If 19.454 EUR is calculated → rounded to 19.45 EUR
Each line item is rounded individually, then the totals are added up.
Rounding differences: why they occur
Rounding differences occur when:
- The net amount has decimal places that lead to deviations after multiplication by the tax rate and rounding
- Several line items with different tax rates are combined
- The invoice issuer uses a different system with different rounding rules
Example:
- System A: 99.99 EUR net, 19 % tax = 18.9981 EUR rounded to 18.99 EUR
- System B: same input, but different rounding logic = 19.00 EUR
- Difference: 1 cent
This difference is small, but it must be documented in an audit-proof way when authorities audit invoices.
Rounding differences in drafts
If you save an invoice as a draft:
- The calculation may change slightly when you open it again
- This is because intermediate calculations may be rounded differently in draft mode
- This is not a problem, because the draft has not been sent yet
Solution: Check the amounts before sending if you leave a draft for a longer time. If the rounding has changed, correct it manually (see below).
Why VAT is shown on two lines
In the PDF output or in the invoice view, you sometimes see VAT on several lines:
19% VAT: 190.00 EUR
7% VAT: 35.00 EUR
─────────────────
Total tax: 225.00 EUR
This is normal and is done this way because:
- Different tax rates (19 %, 7 %, 0 %, etc.) must be shown separately
- Authorities and the tax office need this breakdown per tax rate
- The recipient's accounting systems must be able to book each type of tax separately
Under EN 16931 (XRechnung, ZUGFeRD), this breakdown is mandatory.
Correcting rounding differences: the "roundingAmount" field
If your invoicing system shows a rounding difference that you need to balance (e.g. 1 cent more or less):
faktoora offers the roundingAmount field to reconcile such differences (according to EN 16931, field BT-114).
How it works:
- Calculate the difference between your system and faktoora.
- Enter the balancing amount in the
roundingAmountfield. - This amount is added to the sum of the taxes (not deducted from the net amount).
Example:
- Your system says: total tax should be 225.01 EUR
- faktoora shows: 225.00 EUR
- Difference: +0.01 EUR
- Entry:
roundingAmount: 0.01 - Result: total tax becomes 225.01 EUR
This is audit-proof and is output correctly in the XRechnung and ZUGFeRD.
In the API: using roundingAmount
If you create invoices via the API, you can pass the roundingAmount parameter:
{
"issueDate": "20240101",
"dueDate": "20240115",
"invoiceItems": [ ... ],
"roundingAmount": 0.01
}
This resolves rounding differences between your source system and faktoora.
Balancing differences between systems
If your old accounting software or another system calculated different rounding amounts:
- Export the invoice from your old software and note down the totals.
- Create the same invoice in faktoora and compare the totals.
- If there are differences: use
roundingAmountto balance them. - Document the correction in the invoice notes so that accounting can understand it later.
This is particularly important when migrating invoices or switching to faktoora.
Tax categories and rates
In faktoora, you can define different VAT rates per line item:
- Standard rate (19 %)
- Reduced rate (7 %)
- Rates for intra-community supplies (0 % / reverse charge)
- Rates for services brokered abroad
Each line item is assigned a tax rate; faktoora then calculates the tax separately and shows it separately.
You can find more information under VAT settings.
Validation of electronic invoices
If you send an invoice as an XRechnung or ZUGFeRD, faktoora validates the calculation:
- All tax amounts are checked
- The totals are verified
- If errors are detected, validation fails
You can enforce validation when creating the invoice with the validate: true parameter.
This ensures that the invoice is not rejected by the recipient because of calculation errors.
Was this helpful?