Stripe Swiss VAT and the Mail-Order Rule in QuickBooks

Stripe charges no Swiss VAT on goods you ship in until you select one setting. How the mail-order rule makes you the importer, and what QuickBooks needs.

Acodei Content Team · 10/7/2026 · 23 min read

A US business that ships goods to Swiss customers through Stripe can register for Swiss VAT, add the registration to Stripe Tax, and still charge no Swiss VAT on a single parcel. Stripe's default for goods shipped into Switzerland is to treat them as exports. Switzerland is different from the other low-value countries in a second way that matters more for your books. Once you are registered under its mail-order rule, you are the importer of every parcel you send. You charge Swiss VAT at checkout, pay import tax at the border on the larger parcels, and claim that import tax back on your return.

So a Swiss sale can leave two tax balances in QuickBooks instead of one. Norway's VOEC scheme is pay-only, and the UK and New Zealand low-value rules are built around collecting tax at checkout. Switzerland has no simplified register at all. A foreign seller over the line gets a full Swiss VAT registration, a Swiss tax representative, and the same deduction rights as a Swiss business.

This guide covers the mail-order rule, the CHF 5 test (which is measured per consignment and depends on the tax rate), the Stripe setting, a worked quarter of six orders, the two QuickBooks balances, getting customs to bill you rather than your customer, and the return and records. It is bookkeeping guidance, not tax advice. Whether you must register, and how your parcels are declared, are questions for your accountant, your Swiss tax representative and your carrier.

Start a free trial to bring Stripe Tax amounts into QuickBooks automatically, so the Swiss VAT you charge is already in your liability account when the period closes.

Switzerland has no simplified scheme

The UK, Norway and New Zealand each built a way for foreign sellers to collect tax on low-value parcels at checkout without becoming ordinary local taxpayers. Our guides to the UK 135 GBP rule, Norway's VOEC scheme and New Zealand's low-value GST walk through those three. Switzerland took a different route.

The Swiss Federal Tax Administration (FTA) says on its mail-order trade page that "Foreign companies active in the mail order business are treated the same as companies based in Switzerland." There is no separate low-value register. A seller that crosses the line enters the ordinary VAT register, and from then on, in the FTA's words, "all shipments to Switzerland are subject to domestic tax."

The FTA's "domestic" also covers more than Switzerland. Its guide for foreign businesses (VAT Info 22) defines Swiss territory as the Swiss Confederation, the Principality of Liechtenstein, the German municipality of Büsingen and the Swiss sector of EuroAirport Basel-Mulhouse-Freiburg. One Swiss registration covers a customer in Vaduz the same way it covers one in Zurich. That is why Stripe's country guide treats Switzerland and Liechtenstein as one location.

When a US seller becomes liable: the mail-order rule

Two different thresholds appear in the sources, and they count different things.

Stripe's guide shows a registration threshold of 100,000 CHF per rolling 12 months and notes that "This threshold includes your world-wide sales." That is the general Swiss rule. VAT Info 22 says a foreign business is liable if it supplies goods or services on Swiss territory and its worldwide taxable turnover is CHF 100,000 or more. The catch for a seller of goods is the first condition. If your customer imports the parcel, the sale is not a supply on Swiss territory, so that rule never starts.

The rule that catches foreign shops is the mail-order rule. The FTA's page on registration for mail-order companies describes low-value consignments as "goods that are exempt from import tax due to the insignificant import tax amount (less than CHF 5.00)." While your turnover from those small consignments stays under CHF 100,000 a year, the place of supply stays abroad. Then, in the FTA's words, "From the beginning of the month following the month during which the threshold was reached, the place of supply for all supplies of goods from abroad will change to be on Swiss territory."

Three things follow for a US seller:

  • Only small consignments count toward the CHF 100,000. Parcels with more than CHF 5 of import tax don't count. Neither do your US sales.
  • Crossing it changes every parcel, not just the small ones. From the next month, the FTA says, "not only the small consignments of the mail-order company will be considered as domestic supplies, but also all other consignments where the import tax amount is more than CHF 5."
  • You import in your own name. The FTA says the business "must then be entered in the VAT register and import goods in its own name." Your customer stops being the importer.

