# Country-Specific Shipping Requirements

International shipping involves navigating country-specific customs regulations, tax requirements, and documentation standards. This guide covers the most common requirements for shipping to major destinations worldwide.

> **NOTE:**
This is not a comprehensive guide for all countries. Requirements change frequently - always verify current regulations with your carrier and destination country customs authority.


For detailed information about tax identifiers (VAT, EORI, IOSS, etc.), see our [Tax Identifier Numbers guide](/apis/shipengine/docs/shipping/tax-identifier-numbers).

For general international shipping concepts, see our [International Shipping guide](/apis/shipengine/docs/shipping/international).

## European Union

The EU has specific requirements for customs descriptions, harmonization codes, and de minimis thresholds that apply to all member countries.

### Customs Description Requirements & Stop Words

Beginning February 2, 2026, the European Union will enforce enhanced customs description requirements. The new requirements include a list of **Stop Words** - generic descriptions that prevent customs authorities from clearly identifying the nature of imported goods. Using these words alone increases the risk of delays and rejections under ICS2. They may only be used if incorporated into a clear and accurate product description.

**Stop words include:**

- Aid products
- Commercial
- Consumption
- Ensemble
- Fake
- Item
- Headwear
- Promotional
- Oddments
- N/A
- Miscellaneous


**Tips for Clear Customs Descriptions**

A good description is simple and specific. It should enable easy identification of the goods and accurate HS code classification. Avoid brand names, colors, serial numbers, or internal product codes. Descriptions that are too generic or overly technical are considered insufficient.

Your customs description should answer:

- What is the product?
- What are the product's essential characteristics?
- What is the product made from?
- How is it presented to customers?


**In the API:** Provide clear, specific descriptions in the `products.description` field when creating [international shipments](/apis/shipengine/docs/shipping/international).

### Harmonization Code Requirements

As of March 1, 2023, the European Union requires Harmonized System Codes (HS Codes) for **all items** in shipments entering EU member countries. This requirement is part of the EU's ICS2 reform and applies regardless of which carrier you use.

Failure to provide HS codes could result in:

- Shipment delays
- Fines or penalty fees
- Customs holds


