🇪🇸 Spain
Spain
A configuration guide to being compliant in SpainThis document provides a step-by-step configuration guide for a compliant setup in Spain.
Compliance in Spain at a glance
Which flows are affected?
Which type of fiscalization is required?
Who needs certification?
Introduction
When it comes to real-time sales posting, Spain has no mandatory software or hardware requirements. Nevertheless, Spanish businesses are obliged to provide their transactions and invoices to authorities and auditors every 4 days by their own means to what is called SII. EVA is not automatically integrated with SII; therefore, to fulfill this obligation, EVA will send all the required data to your data lake.
Check this document for more detailed information about SII.
At the end of 2024, the VeriFactu system will be implemented across mainland Spain, introducing stringent fiscalization guidelines. Businesses will be required to use specialized and certified software for generating receipts and adhere to other predefined requirements. More information on this will follow and be communicated via the release notes in due course.
Special considerations
A few considerations need to be taken into account when it comes to compliancy in Spain, as follows:
Local mode support
Local mode is currently not supported by EVA in Spain. Activating local mode is done at your own discretion and risk. We strongly recommend conducting thorough testing of local mode before going live to ensure it aligns with your expectations.
If you require support for local mode, please submit a JIRA development ticket, namely a request for change.
Unreferenced returns
Unreferenced returned orders are permitted (a return that is not linked to an original order sold via EVA).
However, when creating an unreferenced return, EVA will require you to enter the order number and sales date of the original sale to which this return will reference. If you are migrating from an old POS system, you can enter the order number and date from the receipt of the original sales order. This data is necessary to demonstrate to authorities that you are not simply returning items, which could be perceived as a sign of tax evasion.
Simplified invoices
Simplified invoices are essentially streamlined sales receipts that contain minimal information. Unlike a standard invoice, which lists comprehensive customer details such as name, billing address, and VAT number, a simplified invoice requires only a VAT number or Fiscal ID. This type of invoice is permissible only when the total order amount remains below a certain threshold. For Spain, a simplified invoice would be issued if the order is anonymous and below €3000 or if a B2C customer is attached to the order without NIF (FiscalID) present, and the amount is below €3000.
Step-by-step configuration
This is a step-by-step guide to configurations that need to be performed within EVA for a compliant setup in Spain. The steps should be followed in the same order as presented hereunder.
Step 1: Setting up a Company on EVA
A company needs to be created in EVA, this can be done via the Admin Suite under the Companies chapter.
Your company in this essence serves as the countries top-level legal entity, which will then house all your stores, creating a hierarchical set-up that would then inherit configurations.
Make sure the following fields are filled in:
- Name
- VAT Number (Número de Identificación Fiscal)
- Registration Number (CIF)
- Address (VisitorAddress)
- Street
- HouseNumber
- ZipCode
- City
- CountryID
Step 2: Create your store(s)
Now that you have a company in place, you need to attach it to Organization Unit of type Store.
Creating those can be done via the Admin Suite under the Organization Unit chapter.
Make sure the following fields are filled in:
- Name
- BackendID (store number)
- Address
- Street
- ZipCode
- City
- CountryID
- CompanyID (Make sure to select the company you've created in Step 1)
Additional step for multiple stores
In scenarios where multiple Organization Units/Stores operate in the same country, a grouping should first be done to ease setting inheritance.
The grouping can be done by creating an Organization Unit of type Container. This Organization Unit type can be created in the same way i.e. via the Admin Suite under the Organization Unit chapter but this time, select the Organization unit type as Container & Country.
Once created, attach all your stores (Organization Units of type Store) under the created Container for this country.
Step 3: Create stations
For the Organization Unit(s) of type Store where transactions will be performed, you'll need to create Station(s) for each (if applicable). Adding a station can be done by following the steps here.
When creating the Station(s), make sure the following fields are filled in:
- The underlying Organization Unit where the station will be used i.e. attached to the OU of type Store.
- The station name.
- The box This station is a fiscal station and will be used for transactions needs to be checked.
Step 4: Check payment types
For transaction reporting, EVA groups your payment types into a number of predefined categories (e.g. Cash, Credit, Voucher, Online, etc.). To perform transactions, ensure that all Payment types you offer in this country have a Payment Category defined. Payments are configured via the Admin Suite under the Payment methods chapter -> Payment Types -> Payment Category field.
Step 5: Settings for auditing provider and invoices
The following settings need to be added. This can be done via the Admin Suite under the Settings chapter.
Setting | Value | Organization unit | Description |
---|---|---|---|
Auditing:Provider | ES | ES on store OU's when go-live is in phases or on country level for a big bang go live. | Sets the certified aspects |
UseInvoiceOutputFacade | true | Root level (store OU) or Container level | Attaches the Certified Invoice PDF when emailing the Invoice from our frontend App. This setting enables the use of the CertifiedInvoice stencil with destination Mail |
Auditing:UseInvoiceCloning | true | Root level (store OU) or Container level | Used to create a duplicate of an original invoice whenever a customer is attached or mutated |
Settings for e-commerce
Please configure the following setting specifically on your e-commerce OU:
Auditing:Provider
- ES
By doing so, EVA will implement the following logic automatically:
- Output documents
- Document sequencing
- Certified Stencils
Step 6: Request Public and Private keys
There are two settings that still need to be configured: Auditing:PublicKeyBlobID
and Auditing:PrivateKeyBlobID
. We will configure these ourselves upon request. To make a request, please submit a ticket via our support system.
Once we have received your request, we will proceed to configure these settings in your environment.
Do not change the values of those two settings unless explicitly advised by us to do so.
Step 7: Ensure you have a data lake setup in place
EVA is not directly integrated or connected to the Spanish authorities hence, data and invoices will be sent to a data lake of your choice. Therefore, ensure you have a data lake setup in place.
More on data lake can be found here.
Step 8 (optional): Auto open close financial period
This is an optional step where you can configure auto open and close of your financial period.
Step 9: Stencils
This step impacts what your certified invoices (thermal & PDF) will look like.
For setup instructions and additional information on Certified Invoices, please visit the Certified Invoices documentation page. To attach a certified invoice to an email, a separate stencil is necessary. You can find the configuration details for this stencil on the same page.
Translation Exception for Organization Units Operating in Catalunya
For organizational units located in Catalunya using the Certified Invoice Template for Spain, certified invoices will feature translations distinct from those used in other Spanish regions. Below are the specific translation differences:
Term in Spanish | Translation in Catalunya |
---|---|
Artículo | Article |
P. unitario | P. unitari |
Duplicado | Duplicat |
Total sin IVA | Total sense IVA |
Tipo de IVA | Tipus de IVA |
Importe del IVA | Import del IVA |
Pagado | Pagat |
Cliente | Client |
Productos | Producte |
Líneas | Línies |
Cash | Efectiv |
Versión del software | Versie del software |
Empleado | Empleat |
Código terminal | Codi terminal |
Step 10: Validation & testing
Now is a good moment to validate and test your setup, as follows:
Validation
Once you're done with all configuration steps. Make sure to use the Validate audit configuration button to check if any compliance-related configurations or data is missing or successfully configured.
Testing
Start placing some orders and check the following:
- Invoice output and numbering
- Thermal receipts output
- PDF invoice output
- Data lake connection
Step 11 (optional): Support for Canary Islands tax rate
Support for Canary Islands tax rates is available, along with the respective stencil.
To apply tax rates according to local Canary Islands requirements, navigate to the tax rates management screen in Admin Suite and configure the Tax Rate as follows: Country as Spain and Region as Canary Islands.
Additionally, ensure that your OU/Store, in which you want to apply these taxes, is also configured with the Region field set as Canary Islands. This can be done from the Basic information tab of that OU/Store. Receipts issued in the Canary Islands will display the "IGIC" as tax rate, while receipts issued in mainland Spain will display the "IVA" as tax rate.
Managing your country
In Spain there are no real recurring issues that can occur once you are live on production environment. As long as your data is flowing to your datalake, you should be good. However, if for any reason your datalake connection fails, make use of the one-time datalake backfill of data, as follows:
Use the DataLakeBackfill service to manually re-export specific dataLake documents.
You need a specific (unscoped) functionality on your role called DataLakeBackfill in order to be able to use the datalake backfill service(s).
These types are currently supported:
- FinancialPeriods = 1
- Orders = 2
- Invoices = 3
- Users = 4
- Discounts (this will trigger all connected data to the discount) = 5
Specify either a single ID, a list of IDs, or a date/time range From and To (inclusive).
As mandatory safety feature, specify the MaxNumberOfDocuments you'd like to run this for. When the amount of documents through above selection exceeds this number, this service will export NOTHING and return to you an error with the amount of documents it prevented from exporting, so you can adjust your selection or expand your max.
Triggering large amounts of data may impact system performance!
Once done, the ID returned in the response can be used for subsequent services DataLakeBackfillStatus and DataLakeBackfillCancel.