A seller below the line can choose to join early. The FTA calls this the declaration of subjection for abroad (Stripe's guide uses the German name, "Unterstellungserklärung"). It lets you import in your own name, charge Swiss VAT and claim import tax back before you reach CHF 100,000. The FTA presents it as a way to plan the changeover, and suggests it when small-consignment turnover is close to the limit.

There is one case where an existing registration doesn't help. The FTA says a company already registered in Switzerland for other supplies, such as digital services, that also ships small consignments from abroad still treats those consignments as foreign turnover until they reach CHF 100,000 a year on their own.

The CHF 5 test is per consignment, and it depends on the rate

Switzerland doesn't set a price line. It sets a tax line: a consignment is small if its import tax is CHF 5 or less. The FTA's guidance consistently talks about consignments, and VAT Info 22 describes small consignments as those with an "import tax amount up to CHF 5" and contrasts them with consignments where "the import tax amount is more than CHF 5 per consignment."

Stripe's guide translates that into prices: low-value goods include "items priced below 62 CHF if the applicable tax rate is 8.1%, and items priced below 193 CHF if subject to a 2.6% tax rate." The arithmetic matches. Five francs is 8.1 percent of about CHF 62 and 2.6 percent of about CHF 193. But Stripe's wording says items, and the FTA's says consignments. Two items at CHF 40 each are both under 62 francs, yet a box holding both carries more than CHF 5 of import tax.

That is the reverse of Norway, where the Norwegian Tax Administration measures each item and lets several low-value items share a box. In Switzerland the box is what counts.

The rate matters as much as the price. Swiss VAT has three rates, according to the FTA's rates page: 8.1 percent normal, 2.6 percent reduced and 3.8 percent for accommodation. The reduced rate covers goods such as food, books, newspapers and medications. A CHF 150 book is a small consignment and a CHF 70 jacket is not.

Before you are registered, this test decides two things: whether a parcel counts toward your CHF 100,000, and whether your customer pays import tax at the door. After you are registered, it decides whether import tax arises at the border, which you then claim back.

The Stripe setting, and when to leave it off

Stripe's default for goods coming in from abroad is to calculate nothing. Its guide says: "When goods are shipped into Switzerland or Liechtenstein from abroad, Stripe treats the sale as an export and doesn't calculate tax, unless you choose to calculate tax on cross-border sales of goods into Switzerland and Liechtenstein through the tax registration settings." It adds that Stripe "doesn't calculate VAT on the special regime for low-value goods shipped into Switzerland and Liechtenstein, unless you select the option."

The option is inbound_goods on a standard registration. Stripe's registration guide says you can select it "to collect tax on cross-border sales of goods into the country where you're adding the standard registration." Our glossary entry on the Stripe Tax cross-border goods option compares how Stripe treats it country by country.

When you are registered under the mail-order rule or the declaration of subjection, you owe Swiss VAT on every delivery, so you need the option on. Stripe's guide states the general principle: "businesses need to collect tax on these sales if they act as the importer for customs purposes."

Leave it off if you are registered in Switzerland only for something else, such as a software subscription, and your physical parcels are still under the CHF 100,000 small-consignment line. Under the FTA rule above, those parcels are still foreign turnover. Turning the option on would charge Swiss VAT on sales that aren't yet Swiss supplies.

Stripe doesn't calculate the border charges either way. Its guide says cross-border sales of goods "might also be subject to import taxes and customs duties in Switzerland and Liechtenstein, which Stripe doesn't calculate."

Check this first: open the Switzerland and Liechtenstein registration in Stripe Tax, confirm the cross-border goods option is set the way your registration requires, and look at the first Swiss order after the change.

Representative, security, and the methods you can't use

Three administrative points shape your setup.

You need a Swiss tax representative. The FTA's page for foreign companies says that foreign businesses without a Swiss domicile or place of business "must appoint a representative" in Switzerland, and that "An online registration without the appointment of a Swiss tax representative is not possible." The representative doesn't have to be a fiduciary or lawyer. VAT Info 22 says all documentation relevant to the VAT claim must be available at the representative's address within a reasonable time, including customer invoices, payment receipts and customs documents such as electronic assessment decisions. You must register within 30 days of becoming liable.

A security deposit is generally no longer required. Stripe's guide says foreign businesses must "provide cash or bank guarantee for future VAT liabilities." The FTA now says otherwise. VAT Info 22 says "The FTA generally waives the requirement to provide security" for foreign businesses, a practice change published on 29 April 2025, though it can still demand one from a business that misses its obligations. The FTA's foreign-companies page adds that it is refunding securities paid in the past, in stages. Follow the FTA, and if you paid a security before the change, keep it on your balance sheet as a receivable, not as an expense.

Two simplified methods are off the table. The FTA's mail-order registration page says mail-order businesses can't use the net tax rate or flat tax rate methods. You file on the effective method, which is tax charged less input tax paid. That is what lets you deduct import tax, and why your books have to carry it.

A worked quarter: six orders

Take an Oregon company that makes cycling apparel and sells a printed route guide. Its small-consignment turnover to Swiss customers passed CHF 100,000, so it registered for Swiss VAT under the mail-order rule, appointed a representative in Basel, and selected the cross-border goods option on its Stripe registration. Its Swiss storefront prices in francs, with VAT added at checkout.

The import tax figures below are illustrative. Customs sets import tax on its own assessed value, which can include transport costs. These examples apply the rate to the goods value only. Your electronic assessment decisions will show the real figures.

  1. Wool socks to Bern, CHF 38 plus CHF 9 shipping. Swiss VAT at 8.1 percent of CHF 47 is CHF 3.81. Import tax on a parcel this size comes in under CHF 5, so it's a small consignment and nothing is charged at the border. The shop owes the CHF 3.81 with nothing to offset.
  2. A rain jacket to Zurich, CHF 260 plus CHF 15 shipping. VAT is 8.1 percent of CHF 275, so CHF 22.28 at checkout. The import tax is over CHF 5, so the parcel is assessed at the border, and the shop pays as importer, say CHF 21.06. The shop owes CHF 22.28 and claims CHF 21.06 back. On the return, this order nets to CHF 1.22.
  3. Gloves at CHF 42 and a cap at CHF 29, one box, CHF 9 shipping. Each item is under Stripe's 62-franc line, but the consignment is CHF 71 of goods, with roughly CHF 5.75 of import tax. That's over CHF 5, so it is not a small consignment. VAT at checkout is 8.1 percent of CHF 80, which is CHF 6.48, and the shop claims about CHF 5.75 back. Before the shop registered, this was the parcel where the customer paid import tax at the door, and it didn't count toward the CHF 100,000.
  4. The printed route guide, CHF 160 plus CHF 9 shipping. Books take the 2.6 percent rate, so VAT is CHF 4.39, and the import tax stays under CHF 5. It's a small consignment at well over 62 francs. Check that the product's tax code makes Stripe apply 2.6 percent, not 8.1.
  5. Eight jackets for a bike shop in Lucerne, CHF 2,080 plus CHF 40 shipping. The buyer adds its Swiss VAT number at checkout. In Norway that would mean no VAT. Here the FTA says a registered mail-order company "owes Swiss VAT (domestic tax) on all deliveries to buyers in Switzerland," and Stripe's guide explains reverse charge in terms of services, not imported goods. VAT is 8.1 percent of CHF 2,120, which is CHF 171.72. The shop pays import tax of about CHF 168.48 at the border and claims it back.
  6. A helmet to Vaduz, CHF 120 plus CHF 9 shipping. Liechtenstein is inside the Swiss VAT territory, so this is an ordinary Swiss sale under the same registration: CHF 10.45 of VAT at checkout, and about CHF 9.72 of import tax at the border to claim back. An order to Samnaun would be different. The FTA says the valleys of Samnaun and Sampuoir are outside the Swiss customs territory and treats deliveries of goods there as deliveries abroad. Stripe's guide doesn't mention them, so check the taxability_reason on the first one.

For the quarter, the shop charged CHF 219.13 of Swiss VAT through Stripe and paid about CHF 205.01 of import tax at the border. Its return shows roughly CHF 14 payable. A bookkeeper who looked only at the liability account would expect to pay CHF 219.

Stripe's tax ID list includes ch_vat, the Swiss VAT number in the format CHE-123.456.789 MWST, and li_vat for Liechtenstein, both marked as affecting tax calculation. That's why order 5 is the one to check by hand. If Stripe returned reverse_charge on a goods sale to a business with a Swiss VAT number, raise it with Stripe and your accountant before the return is due.

Two balances in QuickBooks, one return

For a US QuickBooks company, Acodei's documented tax method is the Tax Product. It works with Stripe Tax on Stripe Invoices or Stripe Checkout: you create a non-inventory "Sales Tax" product mapped to a liability account, and all Stripe Tax amounts on a sale roll into one line on the QuickBooks invoice or sales receipt. The documentation says QuickBooks' Sales Tax Center doesn't let third parties create official tax rates for US companies, which is why the product approach is the one that works there. You use Stripe's tax reports to file and pay from the liability account. The Norway guide covers that setup in more detail.

That handles the first balance. The Swiss VAT Stripe charged on orders 1 to 6, CHF 219.13, arrives in the liability account with each sale, alongside your US state sales tax and any other foreign tax you collect through Stripe Tax.

The second balance never touches Stripe. The import tax is charged at the border, after the sale, and it reaches you as a customs assessment and a bill from your carrier or customs declarant. Stripe never sees it, so nothing that syncs from Stripe will carry it. Enter those bills yourself, and split them:

  • Import tax: debit a separate asset account, for example "Swiss import VAT recoverable." It isn't a cost, and it doesn't belong in the liability account, where it would hide what you charged customers.
  • Customs duties, if any: these are a cost of the goods, not a tax you get back.
  • Clearance and handling fees: a shipping or fulfillment expense.

The trap is how carrier bills arrive. Import tax, duty and handling can show up on one invoice. Post the whole thing to shipping expense and you've lost the deduction, overpaid on the return, and overstated your costs. Keep the electronic assessment decision for each parcel, because it's what supports the deduction.

At filing time, the return nets the two balances. You pay the FTA the Swiss VAT charged less the import tax paid. Clear the liability account by the Swiss portion and the recoverable account by the import tax claimed, and the payment covers the difference. In a quarter where import tax exceeds the VAT you charged, the FTA's payment page says a credit balance is refunded or set off against tax debt, with the refund made 60 days after the return is received.

Refunds need one extra decision. Acodei's documentation says a refund made through a Stripe credit note carries the line-level tax breakdown. A refund made on the payment alone, without an item breakdown, may not tell Acodei how much of it was tax, and that case can need a manual adjustment in QuickBooks. For Swiss invoices, refund through credit notes so the Swiss VAT comes off the liability account with the sale.

Making customs bill you, not your customer

The worst outcome under the mail-order rule is a customer who pays Swiss VAT at your checkout and import tax again at the door. The FTA is blunt about it: if the buyer is wrongly charged both, "neither the FTA nor the Federal Office for Customs and Border Security (FOCBS) can refund the tax, as domestic tax and import tax are rightly owed." You can still claim the import tax as input tax, but only if you hold the assessment decision and have paid the import tax yourself. The refund to your customer is a private matter between you, the customer and the customs declarant.

Preventing it is mostly labeling. The FTA says the mail-order company is responsible, and lists what it needs:

  • The address label must carry the mail-order company's name and Swiss VAT number.
  • A VAT-compliant invoice or a pro forma invoice stating the Swiss VAT must be attached to the parcel.
  • Postal shipments on CN 22 or CN 23 forms need both the address label and the pro forma invoice with Swiss VAT.
  • Courier shipments need clear instructions. Tell the courier that the mail-order rules apply.
  • The FTA's public list of mail-order companies is what customs declarants check before deciding whom to charge. When you register online, opt in to the list.

Stripe can help with part of the invoice. Its tax ID documentation says tax IDs you add to your own account appear in the header of invoice and credit note PDFs. That puts your Swiss VAT number on the invoice. It doesn't put it on the shipping label, which comes from your fulfillment system.

Two optional steps reduce friction. The FTA suggests a centralised settlement procedure (CSP) account with Swiss customs, which makes clearance cashless and gives you a daily statement of levies with the assessment decisions. For courier traffic it also suggests combining consignments for several recipients on one customs declaration, which isn't available for postal shipments.

If a double charge happens anyway, don't fix it by refunding the Stripe payment. The customer paid the right price and the right Swiss VAT. A Stripe refund would reduce the sale and the tax in your books, which isn't what happened. Agree with your accountant how to record what you reimburse the customer, and keep the assessment decision with the entry.

Filing from Stripe's exports and the customs decisions

The return is filed electronically through the FTA portal. The FTA says it "must be submitted and paid within 60 days after the end of the relevant reporting period," with no reminder, because VAT is self-declared. Its own example shows a first-quarter return due on 31 May. You can extend the payment deadline by three months, free, through the portal's return service.

The two halves of the return come from different places:

  • VAT charged comes from Stripe. Stripe has no Swiss location report. Its reporting guide says location reports cover the US and Canada. Use the summarized export (filing_total_tax_collected, filing_total_tax_refunded, filing_tax_payable) and keep the itemized export for the detail. See the glossary entries on the itemized export and the Stripe taxability reason.
  • Import tax deducted comes from customs. Total the assessment decisions for the period, or the CSP statements, and tie the total to your recoverable account.

VAT Info 22 also offers foreign businesses a simplified turnover declaration: you can declare only the turnover you generated on Swiss territory in section 200 of the return, instead of your worldwide turnover.

Then the currency. The return is in francs. The FTA's exchange rate page says foreign-currency amounts are converted using either the FTA's monthly average rate or the daily exchange rate (sell). It also says the rate you choose "has to be kept for at least one tax period" and used for both the tax you charge and the input tax you deduct. Stripe says that when you price in a currency other than the filing currency, it "converts amounts using available exchange rates at the time of the transaction." It doesn't name an FTA rate. If you price in US dollars, recalculate the francs at the FTA rate you chose, instead of using Stripe's filing columns. If you price in francs, as the Oregon shop does, there's nothing to convert. The glossary entry on the Stripe Tax summarized export explains the filing columns.

On the books side, a US QuickBooks company carries both balances in dollars, and you settle with the FTA in francs. Clear each account by the amount carried for the period, and post the difference between that and what the payment actually cost to the account your accountant uses for currency gains and losses. The Stripe multicurrency guide explains why Stripe and QuickBooks disagree about exchange rates in the first place.

Ten years of records

Swiss record keeping is longer than Norway's five years. VAT Info 22 says taxable persons must keep their books and supporting documents until the absolute limitation period for the tax claim has expired, which it puts at 10 years. A foreign business without separate Swiss accounts must keep at least a statement of receipts and expenditure and a schedule of business assets, with an audit trail from each document to the return. The documents also have to be available to your representative in Switzerland.

RecordWhere it comes from
Customer invoices and VAT chargedStripe invoices; itemized export (tax_amount, tax_rate, taxability_reason)
Payment receiptsThe Stripe payment, linked by payment_intent_id
Turnover on Swiss territorySummarized export (filing_total_sales), checked against the itemized rows
Import tax paid and deductedElectronic customs assessment decisions, or CSP statements
Duties and clearance feesCarrier or customs declarant invoices
Supplier invoices for any other Swiss costsYour own records
Corrections and returnsItemized reversal rows, plus credit notes

Archive each period's Stripe exports instead of regenerating them years later. Stripe's product_name is the product's current name, so renaming a product changes its history in a fresh export. And store each assessment decision against the order it belongs to. Customs issues them per declaration, and Stripe has no record of them.

What to set up once, and what to check every period

Once:

  • Work out which rule applies to you: below the CHF 100,000 small-consignment line, registered under the mail-order rule, or registered voluntarily through the declaration of subjection.
  • Appoint a Swiss tax representative, and agree where your documents will be kept.
  • Set the cross-border goods option on the Stripe registration to match, and test one order.
  • Check that every product's tax code gives the right Swiss rate, especially books and other reduced-rate goods.
  • Put your name and Swiss VAT number on the shipping label, attach an invoice or pro forma invoice showing Swiss VAT, and opt in to the FTA's mail-order list.
  • Add a "Swiss import VAT recoverable" asset account in QuickBooks, and tell whoever enters carrier bills how to split them.
  • If you price in dollars, choose the FTA monthly average or daily rate and record the choice.

Every period:

  • Export Stripe's Swiss transactions and archive the files.
  • Sort by taxability_reason and confirm business sales still carry VAT, reduced-rate goods show 2.6 percent, and any Samnaun orders are untaxed.
  • Total the period's assessment decisions and tie them to the recoverable account.
  • File and pay within 60 days of the period end, netting import tax against VAT charged.
  • Record the payment or refund against both accounts at the carried amounts, with the difference to currency gain or loss.

Frequently Asked Questions

Does Stripe charge Swiss VAT on goods shipped from the US?

Only if you select the option to calculate tax on cross-border sales of goods into Switzerland and Liechtenstein on your registration. Without it, Stripe treats goods shipped in from abroad as exports and calculates nothing, including on the low-value goods covered by the mail-order rule.

When does a US seller have to register for Swiss VAT?

Under the mail-order rule, when its turnover from small consignments shipped from abroad reaches CHF 100,000 a year. A small consignment is one with import tax of CHF 5 or less. From the start of the following month, every parcel it ships to Switzerland is a Swiss supply, and it must register and import in its own name.

Is the CHF 5 test per item or per parcel?

Per consignment. The FTA describes small consignments by the import tax on the consignment, so two cheap items in one box can push it over CHF 5. Stripe's guide describes the same line as items priced below 62 CHF at 8.1 percent or 193 CHF at 2.6 percent, so check how a multi-item order was treated.

Can I reclaim the Swiss import tax I pay at the border?

Yes, once you are registered. The FTA says a registered mail-order company is deemed the importer and can deduct import tax as input tax. Keep the electronic assessment decision for each consignment, and record the import tax as a recoverable asset in QuickBooks, not as shipping expense.

Do I charge Swiss VAT to a business customer with a Swiss VAT number?

On goods shipped under the mail-order rule, yes. The FTA says a registered mail-order company owes Swiss VAT on all deliveries to buyers in Switzerland. Stripe's guide discusses reverse charge in connection with services, so check that your first business order with a ch_vat number still carries VAT.

Does Liechtenstein need a separate registration?

No. Swiss VAT territory includes the Principality of Liechtenstein and the German municipality of Büsingen, and Stripe treats Switzerland and Liechtenstein as one location. The valleys of Samnaun and Sampuoir are the exception: the FTA treats deliveries of goods there as deliveries abroad.

Two taxes per parcel, one return

Switzerland asks more of a US seller than the other low-value countries do. It requires a real registration, a representative and ten years of records. In return, it treats you like a Swiss business. The VAT you charge through Stripe and the import tax you pay at the border are two sides of the same parcel, and the return nets them. Your books need to do the same: Stripe's tax in the liability account, customs' tax in a recoverable account, and an assessment decision behind every deduction. Set up the label and the Stripe option correctly, and the period-end tie-out is two totals and a subtraction.

Start a free trial to sync Stripe Tax into QuickBooks automatically, so the Swiss VAT side of every period's return starts from a complete liability account.

Share

Automate your Stripe to QuickBooks sync

Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.

14-day free trial · card required · cancel anytime

How Acodei handles this in your stack

Stripe QuickBooks Integration

See how Acodei syncs Stripe payments, fees, refunds, invoices, and payouts into QuickBooks Online automatically.

Or go straight to a capability

Get more operational finance guides like this one

We will only send high-value product and finance content.