TaxPointDate — Fiscal & Stock Movement Date
What is TaxPointDate?
taxPointDate serves a dual purpose: it is the VAT tax point and the effective date of the stock movement for a line.
- As the VAT tax point it marks the moment the tax obligation arises — that is, when goods are placed at the buyer's disposal or the service is performed. As a general rule, VAT becomes chargeable at that same moment, though it may be brought forward depending on the applicable invoicing rules. This is a legally significant date for fiscal reporting purposes, making it relevant for all fiscal document types regardless of whether stock management is enabled.
- As the stock movement date it answers the question: "On what date did this item physically enter or leave stock?" — driving stock history (
ItemStockOrders), cost price calculations and available-quantity queries wheneverXConfig.OnlineStockis active.
In practice these two concepts align: the date the goods moved is the date the tax obligation arises.
By default taxPointDate follows the document date. It can be set independently per line when the stock movement occurred on a different date — for example when backdating a document or correcting a previous entry.
Field location
taxPointDate is a per-line field sent inside each entry of the items[] array:
{
"documentTypeId": 5,
"items": [
{
"itemKeyId": "ITEM001",
"quantity": 2,
"taxId": 1,
"taxPointDate": "2026-06-10T14:30:00Z"
}
]
}
Each line can carry a different taxPointDate. This is intentional — in a single document, different items may have moved stock on different dates.
Default behaviour when omitted
When taxPointDate is not provided for a line, the system resolves a default automatically:
| Scenario | Resulting taxPointDate |
|---|---|
documentDate provided, past or today | Follows documentDate — stock moves on that date |
documentDate not provided | Current instant (UtcNow) |
documentDate is a future date | Capped at current instant (UtcNow) — stock movement is never placed in the future automatically |
The system never assigns a future taxPointDate automatically. If the document date is in the future and no taxPointDate is provided, the field defaults to the current moment.
If you explicitly send a future taxPointDate, it will be respected — but be aware that this means stock movements will be recorded with a future date, which may affect stock availability reports and cost calculations.
Effect on stock
taxPointDate is the temporal key for all stock logic. It affects three areas:
1. ItemStockOrders — historical record
Every stock movement is recorded in ItemStockOrders with the taxPointDate as its timestamp. This is the field that orders the movement history chronologically.
2. LastEntrance / LastExit in ItemStock
After a stock movement is applied, the system updates LastEntrance (for inbound) or LastExit (for outbound) only if the taxPointDate of the new movement is equal to or more recent than the date already recorded.
This means a backdated movement does not overwrite a more recent LastEntrance/LastExit, even though the quantity change is always applied regardless of date.
3. AverageCostPrice
The weighted average cost price is recalculated on every inbound movement. When a movement is backdated and does not update LastEntrance, the cost price update follows the same guard — only the most recent movement's cost price is kept as the current reference.
Composite items
For items that have components (composites), the taxPointDate of the parent line is automatically inherited by all child component lines. You do not need to set taxPointDate on child lines — the system propagates the parent value.
Document conversions
When creating a document from another document — for example a credit note or a debit note referencing an original sale — the API automatically anchors the taxPointDate of each converted line to the original line's movement date.
This ensures that stock history remains consistent.
Priority order (highest to lowest):
taxPointDateset explicitly in the payload for the line — always respected.taxPointDateof the referenced origin body (originBodyGuid) — used when no explicit value is provided.UtcNow— fallback for lines without a reference.
So if you need to override the anchored date for a specific converted line, simply send the desired taxPointDate on that line and it will take precedence.
Relationship with documentDate
| Field | Purpose | Affects stock? |
|---|---|---|
documentDate | Legal/fiscal emission date of the document | ❌ No direct effect |
taxPointDate (per line) | Effective date of the stock movement | ✅ Yes — all stock logic |
Both can coexist independently:
{
"documentDate": "2026-06-01T00:00:00Z",
"items": [
{
"itemKeyId": "ITEM001",
"quantity": 1,
"taxId": 1,
"taxPointDate": "2026-05-28T10:00:00Z"
}
]
}
In this example the invoice is legally dated June 1st, but the stock movement is recorded on May 28th.
Stock is only updated when onlineStock is enabled
taxPointDate has no effect on ItemStock or ItemStockOrders unless XConfig.OnlineStock is enabled for the database. When disabled, the field is still persisted on the document line but no stock update is performed.
Timezone
All dates in the API — including taxPointDate — are sent and received in UTC. The system transparently converts them to the timezone specified in the X-TimeZone request header before persisting, so values stored in the database are in the caller's local timezone, not UTC.
Summary
| Aspect | Behaviour |
|---|---|
| Per-line field | ✅ Each line can have a different date |
| Optional | ✅ Defaults to document date or UtcNow if omitted |
| Future dates | ⚠️ Allowed if sent explicitly; never assigned automatically |
| Backdating | ✅ Supported — quantity change always applied; LastEntrance/LastExit only updated if newer |
| Composite children | ✅ Inherit from parent automatically |
| Conversion from other documents | ✅ Automatically anchored to origin line's movement date (overridable per line) |
| Stock effect | Only when XConfig.OnlineStock = true |
| Format | ISO 8601 UTC (2026-06-10T14:30:00Z) |
Related
- Usage Guide — general data model and endpoint reference
- Invoices Guide — FT / FS
- Transport Guides — GT / GR / GA / GC / GD
- Invoice API Errors — error codes
Last Updated: June 25, 2026