Point-of-sale icon

Tax-free shopping with secure card sharing

Learn about tax-free shopping for Tap to Pay payments on iPhone.

Tax-Free Shopping (TFS) allows international travelers to claim back the sales tax or Value-Added Tax (VAT) on their purchases from a Tax-Free Shopping provider (TFS provider) such as Global Blue. A TFS provider is an organization that refunds the shopper and takes care of the paperwork with the authorities. We can share the shopper's encrypted card number with the TFS provider so that it is easier for the provider to refund the shopper on their card. This is referred to as secure card capture.

Supporting TFS drives sales from international shoppers because of its convenience, and can be a great source of data about international shoppers. To offer TFS to your shoppers for Tap to Pay, your POS app needs to support it.

You can offer TFS with secure card sharing if you are located in a country/region that allows VAT refunds and where our point-of-sale solution is supported: the European Union, Iceland, Norway, Singapore, Switzerland, and the United Kingdom.

How it works

The role of Adyen in the tax-free flow is limited. We pass on information the TFS provider for secure card capture. However, secure card capture requires consent from the shopper. You can ask for verbal consent or implement a consent screen in your POS app.

After you have set up TFS:

  1. Check if the purchase qualifies for TFS, based on your TFS providers requirements, by either:
    • Checking the shopper's passport.
    • Checking the shopper's details in your Customer Relationship Management (CRM) tool, if you have previously saved their data.
  2. Ask the shopper for consent to share their encrypted card number with your TFS provider.
  3. If the shopper is eligible for TFS and has given consent, you make a payment with taxfree.indicator set to true. We send a notification to the TFS provider with the shopper's encrypted card number that will be used for the refund.
  4. After the shopper completes the payment, you give the shopper the tax-free form issued by the POS app, and a receipt.

With the tax-free form and the receipt, the shopper can claim the VAT refund from the TFS provider. As part of this process, the shopper has to take the tax-free form to the customs desk at the airport or border, to get export validation. Customs will place a customs stamp on the form, or use an electronic system for validation. The shopper then needs to send or hand in the (electronically) validated form to the TFS provider.

Set up tax-free shopping

Before you begin offering tax-free shopping to your shoppers:

  1. Contact a TFS provider to set up a tax-free process.
  2. To set up your POS app for TFS support, contact the provider of your POS system.

Set up notifications to your TFS provider

Configure a Send card number to <TFS provider> webhook. If the shopper agrees to share their card details, we send the following to your TFS provider:

  • The PSP reference of the transaction.
  • The shopper's encrypted card number.
  • The BIN of the shopper's card.

    We recommend adding a meaningful message to the Description that identifies it as a notification to your TFS provider.

Whether we send this notification is determined by the taxfree.indicator flag in the payment request. If the notification is sent, you see this on the transaction in your Customer Area. The POS tile of the transaction includes:

  • Tax Free Indicator: true
  • Tax Free Identifier: the ID that the TFS provider returned to acknowledge the card details.

    This notification is needed for testing and when you go live. Note that the shopper can claim the tax refund regardless of whether we notified the TFS provider of the shopper's encrypted card number.

Make a TFS payment

If the purchase qualifies for TFS and the shopper has given their consent, you make a payment request, and include the taxfree.indicator flag set to true.

If the purchase does not qualify for TFS, you omit taxfree.indicator or set it to false.

  1. Make a PaymentRequest with the taxfree.indicator flag set to true.

    Pass the SaleToAcquirerData in one of the following formats:

    • Option 1: a JSON object converted to a Base64-encoded string.

      {
          "additionalData": {
              "taxfree.indicator": "true"
          }
      }

      After encoding, pass this in your request:

      "SaleToAcquirerData": "ewogICAgImFkZGl0aW9uYWxEYXRhIjogewogICAgICAgICJ0YXhmcmVlLmluZGljYXRvciI6IHRydWUKICAgIH0KfQ=="
    • Option 2: a form-encoded key-value pair:

      "SaleToAcquirerData": "taxfree.indicator=true"

    The example below shows how to make a payment request with taxfree.indicator set to true.

  2. When you receive the payment response, note the following in the AdditionalResponse:

    • If the taxfree.indicator flag is set to true, the card details is shared with the TFS provider.

After the transaction, your staff provides the shopper with the tax-free form issued by the POS app, and a receipt.

Testing the tax-free flow

In most cases, your TFS provider organizes an end-to-end test between themselves, Adyen, you, and your POS system provider.

In general, to test the happy flow, you need to use a card with a BIN that is eligible for tax refunds. Otherwise, the TFS provider returns a message that a tax refund is not possible.

  1. Make sure that you configured Send card number to <TFS provider> notifications for your test account.
  2. Discuss with your TFS provider which card numbers (PAN) on your test card you are allowed to use for tax refund testing. (The PAN includes the BIN.)
  3. Send a payment request with taxfree.indicator set to true, and complete the payment on the terminal. Note the PSP reference of the transaction.
  4. Issue a tax-free form from your POS app.
  5. In your Customer Area, look up the transaction by PSP reference and check that the POS tile contains an ID in the Tax Free Identifier field. If this field is empty, contact your TFS provider to discover what went wrong.

See also