Skip to main content

Sales Integration via POS Systems

Technical specifications for importing POS sales into tSpoonLab

Gustavo Vera avatar
Written by Gustavo Vera
Updated over 2 weeks ago

1. Overview

tSpoonLab does not include a built-in POS module.
However, it can integrate sales data from external POS systems for two main purposes:

1.1 Stock Control

Based on POS sales, tSpoonLab automatically deducts the theoretical consumption of each ingredient or recipe according to its recipe structure (bill of materials).
This enables a theoretical stock, which can later be compared against physical inventory.
The difference between theoretical and actual stock — called a stock deviation — is key for improving cost control and operational efficiency.

1.2 Menu Engineering

By combining sales quantities and revenue from the POS with the recipe costs already defined in tSpoonLab, the system allows detailed performance analysis of dishes, helping identify the best performers and those needing adjustments.


2. CSV File Generation

Some POS systems export CSV files directly at the end of the shift or daily close, while others generate them from a central server.
The file format can vary, as tSpoonLab can transform and map the content during import.
However, the following recommended format covers the typical data needed.


CSV Formatting Rules

  • Field separator: ; (semicolon)

  • No field delimiters: (avoid using quotes ")

  • Text fields: must not contain semicolons (;)

  • Decimal separator: comma ,

  • First line: must always contain the column headers

  • Column order: can vary, but headers must match the field names


Recommended Fields

Field

Description

fecha

Sale date (format DD/MM/YYYY)

hora

Sale time (HH:MM:SS)

codigo_articulo

Item code (no ;)

descr_articulo

Item description (no ;)

cantidad

Quantity sold (use comma , as decimal separator)

precio

Unit price (excluding VAT, use comma , as decimal separator)

importe_siniva

Sale amount excluding VAT

descuento_siniva

Discount amount excluding VAT

iva

VAT rate (%)

codigo_articulo_padre

Parent item code (used for modifiers or add-ons)

* If the item code does not include the format, it must be added to the code. For example, if the item 100 is “red wine” and there is a format code 4 for glass and 5 for bottle, the generated codes should be 100.4 and 100.5.


Example CSV File

Example: a sale containing one beef steak with fries and one burger with extra cheese.

fecha;hora;codigo_articulo;descr_articulo;cantidad;precio;importe_siniva;descuento_siniva;iva;codigo_articulo_padre 03/07/2020;14:30:00;FT001;FILETE DE TERNERA;1;19,90;19,90;0;10; 03/07/2020;14:30:00;PAT001;ACOMPAÑAMIENTO PATATAS;1;0;0;0;10;FT001 03/07/2020;15:00:00;HA001;HAMBURGUESA;1;19,90;18,00;1,90;10; 03/07/2020;15:00:00;EQ001;EXTRA QUESO;1;0;0;0;10;HA001

In this example, the burger has a discount of €1.90, and the “EXTRA QUESO” item references its parent product (HA001).


3. File Naming

Each file must have a unique name, ideally including the date and time of export.
Duplicate uploads of the same sales file must be avoided to prevent duplicated records.


4. Sending the CSV File to tSpoonLab

The CSV file should be uploaded via SFTP to tSpoonLab’s integration server.
To obtain integration credentials, please contact the tSpoonLab support team.


5. Additional Information

If you’d like to understand how POS products are mapped to tSpoonLab items, please refer to the online mapping documentation available in the integrations section.

Did this answer your question?