TaxFree is a service added by some stores so that tourist can buy goods and have their VAT refund at the airport. It is based on measures that seek to avoid the problem of double taxation at the international level.
Standard requirements to apply for tax free in Spain are:
- You must be a permanent resident in a country outside the European Union.
- Your visit can not be longer than 6 months.
- You will only be refunded VAT on purchases made within the three months prior to the departure date.
- A valid purchase ticket for each store.
- Tax free form for each store.
- Documents stamped by customs or in the DIVA machines (digital machines at the airport for the validation of purchase tickets).
1 Taxfree Operators
The POS is prepared to work with more than one Taxfree Operators. Exemples of them are GlobalBlue, Planet or Innova. The operator's data is stored in table pos_taxfree_operator.
Through this form it is possible to define the taxfree operators in the PRO application.
The most important parameters of the operator are:
- Code: unique code of the operator.
- Name: operator name.
- Email: operator contact mail.
- URL: common url for all operator APIs.
- User: user code to connect with the operator APIs. It can be only one user for all connections or can change depending on the store. In the second case, the user-pasword here will be null, and each operator store will be their own credentials.
- Password: password needed to connect with the operator APIs.
- Submission script: customer operator' script for send a taxfree ticket and read the response.
- Annulation script: customer operator' script for annulate an already done taxfree ticket.
- Search script: customer operator' script to search what is the status of the transaction. This is essential to know if taxfree has been already charged or not.
- Seller's CIF
- Seller's name
|Operator code||Taxfree operator code|
|Operator name||Taxfree operator name|
|Operator email||Taxfree operator email|
|Submission script||Submission script|
|Script annulation||Script annulation|
|Script search||Script for Search Transaction|
|Seller CIF||Seller CIF|
|Seller's name||Seller's name|
|Created by||User who created the register
|Date created||Creation date of the register|
|Updated by||User who updated the register
|Date updated||Update date of the register
1.1 Paytype methods
Each operator has defined types of payment compatible with the generation of taxfree. They are stored in table pos_taxfree_operator_paytype.
|Code||Payment unique code.|
|Operator code||Taxfree operator code.|
|Require card||If payment require card or not.
In the cases where taxfree connection depend on store, we need credentials for each. It is stored in table pos_taxfree_operator_stores.
In the other cases, just one credential is needed and it is defined in pos_taxfree_operator, so this tab does not even appear in form.
|Store code||Referential code of store.|
|Code||Unique operator code.|
|Store user||Store user.|
|Store password||Store password
Taxfree can not be applied in all countries. The list of countries and all the required data and codes with which each operator works is stored in table pos_taxfree_operator_countries.
|Alpha code 3||ISO alpha code (3 dig).|
|Alpha code 2||ISO alpha code (2 dig).|
|Numeric code||Numeric code.|
|ICAO code||International Civil Aviation Organisation (ICAO) code.|
|Country name||Country name.|
|Phone prefix||Phone prefix.|
|Passport code||Passport code.|
The taxfree operator provides a username and password as access credentials which the POS system uses to get a token from operator's authentication service. That tokens have a limited lifetime (normaly about 1h) and we store them in table pos_taxfree_operator_tokens, so they can be reused to others taxfree operations.
Old tokens with more than one week age are automatically deleted when one new token is created. Furthermore, disabled tokens can also be deleted from tokens form througha button.
|Operator code||Referential operator code.|
|Token ID||Token identifier.|
|Token code||Token code.|
|Store code||Referential store code.|
|Date created||Date where token was created.|
2 Taxfree tickets
When we want to genereate taxfree for a ticket, it is saved into table pos_ticketh_taxfree. There, the current taxfree status and data is stored.
Every time that we change some data of the ticket taxfree or the taxfree status change, the register is saved to table pos_ticketh_taxfree_hist, which includes all the dates. Once the status is 'F' Finished, it is not supposed to have any more changes.
|Ticket ID||Ticket Identifier|
|Location ID||Referential customer location identifier.|
|Customer ID||Referential customer identifier.|
|Customer email||Customer email.|
|Payment code||Referential payment code.|
|Card number||Payment card number.|
|Tax import||Tax import to return
|Error message||Error message|
|Operator taxfree document PDF.|
3 TPV Operation
From the POS, we offer the possibility of generating the Tax Free of a ticket once it is closed.
3.1 Taxfree generation
Whenever a store has a Tax Free operator assigned, from the closed ticket screen, a button with the '%' symbol will appear.
If we press the button, a pop-up screen will open and ask for extra information about the purchase and the customer. This information is necessary to generate the TF. Once the data is complete, it is sent to the taxfree operator, who will generate the taxfree if everything is correct, or show us the error if there is one.
3.2 Taxfree eligibility
Some operators offer the possibility of checking if a transaction is valid for the generation of the taxfree. That is, from some information on the ticket, such as the location of the client and the total amount, we can know whether or not it is possible to perform the tax-free, without the need to send the complete data.
In these cases, from the POS we offer the possibility of sending a notification about the availability of tax-free before closing the ticket.
3.3 Taxfree documents
If Taxfree has been correctly generated, the ticket documents (both ticket print and PDF) will include a second barcode that correpond to Taxfree. The customer must save this barcode and use it in the airport DIVA machines to have the purchase VAT returned.
Some TF Operators generate a specific PDF with all the taxfree data, which is stored in pos_ticketh_taxfree.pdf. In that cases, this document will be attached with the normal ticket PDF, and it is advisable to send them to the customer by email.