POS Income / Expense Entries and SII
Income and expense entries are POS-side adjustments that change a transaction's gross amount without representing the sale of an item - typical examples are till float adjustments, petty-cash payouts, and invoice discount payments. The Spain localization treats expense-type income/expense entries specially so that they are not reported to the Spanish tax authority (AEAT) under the SII regime.
In this article
Why expense entries must not be reported to SII
Why expense entries must not be reported to SII
SII is a regime for VAT-bearing sales documents (invoices, credit memos, payments). Income/expense entries with Account Type = Expense represent outflows of cash from the till that are not tied to a customer-facing sales document - reporting them as sales would corrupt the VAT register and trigger AEAT validation errors.
The Spain localization therefore intercepts expense-type income/expense entries and removes any pending SII record that may have been created earlier for the corresponding transaction.
What the localization does
An event subscriber on the LSC Trans. Inc./Exp. Entry table (insert event) runs the following logic:
- Skip if the income/expense record is temporary.
- Skip if the Account Type is not Expense (income entries are left alone).
- Hand the entry off to the localization's POS Transaction Management routine, which locates the parent Transaction Header and removes any pending SII Doc. Upload State and related SII History records for that transaction.
The result is that expense-bearing transactions never appear in SII. If the underlying sale was real and was already inserted into SII as Pending, the expense entry post effectively cancels it.
Note: The exact records removed are determined by the POS Transaction Management routine (not by the handler itself), which lets that logic evolve independently of this hook.
Cashier behavior
No special action is required at the till. Income/expense entries are entered as in standard LS Central:
- The cashier picks an Income or Expense menu function and types the amount.
- On posting, the localization automatically removes any pending SII record if the entry is an expense.
- If the entry is an income, no special handling fires - SII still receives the underlying sale (when applicable).
Note: This logic interacts with both the per-transaction SII mode (Comm. Transact. when Posting) and the statement-based SII mode (SII on Statement Posting). In both modes, the same expense-cancellation rule applies.
Tip: If you observe missing transactions in the AEAT register that you expect to be reported, check whether an income/expense entry of type Expense was posted for the same transaction. The Trans. Inc./Exp. Entry page filters by transaction will surface it.