Recent fiscal regulations in Spain have introduced a new system known as Veri*Factu. Prior to this new regulation, retailers were operating under the 2012 regulation known as the Royal Decree on Invoicing. Additionally, prior regulations in Spain introduced SII, Suministro Inmediato de Información, on July 1, 2017, by the Spanish Tax Agency (AEAT) to enhance VAT compliance through near real-time invoice reporting.
Retailers operating within SII are not required to follow the Veri*Factu regulations. As such, the NewStore POS provides the necessary receipt components for retailers to comply with the Royal Decree from 2012 under SII. NewStore does not currently support Veri*Factu.
For stores operating in Spain, NewStore provides the following functionality to comply with local receipt requirements:
Consecutive receipt numbers through e-journal transaction sequencing
Separate receipt series for Factura Completa and Factura Simplificada
Identification of receipts as a COPY of the original
Warning:
NewStore provides the fiscal transaction information that must be printed on fiscal receipts.
The retailer is responsible for making sure its receipt templates and store processes comply with local fiscal regulations.
Store activations for Spain
In Spain, a store must have an active cashbox before orders can be fiscalized through Associate App.
Important: You must create a store and a cashbox in the NewStore platform before the store can be fiscalized. For more details, see Creating a store and Activating cashboxes.
Receipt types in Spain
Stores in Spain must be able to issue two types of receipts for POS transactions: Factura Simplificada (simplified invoice) and Factura Completa (full invoice).
How NewStore selects the receipt type
NewStore selects the receipt type for each sale automatically, based on the sale total and whether the associate entered a customer NIF (Número de Identificación Fiscal, the Spanish tax identification number).
A sale of exactly €3,000 receives a Factura Simplificada, unless a customer NIF is entered.
Required content: Factura Simplificada
A Factura Simplificada is used for retail sales up to €3,000 (VAT included). The receipt must include:
Sequential invoice number and, if applicable, series
Date of issue
Tax identification number (NIF) and name or business name of the issuer
Description of the goods delivered or services provided
VAT rate applied and, optionally, the text "IVA incluido" (VAT included)
If more than one VAT rate applies, each rate listed separately with its taxable base
Required content: Factura Completa
A Factura Completa is required when the sale exceeds the limit for a simplified invoice, or when the customer requests one by providing their NIF. The receipt must include:
Sequential invoice number and, if applicable, series
Date of issue
Full name or business name and address of both the issuer and the customer
NIF of both the issuer and the customer
Description of the goods delivered or services provided, including quantity and unit price
Any discounts or rebates not included in the unit price
Taxable base amount
VAT rates applied
VAT amount charged, shown separately
Date of supply of the goods or services, if different from the invoice date
To capture the customer's name, address, and NIF in Associate App, see the Configuring customer data for Factura Completa section.
Receipt Numbering
Spanish regulations require each receipt to have a consecutive receipt number. NewStore generates the receipt number for each transaction from the transaction type and the receipt number prefix set during cashbox activation.
Receipt number format
A receipt number has four parts, in this order:
Type letter — identifies the receipt series. See the table that follows.
Year — the fiscal year of the transaction, in YY format. For example, 26 for 2026.
Receipt number prefix — the value set during cashbox activation.
Sequence number — the consecutive number of the receipt within its series.
Rules for the receipt number:
The receipt number prefix must have 1 to 5 uppercase letters or digits. We recommend a unique prefix for each store.
Each series has its own sequence. For example, Factura Completa and Factura Simplificada receipts are numbered separately.
The sequence number restarts at the beginning of each calendar year.
Every receipt number is 16 characters long, including the hyphens. A shorter prefix leaves more digits for the sequence number, so the prefix length sets the maximum number of receipts per series in a year.
Sample receipt numbers
Displaying the receipt type on the sale receipt
The sale receipt template receives the receipt number in the receiptNumber field. To print the receipt type, check the first letter of the receipt number. The following Jinja macro returns the receipt type:
{% macro invoice_type(receiptNumber) -%}
{%- if receiptNumber is string and receiptNumber.startswith('C') -%}
Factura Completa
{%- elif receiptNumber is string and receiptNumber.startswith('S') -%}
Factura Simplificada
{%- else -%}
Unknown invoice type
{%- endif -%}
{%- endmacro %}
{{ invoice_type(receiptNumber) }}Configuring customer data for Factura Completa
A Factura Completa must show the customer's name, address, and NIF. To capture these details in Associate App and print them on the sale receipt, you edit two things:
The store's Associate App configuration, so associates can enter the details
The sale receipt template, so the details print on the receipt
Editing the Associate App configuration
Apply the configuration changes in this section with one of these endpoints:
PUT store configuration — replaces the whole store configuration. The request body must contain the full configuration, including your existing settings.
PATCH store configuration — updates only the fields in the request body.
Capturoing the customer's name and address
Associates capture the customer's name and address with the Billing Address plugin.
A Factura Completa must show the customer's name, address, and NIF. To capture these details in Associate App and print them on the sale receipt, you edit two things:
The store's Associate App configuration, so associates can enter the details
The sale receipt template, so the details print on the receipt
Editing the Associate App configuration
Apply the configuration changes in this section with one of these endpoints:
PUT store configuration — replaces the whole store configuration. The request body must contain the full configuration, including your existing settings.
PATCH store configuration — updates only the fields in the request body.
Capturing the customer's name and address
Associates capture the customer's name and address with the Billing Address plugin.
Important:
The Billing Address plugin is the only way to capture a customer's address for Cash & Carry orders. Addresses saved in the customer's profile are not passed to the receipt template.
Step 1: Enabling the Billing Address plugin
In the store's Associate App configuration, under customizations, add addBilling to the cart_management_v2 list. Keep any entries already in the list.
{
"customizations": {
"cart_management_v2": ["addBilling"]
}
}Step 2: Adding the name and address to the sale receipt template
The details entered in the Billing Address plugin are available in the sale receipt template in these fields:
customer_name — the customer's name
billing_address — the customer's billing address
Add these fields to the template where the customer's name and address should print.
Capturing the customer's NIF
Associates capture the customer's NIF as an order extended attribute. This is the only supported way to print the customer's NIF on the sale receipt.
Step 1: Add the NIF field to Associate App
In the store's Associate App configuration, under customizations, add the following item to the order list inside editable_extended_attributes:
{
"customizations": {
"editable_extended_attributes": {
"order": [
{
"attribute_name": "customer_tax_id",
"label": {
"en": "Customer NIF Number"
},
"prompt": {
"en": "Input customer NIF"
},
"keyboard_type": "default”
}
]
}
}
}The value the associate enters is saved on the order as the customer_tax_id extended attribute.
Important:
The attribute_name must be exactly customer_tax_idNewStore uses this attribute to issue a Factura Completa when a NIF is entered. Use the same name in the receipt template in step 2.
Step 2: Add the NIF to the sale receipt template
In the sale receipt template, read the customer_tax_id extended attribute and print it. extended_attributes is a list of { "name": ..., "value": ... } objects, so look up the value by name.
The following snippet is an example. Adapt the markup and position to your template:
{% set customer_nif = extended_attributes
| selectattr('name', 'equalto', 'customer_tax_id')
| map(attribute='value')
| first
| default('') %}
{% if customer_nif %}
<div>NIF: {{ customer_nif }}</div>
{% endif %}Issuing Duplicate or Copies of Receipts
A copy of a receipt issued in Spain must include the text "Duplicado".
To print compliant copy receipts, set the correct fiscal signature settings in the sale receipt template. For example, use the is_copy parameter to check whether the receipt is a copy. See the fiscal signature template guide for details and example templates.
To edit the sale receipt template, use the Template Editor in Omnichannel Manager. For more details, see Customizing a template.
Known Limitations
Keep the following limitations in mind when you train associates and design store processes:
Missing Factura Completa data does not block a sale. The NewStore Associate App does not stop a sale when details required for a Factura Completa are missing. For example, a sale over €3,000 completes even if no customer NIF is entered. Associates must collect the customer's name, address, and NIF before completing the sale, as required by the fiscal regulations in Spain.
The €1,000 cash payment limit is not enforced. The NewsSore Associate App does not block cash payments over the Spanish legal limit for cash transactions. Associates must check the limit before accepting a cash payment.
The NIF and address are captured per order. A NIF saved in the customer's profile is not used on receipts. Associates must enter the NIF on each order that requires a Factura Completa.