DOCS

Remit EU VAT with your own IOSS number

Remit EU VAT with your own IOSS number

Pass your own EU IOSS number and control whether Zonos calculates VAT remittance or you remit it yourself.

GraphQL

If you hold your own Import One-Stop Shop (IOSS) registration for the European Union, you can pass your IOSS number on the landed cost calculation and control whether Zonos calculates the VAT remittance. Use this when you collect and remit EU import VAT yourself under your own IOSS registration, rather than remitting through Zonos. Zonos still returns a guaranteed landed cost.

How it works 

Two fields on the landedCostCalculateWorkflow input control this behavior:

  • taxIdNumber – Your own EU IOSS number. When provided, it is surfaced on the response remittance lines so you can reconcile what you owe. (taxNumber is a deprecated alias.)
  • taxRemittanceCalculation – Whether Zonos calculates remittance. Accepts REMITTANCE or NO_REMITTANCE.
Invalid IOSS numbers are ignored

Zonos checks the format of the IOSS number you pass — it must be IM followed by 10 digits. If the format is invalid, Zonos ignores the number and calculates remittance under its own registration, as if none were passed; the quote is never rejected. The check is format only, so a correctly formatted but incorrect number is still accepted — make sure your number is right.

When NO_REMITTANCE is honored 

NO_REMITTANCE is applied only when you pass your own IOSS number. The number you pass determines the result:

IOSS number passedResult
NoneNO_REMITTANCE is ignored. Zonos calculates remittance as usual.
Your own IOSS numberNO_REMITTANCE is honored. You self-remit and the remittance array is empty.
Zonos's IOSS numberNO_REMITTANCE is ignored. Zonos calculates and remits as usual.

REMITTANCE always calculates remittance, regardless of the IOSS number you pass.

Calculate with your IOSS number 

Pass taxIdNumber with the behavior you want. For the same EU low-value shipment (goods ≤ €150), taxRemittanceCalculation changes the result.

REMITTANCE — Zonos calculates remittance

Zonos calculates the EU VAT and populates the remittance line, with your IOSS number surfaced for reconciliation.

1mutation {
2 landedCostCalculateWorkflow(
3 input: {
4 endUse: NOT_FOR_RESALE
5 method: DDP
6 tariffRate: ZONOS_PREFERRED
7 taxIdNumber: "IM1234567890"
8 taxRemittanceCalculation: REMITTANCE
9 }
10 ) {
11 id
12 taxIdNumber
13 amountSubtotals {
14 duties
15 taxes
16 fees
17 landedCostTotal
18 }
19 taxes {
20 amount
21 description
22 currency
23 }
24 remittance {
25 amount
26 description
27 note
28 taxIdNumber
29 }
30 }
31}

NO_REMITTANCE — you remit under your own IOSS

When you pass your own IOSS number with NO_REMITTANCE on a qualifying EU low-value shipment (ship-to in the EU, arriving on or after 1 July 2026, goods total ≤ €150), Zonos hands VAT off to you: the remittance array is empty and Zonos calculates no VAT on goods, shipping, or duty — you collect and remit it under your own IOSS registration. Outside that low-value window, NO_REMITTANCE only empties the remittance array and the tax totals are unchanged.

1mutation {
2 landedCostCalculateWorkflow(
3 input: {
4 endUse: NOT_FOR_RESALE
5 method: DDP
6 tariffRate: ZONOS_PREFERRED
7 taxIdNumber: "IM1234567890"
8 taxRemittanceCalculation: NO_REMITTANCE
9 }
10 ) {
11 id
12 taxIdNumber
13 amountSubtotals {
14 duties
15 taxes
16 fees
17 landedCostTotal
18 }
19 taxes {
20 amount
21 description
22 currency
23 }
24 remittance {
25 amount
26 description
27 note
28 taxIdNumber
29 }
30 }
31}
GraphQL API ReferenceTypes, inputs, and operations used in this guide
Book a demo

Was this page helpful?