**In the API:** Include HS codes in the `products.harmonized_tariff_code` field for each item. Learn more in the [International Shipping guide](/apis/shipengine/docs/shipping/international#products-object).

**Resource:** [Harmonized Tariff Schedule](https://hts.usitc.gov/) from the U.S. International Trade Commission.

### EU De Minimis Changes

**Effective July 1, 2026**, the European Union will remove the de minimis duty exemption for qualifying low-value imports. Previously, qualifying shipments valued at €150 or less could enter duty-free.

**New requirement:** Qualifying business-to-consumer (B2C) shipments valued at €150 or less may now be subject to a **€3 customs duty for each unique HS code** included in the shipment.

**This requirement applies to shipments that:**

- Originate outside the European Union
- Are shipped to an EU member country
- Have a declared value of €150 or less
- Are business-to-consumer (B2C) transactions


**In the API:**

For GB to NI shipments under the Windsor Framework, specify the movement type using the `movement_indicator` property:


```json
{
  "shipment": {
    "advanced_options": {
      "windsor_framework_details": {
        "movement_indicator": "b2c",
        "not_at_risk": true
      }
    }
  }
}
```

For general EU shipments, ensure accurate customs declarations with proper item values and HS codes.

**Related resources:**

- [Windsor Framework Guide](/apis/shipengine/docs/shipping/windsor-framework)
- [Advanced Options](/apis/shipengine/docs/carriers/advanced-options)
- [Tax Identifier Numbers - IOSS](/apis/shipengine/docs/shipping/tax-identifier-numbers#ioss-import-one-stop-shop)


## Brazil

All shipments to Brazil must include the recipient's Tax ID number on labels and customs documents. Shipments missing this information will be subject to return or disposal by Brazilian customs authorities.

### Required Tax IDs

**CPF (Cadastro de Pessoas Físicas)** - Individual Tax ID

- 11 digits long (9 base digits + 2 verification digits)
- Format: `123.456.789-10`
- Used for individual recipients


**CNPJ (Cadastro Nacional de Pessoas Jurídicas)** - Business Tax ID

- 14 digits long (12 base digits + 2 verification digits)
- Format: `123.456.789/0000-00`
- Used for business recipients


**In the API:** Add the recipient's tax ID to the `tax_identifiers` array:


```json
{
  "shipment": {
    "tax_identifiers": [
      {
        "taxable_entity_type": "recipient",
        "identifier_type": "tin",
        "issuing_authority": "BR",
        "value": "123.456.789-10"
      }
    ]
  }
}
```

**For CPF (Individual):** Include "CPF" prefix in the value: `CPF 123.456.789-10`

**For CNPJ (Business):** Include the business name: `123.456.789/1011-12 - Business Name`

**Related resources:**

- [Tax Identifier Numbers guide](/apis/shipengine/docs/shipping/tax-identifier-numbers)
- [International Shipping - Tax Identifiers](/apis/shipengine/docs/shipping/international#the-tax-identifiers-object)


## Germany

All manufacturers and retailers that sell or ship packaged goods to consumers in Germany must comply with Germany's **VerpackG (Packaging Act)**, which relates to the collection and recycling of packaging materials.

**Exemptions:** Packages sent through non-commercial activity, such as gifts or donations, do not need to follow the Packaging Act guidelines.

### Requirements for Online Retailers

1. **Register with LUCID:** Complete the [LUCID Packaging Register](https://www.verpackungsregister.org/en) to receive your identification number.
  - Consider appointing an authorized representative to handle registration
  - If no representative, register as a Producer
  - **Penalty for non-registration:** Up to €100,000 fine
2. **Update buyers:** Provide information on returns and recycling options (include in packing slips or terms and conditions)
3. **Add LUCID number to marketplaces:** Update your Etsy, eBay, and other marketplace accounts with your LUCID identification number


**In the API:** No special fields are required. Germany's Central Agency Packaging Register has internal systems that match outbound packages with your LUCID identification number automatically.

**Additional Resources:**

- [LUCID Packaging Register](https://www.verpackungsregister.org/en)
- [LUCID FAQ](https://www.verpackungsregister.org/en/foundation-further-information/faq)


## Mexico

As of January 2023, the Mexican Tax Authority adopted **Carta Porte requirements**, which mandate that all shipments to and within Mexico include a Package Description field that accurately describes the shipment contents. This is in addition to customs form item descriptions.

### Important Enforcement Dates

- **March 20, 2023:** UPS began requiring Package Description for all shipments to Mexico
- **August 1, 2023:** Mexican Tax Authority began enforcing Carta Porte requirements - non-compliant shipments subject to delays and penalties


### Package Description Requirements

- Maximum 35 characters
- Should summarize all contents of the parcel
- Must be accurate and specific


**In the API:** Provide a clear, concise description in the `customs.contents_explanation` field:


```json
{
  "shipment": {
    "customs": {
      "contents": "merchandise",
      "contents_explanation": "Cotton t-shirts and accessories"
    }
  }
}
```

If your customs item descriptions are already clear and under 35 characters, you can use the same text.

**Related resources:**

- [International Shipping - Customs Object](/apis/shipengine/docs/shipping/international#customs-object-properties)


## Saudi Arabia

All shipments to Saudi Arabia require the recipient's **Short Address code/National Address**. This requirement is mandatory for all residents, citizens, and companies operating inside Saudi Arabia.

### Short Address Format

A short address consists of **four letters and four numbers** representing:

- Region Code
- Branch Code
- Division Code
- Building Number


**Example:** `RJBA2442`

**In the API:** Add the recipient's Short Address code to `ship_to.address_line2`:


```json
{
  "shipment": {
    "ship_to": {
      "name": "Recipient Name",
      "address_line1": "123 Main Street",
      "address_line2": "RJBA2442",
      "city_locality": "Riyadh",
      "postal_code": "12345",
      "country_code": "SA"
    }
  }
}
```

**Resource:** Learn more about the [Saudi National Address](https://splonline.com.sa/en/)

## United Kingdom

All goods shipped to the UK are subject to **VAT regardless of value**. Prior to January 2021, only goods over £15 were subject to the 20% VAT.

These changes primarily affect shippers in the US, Canada, and Australia.

### VAT Responsibility by Sale Type

**1. E-commerce Marketplace Sales**

- The marketplace is responsible for collecting and remitting VAT to HMRC
- Sellers do not need EORI numbers for marketplace sales


**2. Direct-to-Consumer Sales (Outside Marketplace)**

- **DDP (Delivered Duty Paid):** No EORI required. Carrier bills you for tax per shipment.
- **DDU (Delivered Duty Unpaid):** EORI recommended. Set up EORI to proactively pay tax to HMRC and keep shipping costs low.


**3. Products Already in UK (e.g., Fulfillment Centers)**

- Seller responsible for accounting for VAT with HMRC


**In the API:**

For DDP shipments, set the `delivered_duty_paid` advanced option:


```json
{
  "shipment": {
    "advanced_options": {
      "delivered_duty_paid": true
    }
  }
}
```

Include EORI and VAT numbers in the `tax_identifiers` array as needed:


```json
{
  "shipment": {
    "tax_identifiers": [
      {
        "taxable_entity_type": "shipper",
        "identifier_type": "eori",
        "issuing_authority": "GB",
        "value": "GB123456789000"
      },
      {
        "taxable_entity_type": "shipper",
        "identifier_type": "vat",
        "issuing_authority": "GB",
        "value": "GB123456789"
      }
    ]
  }
}
```

**Resources:**

- [Apply for an EORI number](https://www.gov.uk/eori)
- [Register and pay taxes in the UK](https://www.gov.uk/register-for-vat)
- [UK.gov Import and Export Process](https://www.gov.uk/import-goods-into-uk)
- [Brexit Guide](/apis/shipengine/docs/guides/brexit)
- [Tax Identifier Numbers - EORI](/apis/shipengine/docs/shipping/tax-identifier-numbers#eori-economic-operators-registration-and-identification)
- [Advanced Options - Delivered Duty Paid](/apis/shipengine/docs/carriers/advanced-options)


## South Korea

All shipments to South Korea must include the recipient's **Personal Customs Clearance Code (PCCC)** on labels and customs documents. Foreign nationals without a PCCC can use their passport number instead.

Shipments missing this information will be subject to return or disposal by customs authorities.

**In the API:** Add the PCCC to the `tax_identifiers` array:


```json
{
  "shipment": {
    "tax_identifiers": [
      {
        "taxable_entity_type": "recipient",
        "identifier_type": "pccc",
        "issuing_authority": "KR",
        "value": "P123456789012"
      }
    ]
  }
}
```

**For foreign nationals using passport:** Use `identifier_type: "passport"` instead.

**Related resources:**

- [Tax Identifier Numbers - PCCC](/apis/shipengine/docs/shipping/tax-identifier-numbers#pccc-pre-clearance-customs-code)


## China

All shipments to China must include the recipient's **People's Republic of China Resident Identity Card (Resident ID)** number on labels and customs documents. Shipments missing this information will be subject to return or disposal by customs authorities.

**In the API:** Add the Resident ID to the `tax_identifiers` array:


```json
{
  "shipment": {
    "tax_identifiers": [
      {
        "taxable_entity_type": "recipient",
        "identifier_type": "tin",
        "issuing_authority": "CN",
        "value": "123456789012345678"
      }
    ]
  }
}
```

**Related resources:**

- [Tax Identifier Numbers guide](/apis/shipengine/docs/shipping/tax-identifier-numbers)


## Summary: Quick Reference

| Country | Requirement | API Field/Object |
|  --- | --- | --- |
| **Brazil** | CPF or CNPJ Tax ID | `tax_identifiers` array with `identifier_type: "tin"` |
| **EU** | HS Codes (all items)Clear customs descriptions€3 duty per HS code (≤€150, B2C) | `products.harmonized_tariff_code``products.description``advanced_options.windsor_framework_details.movement_indicator` (GB→NI) |
| **Germany** | LUCID Packaging Register | External registration (no API field required) |
| **Mexico** | Package description (Carta Porte) | `customs.contents_explanation` (≤35 chars) |
| **Saudi Arabia** | Short Address code | `ship_to.address_line2` |
| **United Kingdom** | VAT, EORI (for DDU), DDP option | `tax_identifiers` array`advanced_options.delivered_duty_paid` |
| **South Korea** | PCCC or passport | `tax_identifiers` array with `identifier_type: "pccc"` or `"passport"` |
| **China** | Resident ID | `tax_identifiers` array with `identifier_type: "tin"` |


## Related Resources

- [International Shipping Guide](/apis/shipengine/docs/shipping/international) - Complete guide to customs, products, and international shipments
- [Tax Identifier Numbers](/apis/shipengine/docs/shipping/tax-identifier-numbers) - Detailed information about VAT, EORI, IOSS, and other tax IDs
- [Windsor Framework Guide](/apis/shipengine/docs/shipping/windsor-framework) - GB to NI shipping requirements
- [Brexit Guide](/apis/shipengine/docs/guides/brexit) - Post-Brexit shipping requirements
- [Advanced Options](/apis/shipengine/docs/carriers/advanced-options) - DDP, movement indicators, and carrier-specific options
- [Create a Shipment](/apis/shipengine/docs/shipping/create-a-shipment) - How to create international shipments
- [Create a Label](/apis/shipengine/docs/labels/create-a-label) - How to generate international shipping labels