The point-of-sale till, from start to finish
The Te Lo Llevo POS is the system merchants use to sell over the counter: it opens shift sessions, records sales with modifiers and discounts, manages the cash drawer, issues receipts with a fiscal sequence number and produces end-of-day reports. This chapter documents all its functions in detail.
The same merchant who accepts online orders through the customer app can also sell in the shop with the POS. Both channels share a catalogue, VAT codes and stock control — so when a sale is made over the counter, the online inventory updates automatically.
Terminals & sessions
Each physical till or checkout point at a merchant is registered as a terminal in the system. A merchant can have several active terminals (for example, a main till and a terrace till). The terminal is the unit of control for a shift session.
A session is the working period of a cashier at a specific terminal. At the start of the day, the cashier opens the session by declaring the opening cash float (the cash already in the drawer before the first sale is made). At the end of the shift, the cashier closes the session by physically counting the cash and comparing it with the amount expected by the system — that comparison is the reconciliation.
Opening a session
The cashier selects the terminal, enters the opening cash float and confirms. The session is open and ready to take payments.
Closing a session
At the end of the shift, the cashier counts the physical cash, enters it in the POS and the system calculates the discrepancy against the expected amount. The Z report is printed.
Only one session can be open per terminal at a time. If the cashier closes the application without closing the session, the session remains open and must be formally closed before another cashier can begin their shift on that same terminal.
Making a sale
The over-the-counter sale flow follows an ordered process: products are added, modifiers configured, any discount applied, a tip added if the customer wishes, the payment method chosen and the payment finalised. The system issues the receipt as soon as the sale is recorded.
-
Add products
The cashier searches for products by name, category or barcode (using a scanner or typing). Each item is added to the active sale basket with the desired quantity.
-
Configure modifiers
If a product has modifier groups — for example "Size" (single-choice: small, medium, large) or "Extras" (multi-choice: extra cheese, gluten-free) — the POS shows the option selector. Each option can carry a price increment on top of the base item price.
-
Apply a discount (if applicable)
Discounts are capped by the cashier's role.
STAFFmay give up to 10 % or €10 (whichever is lower).MANAGERmay give up to 50 %. Larger discounts or full comps requireOWNER. A reason must be entered in every case. -
Add a tip
The cashier can offer the customer an option to add a tip to the receipt. Preset options are 0 %, 3 %, 5 % and 10 %; a free-entry amount is also available. The tip is added after VAT and is not part of the taxable base.
-
Choose the payment method
The cashier selects
CASH,CARD(card via card terminal) orSPLIT(mixed: part cash, part card). For cash payments the POS automatically calculates the change to give back. -
Confirm and issue the receipt
The system records the sale, decrements the stock of every item sold and sends the print command to the connected receipt printer. The cash drawer opens automatically if the payment is cash or split.
Modifiers and combos
Modifiers allow a product to be customised without creating a separate item for each variant. A modifier group can be single-choice (the customer picks exactly one option, such as size) or multi-choice (they can pick several, such as pizza toppings). Each option in the group carries an associated price increment — which can be zero — that the system adds automatically to the base item price.
Combos are pre-configured sets of products sold together at a single price. When a combo is sold, the stock of each component is decremented separately, ensuring the inventory always reflects actual consumption.
The receipt
Every sale generates a receipt (simplified invoice) that contains all the fiscal and commercial information for the transaction. The receipt is immutable: once issued it cannot be edited. If there is an error or a refund, a new document is generated that voids or corrects the original.
Contents of a receipt
- Customisable header: merchant name, VAT number, address, phone, logo and welcome message — set by the
OWNER. - Product lines: item, quantity, unit price, selected modifiers and line subtotal.
- VAT lines: taxable base, VAT rate and VAT amount for each tax code present in the sale (
IVA_SUPER_REDUCED4 %,IVA_REDUCED10 %,IVA_STANDARD21 %,EXEMPT0 %). - Discounts applied: amount and reason.
- Tip: amount and percentage, if any.
- Total: subtotal + VAT + tip − discount.
- Payment method: cash tendered and change, or "Card", or split breakdown.
- Invoice number: gap-less sequential number.
- Customisable footer: farewell message or additional merchant information.
Gap-less invoice numbering
The system maintains a gap-less invoicing sequence per jurisdiction, series and year. This means receipt number 1, 2, 3 is always consecutive — no gaps, no duplicate numbers. This property is a legal requirement of Spanish tax regulations and is essential for compliance with Veri*Factu (see the legal compliance chapter).
Full invoice
When a customer needs a full invoice (rather than the simplified receipt), the cashier can capture the customer's tax identification number (NIF) and address. The full invoice includes all recipient details and is suitable for business tax deductions.
Inventory
The POS decrements stock automatically with every sale. When an item's stock falls
below its alert threshold, the system notifies the MANAGER or
OWNER. In addition to automatic decrements from sales, the team can
record manual inventory adjustments to reflect losses, new stock
arrivals or count corrections.
MANAGER and OWNER only
The STAFF role cannot record manual inventory adjustments. This
operation requires at least the MANAGER role to ensure that every
stock movement is tied to a named responsible person.
Every manual adjustment is append-only: the history is never deleted or edited. This guarantees a complete audit trail of all stock movements.
Adjustment reason codes
| Code | Name | When to use |
|---|---|---|
BREAKAGE |
Breakage | Item damaged or broken during handling. |
EXPIRY |
Expiry | Product withdrawn because it has passed its use-by date. |
MERMA |
Shrinkage | Natural weight or volume loss during storage or preparation. |
STAFF_MEAL |
Staff meal | Item consumed by the merchant's own team. |
THEFT |
Theft | Item missing due to theft. |
RECOUNT |
Recount | Stock correction following a physical stock count in the store. |
RETURN_TO_SUPPLIER |
Return to supplier | Goods returned to the originating supplier. |
RECEIVED |
Stock received | New stock arriving from a supplier order. |
TRANSFER_OUT |
Transfer out | Stock moved to another location or branch of the same merchant. |
OTHER |
Other | Any reason not covered by the above; a free-text description is required. |
Age-restricted products
Alcohol and tobacco are products whose sale to under-18s is prohibited in Spain by Ley 28/2005. The POS applies an automatic control: when the basket contains at least one item marked as age-restricted, the system shows an age verification screen before allowing the cashier to complete the sale.
The cashier must actively confirm on the verification screen that the customer is 18 or older and that, if the customer appears to be under 25, identification has been requested and checked. The system records only the cashier's attestation — it does not store any personal data about the customer (name, ID number or copy of the document). If the cashier does not confirm, the sale cannot be completed.
This design protects both the merchant (covered by the cashier's attestation) and the customer's privacy (whose identity data is not stored by the system). The control is attestation-based, not biometric verification or data capture.
Refunds at the till
Over-the-counter refunds are carried out from an existing receipt. The cashier selects
the original receipt and chooses whether the refund is full or partial. Only users with
the OWNER role can carry out refunds.
Full refund
The entire sale is voided. The system returns the full amount to the customer, restores the stock for all items in the sale and adjusts the cash drawer or generates a card refund entry.
Partial refund
Only some items or a smaller quantity are refunded. VAT is recalculated proportionally on the refunded lines. Stock and the drawer are adjusted in proportion to what was returned.
For fiscal integrity, the original receipt is never deleted. The refund generates a new credit note document linked to the source receipt. The complete history is preserved for the audit trail and fiscal compliance.
The cash drawer
The POS records all cash drawer events. Every opening is tied to a reason: cash payment collection, outgoing cash payment (pay-out), cash deposit without a sale (pay-in) or a no-sale opening.
| Event | Description | Minimum role |
|---|---|---|
| Opening for cash sale | The drawer opens automatically when a cash or split payment is confirmed. | STAFF |
| Pay-in (cash deposit) | Cash is added to the drawer without a linked sale (for example, making change for a note). | MANAGER |
| Pay-out (cash withdrawal) | Cash is removed from the drawer without a linked refund (for example, paying a supplier). | MANAGER |
| No sale (opening without a transaction) | The drawer opens with no transaction recorded. A reason must be entered. | MANAGER |
All drawer open and close events are saved in the audit trail, with the time, the user who triggered them and the reason. This traceability is essential for reconciliation at the end of the shift.
Reports
The POS generates four types of report for controlling commercial activity. Each has a distinct purpose and a different level of permanence.
| Report | When | Stored? | Resets counters? | Purpose |
|---|---|---|---|---|
| X report | At any point during the shift | No — an on-screen snapshot only | No | Check the current state of the session without closing it: partial sales, totals by payment method, expected cash in the drawer. |
| Z report | When the session is closed (end of shift) | Yes — numbered and permanent | Yes — resets the terminal's totals for the next shift | Official shift close: definitive totals, itemised VAT, discounts, tips, payment methods, cash discrepancy. |
| EOD cash settlement | At end of day | Yes | No (it is a consolidated summary) | Day's cash summary: opening float + cash receipts + pay-ins − pay-outs − change given = expected cash. Compared with the physical count. |
| Sales by product | On demand or per session | Yes | No | Ranking of items sold: units, amount and percentage of total. Useful for menu management and stock replenishment. |
Once generated, the Z report cannot be modified. Its sequence number is consecutive (no gaps) and its content is locked. This immutability is a requirement of the Spanish fiscal framework and of the future Veri*Factu integration.
Hardware
The POS is designed to work in software-only mode — it can be used entirely from a touch screen with no peripherals connected. Physical hardware integration extends the experience but is not a prerequisite.
Receipt printer
Compatible with the standard ESC/POS protocol. Prints the receipt when a sale is confirmed and the Z report when the session is closed. The receipt design (header and footer) is configured by the OWNER.
Cash drawer
Usually connected to the receipt printer. Receives the open signal automatically on cash or split payments, and can also be opened manually by a MANAGER.
Barcode scanner
Works as a standard keyboard (keyboard-wedge mode): the scanned barcode is entered directly into the POS search field. No special configuration is needed.
Card terminal (datáfono)
Today the amount is entered manually on the card terminal after selecting "Card" in the POS. Automatic integration between the POS and the card terminal is a planned feature for future phases.
The ESC/POS receipt printer, cash drawer and barcode scanner are functional today. Automatic integration with the card terminal (which would eliminate the need to enter the amount twice) is specified and pending implementation.
Multi-location
A merchant can operate several branches or locations under the same account. Each location has its own catalogue (or shares the parent catalogue), its own terminals and its own shift sessions. Reports can be viewed per location or consolidated across the whole business.
Branch management is carried out by the OWNER from the merchant profile.
A MANAGER can have access to one or more locations depending on what the
OWNER has configured. This structure is especially useful for restaurant
chains, markets with several stalls or businesses with a main premises and a separate
terrace.
For the cashier's perspective (opening a session, step-by-step sales, closing), see the cashier chapter. For the fiscal obligations linked to the POS (Veri*Factu, invoice numbering, GDPR), read the legal compliance chapter.