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
pos_taxfree_operator
Label Description
Operator code Taxfree operator code
Operator name Taxfree operator name
Operator email Taxfree operator email
URL
User
Password

Submission script
Script annulation
Script search Script for Search Transaction
Seller CIF
Seller's name
Created by User who created the register

  • Default: USER
Date created Creation date of the register
Updated by User who updated the register

  • Default: USER
Date updated Update date of the register

  • Default: CURRENT

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.

pos_taxfree_operator_paytype
Label Description
Code Payment unique code.
Operator code Taxfree operator code.
Paytype Payment description.
Require card If payment require card or not.

  • Default: 0
  • Values:
    • 0: false.
    • 1: true.
Order Payment order.

1.2 Stores

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.

pos_taxfree_operator_stores
Label Description
Store code Referential code of store.
Code Unique operator code.
Store user Store user.
Store password

1.3 Countries

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.

pos_taxfree_operator_countries
Label Description
operator_code
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.

1.4 Tokens

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.

pos_taxfree_operator_tokens
Label Description
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.

pos_ticketh_taxfree
Label Description
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.
irlid
Tax import Tax import to return

Status Taxfree status.

  • Values:
    • A: Annulated.
    • C: Correct.
    • E: Error.
    • F: Charged.
    • P: Pending.
Error message
PDF 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.