TaxCalculation
Updated
A tax calculation is the posted tax of one source document. Users do not New this list as the main path. Sales and purchasing spawn it when an invoice or receipt posts. Credit notes spawn a reversal that nets the same codes.
| Kind | Document |
| Module | Tax |
| Menu | Tax → Documents → Tax calculations |
| Lines | Table part TaxCalculationLines |
| Movements | Posting script on Finalized |
Fields#
| Field | Caption | Points at |
|---|---|---|
ID |
Number | number sequence |
LegalEntity |
Legal entity | LegalEntity, required |
Currency |
Currency | required |
TaxPointDate |
Tax point date | date and time, required |
DeterminationReason |
Determination reason | string, 1024 |
MatchedRule |
Matched rule | TaxRule |
RegistrationNumber |
Registration number | string, 64 |
LegalEntity, Currency, and TaxPointDate are required. ID comes from TaxCalculationSeq, which starts at 1000 and steps by 1. Empty Matched rule means the code came from a mapping, the seller country's one standard code, or TaxSettings. Registration number is stamped from TaxRegistration on the tax-point date, falling back to the legal entity's print number.
The rate is resolved on Tax point date, not today. A backdated calculation uses that period's rate.
Table parts#
Lines are TaxCalculationLines, caption Lines.
| Field | Caption | Points at |
|---|---|---|
TaxCode |
Tax code | TaxCode, required |
TaxCategory |
Category | TaxCategory |
TaxRate |
Rate ref | TaxRate |
TaxBase |
Tax base | money, required |
RateValue |
Rate | decimal, precision 9, scale 6, required |
TaxAmount |
Tax amount | money, required |
Direction |
Direction | TaxDirection, required |
RecoverableAmount |
Recoverable amount | money |
RateOverridden |
Rate overridden | boolean |
ExemptionReason |
Exemption reason | TaxExemptionReason |
Rate on the line is the fraction used. Rate ref is the history row, when one was stamped. Empty Rate overridden means posting checks that Rate equals the live history on Tax point date.
Commands and states#
The usual path does not press a button on this card. ITaxCalculationLifecycle in sales and purchasing creates the document, moves it to Finalized, and withdraws it to Draft when the source is cancelled. Deleting the source deletes the calculation. A filed tax period refuses that withdraw.
| State | Read-only | What it means |
|---|---|---|
| Draft | no | Not yet in the tax ledger. |
| Finalized | yes | TaxLedger and GL movements are written. |
Draft is the initial state. Declared transition: Draft to Finalized.
Metadata also binds Finalize tax calculation (FinalizeTaxCalculation) to Draft. That is not the main path. Do not New a calculation to tax an invoice.
Posting refuses a document with no lines, a line whose code has no rate on Tax point date, a line whose Rate is not the live rate unless Rate overridden is on, and a Tax amount that does not match base × rate.
New on this list does not tax an invoice. There is no command on the sales realization that opens this card. Filing and payment live on TaxReturn and TaxPayment, not this document.
Registers#
On Finalized:
- TaxLedger per line: tax code, direction, legal entity; resources TaxBase, TaxAmount, RecoverableAmount (
TaxLedgerTx). - GL when Legal entity is set and accounting settings exist (
TaxCalculationGLTx), on booksFIN,TAX:- OUTPUT: debit receivables, credit VAT payable.
- INPUT: debit VAT recoverable, credit payables, for Recoverable amount.
- REVERSE_CHARGE treatment: debit VAT recoverable, credit VAT payable. Receivables and payables are not touched.
A missing account writes no ledger legs; the tax ledger still moves. Negative amounts (a credit note) swap the GL sides.