GoatLabels GoatLabels
Into the EU's largest market. Paperwork first.

Shipping to Germany from the US: VAT, services, and customs


Four carriers, one customs form, one quote.

A parcel from the US to Germany is taxed under EU import rules, so the paperwork depends on whether VAT was collected at your checkout through an IOSS number or is collected from the buyer at the door, and every label needs a customs form either way.

Four carriers into Germany, quoted side by side

USPS hands to Deutsche Post for the final mile; UPS, FedEx, and DHL carry the parcel end to end and clear it through their own brokers.

UPS FedEx DHL USPS DHL: international
Four quotes One all-in price each.
No monthly fee on Free, up to 50 a month Pay per label, nothing else.
Customs form Generated with the label.

Customs details typed once, paid per label

Description, declared value, country of origin, and your IOSS number if you have one travel with the label. Top up with card, Apple Pay, Google Pay, ACH, or crypto and spend it label by label.

VisaMastercardAmerican ExpressApple PayGoogle PayBitcoinEthereumTether (USDT)
Prepaid Spent label by label.
No minimum A slow month on Free costs nothing.
Accepted voids credited Back to the balance.

Updated

Germany, route by route

Who pays VAT on a US parcel to Germany?

A parcel from the US to Germany is taxed under EU import rules, so the paperwork depends on whether VAT was collected at your checkout through an IOSS number or is collected from the buyer at the door, and every label needs a customs form either way. Germany applies the same three routes as the rest of the EU; what is specific to this lane is who delivers and how the border step is handled.

Decision VAT collected at checkout (IOSS) VAT collected at the door
Who collected the tax A marketplace's IOSS number if it collected for you, or your own IOSS registration if you sell direct and registered. Nobody yet. The delivering carrier assesses it on arrival and collects from the buyer, usually with a handling fee of its own.
What goes on the label The IOSS number, transmitted with the customs data so the parcel is not taxed twice. Send it on the wrong route and the buyer pays again. No IOSS number. The customs form's description and value are what the carrier assesses on.
What the buyer experiences The price they paid is the price. The parcel is delivered without a bill. A request to pay before delivery, sometimes days after the parcel landed. Say so at checkout or expect refusals.
Postal or express Either. USPS hands to Deutsche Post; UPS, FedEx, and DHL clear through their own brokers. The route is about tax, the service is about speed. Either, but express carriers contact the buyer directly and tend to resolve it faster than the postal stream.
Best for Marketplace sellers, and direct sellers with enough EU volume to register. Occasional direct sales where registering is not worth it, and higher-value goods outside the IOSS scheme.
What GoatLabels does Carries the IOSS number with the customs data, generates the form with the label, and debits the all-in rate from your wallet. Same customs form, same four-carrier quote, same wallet; the label simply carries no IOSS number.

VAT thresholds, the IOSS scheme, and carrier handling fees are set by the EU, the German tax authority, and the carriers, and change without notice. The routes above describe mechanics, not figures; the EU-wide version of this decision is on the shipping to the EU page.

What goes wrong on US to Germany parcels, and how do I avoid it?

German buyers expect delivery to be uneventful, and a parcel that arrives with a bill or sits at a Deutsche Post branch waiting for one is the opposite. Each failure below starts on the label.

The IOSS number went missing, or went on the wrong parcel

If a marketplace collected VAT at checkout, its IOSS number must travel with the customs data or the buyer is taxed a second time at the door. If nobody collected, no number belongs on the label. Sort every German order by which route it is on before the label prints.

A description the officer cannot classify

Merchandise, gift, and sample are not descriptions. Name the item in plain words, with the value you actually charged and where it was made. GoatLabels generates the customs form from the label details, so what you type once is what prints.

Buying the express premium on a parcel that did not need it

Deutsche Post's domestic network is dense and reliable, so the postal stream is a reasonable default for light, low-value parcels. Express earns its price on urgent or high-value orders. Quoting USPS beside UPS, FedEx, and DHL on the same screen makes the premium a number instead of a guess.

What a Germany label needs before it prints

  • A plain-word description of each item, its quantity, its value in the currency you charged, and its country of origin.
  • The IOSS number if VAT was collected at checkout, and no IOSS number if it was not.
  • The five-digit postal code, the street with the house number after it, and a phone number or email the carrier can use.
  • A decision on who pays at the door for orders outside the IOSS route, stated at checkout so the buyer is not surprised.
One German parcel, declared and gone

Type the details once. The customs form comes with the label.

Connect a store and Germany-bound orders land in the same To Ship queue as everything else, or bulk-import them from a CSV. Paste the order from a message or drop in a screenshot and Billy drafts the recipient, the parcel, and the plain-word customs description for you to confirm. Quote USPS, UPS and FedEx side by side, with DHL joining on this international lane, pick the service, and the label prints with the customs form generated from the same details, IOSS number included when the order carries one. The all-in rate you accepted is the exact amount that leaves your prepaid wallet.

1
Orders from anywhere
Store sync, CSV, message, or screenshot
maya_boutique

Hallo! 2x hoodies (M) 1x tee (L). Ship to: Maya R., Torstrasse 12, 10119 Berlin

Shopify
Synced into To Ship
TikTok Shop
Synced into To Ship
DM screenshot
Order
#1847
Customer
Maya R.
Items
2x Hoodie (M), 1x Tee (L)
Address
10119 Berlin
Drop the screenshot or paste the DM

Thirteen storefront connectors, bulk CSV import, DMs, and screenshots — one To Ship queue.

2 Billy Billy AI

Drafting the customs description in words a border can read.

Billy AI
  • Reads a DM, a voice note, or a screenshot into a recipient and a parcel
  • Fills in the recipient, the address, and the parcel details
  • Rate-shops USPS, UPS and FedEx at the all-in price, with DHL joining on this international lane
  • Hands the drafted label back for you to confirm
Drafted. Checked. Yours to confirm.
3
Clean label out
Bought from the wallet
Paid from your prepaid balance
Card, Apple Pay, Google Pay, ACH, or crypto
all-in
USPS
Label purchased
USPS Priority Mail International — all-in rate
all-in

No monthly fee on Free, up to 50 shipments a month. The customs form is generated with every international label, and tracking is pushed back to the store when it prints.

Where a Germany-bound order actually comes from.

Thirteen storefronts, one cross-border queue.

Shopify, WooCommerce, Amazon, eBay, TikTok Shop, Etsy, Walmart, BigCommerce, Squarespace, Wix, Square, Magento, and Temu sync into To Ship and get tracking pushed back when you print. Marketplace orders arrive with the marketplace's VAT route already decided; direct orders that came in by DM go into the same queue by paste, screenshot, or CSV.

Shopify logo Shopify
Etsy logo Etsy
WooCommerce logo WooCommerce
TikTok Shop logo TikTok Shop
Amazon logo Amazon
eBay logo eBay
Squarespace logo Squarespace
Wix logo Wix
Walmart logo Walmart
Shopify Plus logo Shopify Plus Soon
Square logo Square
BigCommerce logo BigCommerce
Magento logo Magento
Zapier logo Zapier Soon
NetSuite logo NetSuite Soon
Ecwid logo Ecwid Soon
Temu logo Temu
Shein logo Shein Soon
ChannelAdvisor logo ChannelAdvisor Soon
SkuVault logo SkuVault Soon
Zoho Inventory logo Zoho Inventory Soon
Patreon logo Patreon
What a Germany label needs, and what it should not cost.

Four carriers, a customs form,
and no monthly fee on Free (50 a month).

Cross-border labels are the ones most tools put behind a plan tier. Here the customs form, the all-in quote, and the wallet are the same for a Berlin parcel as for a domestic one.

One prepaid wallet,
no monthly fee on Free, up to 50 a month

Card, Apple Pay, Google Pay, ACH bank transfer, and crypto all top up the same balance, and every method buys identical rates, carriers, and features. Void a shipment and, after the carrier accepts the void, the credit lands back in the wallet, not on a statement three weeks out.

Wallet balance
$1,247.36 USD
AI

AI drafting for orders
that are not JSON

A DM from a buyer in Hamburg is not a structured order. Billy reads the message, the screenshot, or your spoken description and drafts the whole label from it, customs description included, for you to confirm.

Billy Billy LIVE
Where's the package to Maya?
It's in transit via UPS. Expected Friday, Aug 7.
UPS
1Z8923A6B05G4123456
In transit
Austin, TX → Dallas, TX
Ask Billy anything...

Pay as you go,
label by label

Fund the wallet, pay the carrier's all-in rate per label, and pay nothing in a month when nobody in Germany orders. Free has no subscription and no minimum for up to 50 shipments a month.

Shipment summary
UPS Ground $12.49
Insurance $0.75
Fuel surcharge $0.32
Total $13.56

USPS, UPS, FedEx, and DHL
in one quote

USPS, UPS, FedEx, and DHL quoted side by side into Germany, and the number on screen is the exact amount that leaves your balance. The postal option and the express options sit in the same list so the premium is visible before you commit.

Compare rates
UPS UPS $12.48
FedEx FedEx $13.22
DHL DHL $14.10
USPS USPS $11.79
Duties inside the quote where DDP applies

A REST label API
on the same wallet

REST and JSON, one Bearer header, idempotency keys so a retry cannot double-buy a label, and signed webhooks for tracking and label events instead of polling. The dashboard and the API spend the same balance.

POST /v1/shipments
{
"to": { "name": "Maya" },
"from": { "name": "Alex" },
"service": "ups_ground",
"label_format": "pdf"
}
Webhook delivered
GoatLabels mobile shipments queue with all-in carrier prices
Billy drafting a label from a pasted DM on mobile

Label ready

CL-1038 · 10119 Berlin

The packing table, not the desk

A German order from a DM is a valid input.

When a buyer in Berlin messages you a street with the house number after it and a five-digit postal code, you become the integration. GoatLabels takes the message itself, on the phone next to the tape gun, and drafts the customs form with it.

Paste the message or drop a screenshot — Billy pulls out the buyer, the address, the parcel, and the item description.
USPS, UPS, FedEx, and DHL come back as four all-in prices on one screen.
Customs forms are generated with the label, so an international parcel does not need a second screen.
Buy from the prepaid balance and print to a thermal printer through PrintNode or straight from the browser.
Hold the mic at the packing table and say the address — Billy drafts it and reads the rate back.
Hands full of packing tape

Talk to Billy, not to an import screen.

Packing a parcel for Germany is a two-hands job. Hold the mic, say who it is going to and what is inside, and Billy drafts the recipient, the customs description, and the parcel, rate-shops USPS, UPS and FedEx with DHL joining on this international lane, and queues the label against your prepaid balance. Afterwards it answers when the buyer asks whether the parcel has cleared.

goatlabels.io/dashboard/shipments — Billy
Billy reading back a parcel's tracking history over the purchased labels list

Listening

"Where's Maya's package?"

Cleared customs

CL-1039 · Munich · out for delivery

Plain English in — names, addresses, weights, carriers, services · nothing to import and nothing to map · reads the all-in rate back before a cent leaves the wallet · phone or browser.

All-in quotes

The quote is the debit.

The carriers on the same parcel, each an all-in number that is the exact amount leaving your prepaid balance. No platform fee is added on the way to Germany. If a carrier later re-weighs the parcel, the adjustment posts as its own dated ledger entry, and an accepted void credits the wallet rather than a card statement weeks later. Illustrative parcel, not a live quote.

CA → NY 2.6 lbs 12×8×4 in
USPS

USPS

Ground Advantage

2 to 5 days

$11.40

all-in · no surprises

Cheapest
UPS

UPS

Ground

1 to 5 days

$9.85

all-in · no surprises

FedEx

FedEx

Ground

1 to 5 days

$11.20

all-in · no surprises

Re-weighs posted as their own ledger line Accepted void → credit back to the wallet you funded Multi-currency display
Public API v1

A Germany lane with a developer behind it.

If your store already knows which orders are going to Germany and which VAT route they are on, let it buy the labels. REST, JSON, one Bearer header, customs items on the shipment, real idempotency keys so a retried request cannot buy two labels, and signed webhooks for tracking and label events instead of polling.

Create, rate-shop, and buy — three calls, no SDK required
Signed webhooks for tracking and label events instead of polling
Real idempotency keys — a retried request never buys two labels
Customs items on the shipment object — the form is generated server-side
Read the API docs Get an API key $0 monthly fee
curl https://api.goatlabels.io/api/v1/shipments
POST /api/v1/shipments
Authorization: Bearer sk_live_…
Idempotency-Key: ord_8421

{
  "to": { "name": "Joyce", "city": "Berlin", "country": "DE" },
  "parcel": { "weight": 2.6, "weight_unit": "lb" },
  "service": "fedex_intl_priority"
}
Pay per label, nothing monthly

No monthly fee. Pay as you go.

Most stores meet Germany as a trickle rather than a market: a handful of orders a month alongside the domestic volume. Nothing here charges extra for the border. Customs forms, four-carrier quotes, and the connectors are all there from the first label, and on Free the wallet only moves when a label is bought. Free covers 50 shipments a month; past that, Pro is one flat $40 monthly plan.

Pro

Most popular
$40 / month
Unlimited shipments on one flat $40 plan
Unlimited address validation
Billy AI on Telegram Telegram logo — check a parcel without opening the dashboard
API access on every plan

Rate by plan

illustrative
Free Pro

Pro: one flat monthly plan, unlimited shipments

Free

$0 / forever

A few German orders a month, with no subscription to keep open for them.

50 shipments a month, no monthly fee
USPS, UPS, FedEx, and DHL rate-shopped side by side on every parcel to Germany
Customs forms generated with every international label
Billy AI in the web app — paste, screenshot, or speak an order
Thirteen storefront connectors, bulk CSV import, and the REST label API

Billy is not a paid tier

The assistant that turns a pasted order into a customs description the border can classify runs in the web app on every plan.

Web, every plan Telegram logo Telegram, Pro

API on every plan

GET /api/v1/shipments

200 OK · plan: free

The dashboard and the API spend the same prepaid balance.

Compare on your own invoice

Put a real parcel through and compare the side-by-side rate against what that label costs you on

ShippoPirate ShipShipStation
No contracts No monthly fee Start in seconds
USPS UPS FedEx DHL

Label prices are quoted live from USPS, UPS and FedEx (plus DHL on international lanes) and shown as one all-in number — the same number that leaves your wallet. What German customs assesses and what a carrier charges to present it are theirs to set, not ours. Full pricing details

Who ships to Germany this way

Not every store needs an express account.

These are the sellers for whom the side-by-side quote, the generated customs form, and the pay-per-label wallet make the Germany lane simple. The ones who should keep a carrier contract are named on this page too.

Stores with a German trickle

TikTok logo A few orders a month, not a market

Prepaid

Volume that arrives a few parcels at a time fits a prepaid wallet better than a cross-border plan. Fund it, quote the four carriers when a German order lands, and pay nothing in the months when none do.

4 carriers in one account no monthly fee bulk print
goatlabels.io/dashboard/shipments
GoatLabels shipments queue with purchased labels

Marketplace sellers with German buyers

Etsy logo Amazon, eBay, Etsy, and the rest

Connect the storefronts that have connectors and handle the German order in the same queue as the domestic ones. The marketplace's IOSS number travels with the customs data instead of being typed into a second system.

One queue, connector or not

Order #1024 · pasted from a comment thread

Instagram logo

Sellers whose German orders arrive by DM

Messenger logo A street and a postal code in a message

hallo! can you ship the jacket to 10119 Berlin?
Label drafted · CL-1024

Sellers with a developer on call

Shopify logoWooCommerce logo REST and the dashboard, one balance

1

wallet behind the API and the dashboard

Real sellers, real words

What sellers say once the border stops being a project.

A video took off and I had 80 TikTok Shop orders by morning. I printed every label from my phone on the bus to the post office.
E

Early customer · TikTok

TikTok Shop seller

TikTok logo TikTok Shop
I run my Etsy shop from the kitchen. The AI reads the order, picks the carrier, the label prints. That's the whole workflow now.
E

Early customer · Etsy

Etsy maker

Etsy logo Etsy
The API is what every shipping API pretends to be. Idempotency that actually works.
S

Sasha R.

Staff engineer, marketplace

API user

Shipping to Germany from the US — FAQ

Do I need a customs form to ship to Germany from the US?
Yes. Every parcel from the US to Germany needs a customs declaration, whichever carrier you use. GoatLabels generates the customs form from the label details for every international label, so the item description, value, and country of origin you enter once are what prints.
Who pays VAT on a parcel to Germany?
It depends on the route. If a marketplace collected VAT at checkout, its IOSS number travels with the customs data and the buyer pays nothing at the door. If you sell direct and registered for IOSS, the same applies with your number. If nobody collected at checkout, the delivering carrier collects VAT and any duty from the buyer before delivery, usually with a handling fee of its own.
What is an IOSS number and do I need one to ship to Germany?
IOSS is the EU scheme for collecting VAT on lower-value imports at the point of sale. Marketplaces use their own number for the orders they collect on, and a direct seller with enough EU volume can register for one. If you sell occasionally and direct, you can ship without it; the buyer then pays at the door.
What is the cheapest way to ship to Germany from the US?
Usually a USPS international service, which hands the parcel to Deutsche Post for delivery through its dense domestic network. It is slower and carries less tracking than UPS, FedEx, or DHL, so it suits light, lower-value parcels. Quote all four on the same parcel to see the gap.
How long does shipping to Germany take?
It depends on the service and on customs. Each carrier publishes its own transit estimate per service, and the customs step sits inside it. Express services from UPS, FedEx, and DHL generally clear faster because the carrier's own broker handles the parcel; the postal stream is more variable, and a parcel waiting on a door payment waits longest.
Which carriers can I compare for Germany?
USPS, UPS, FedEx, and DHL, quoted side by side as all-in rates on every parcel, with the customs form generated for whichever one you pick.

The EU-wide version of this decision is on shipping to the EU. Also see shipping to the UK and the customs forms guide.

Test it on the next German order that lands.

Four carriers into Germany.
One customs form, no monthly fee.

Fund a wallet with card, Apple Pay, Google Pay, ACH, or crypto, put through the next Germany order you would have shipped anyway, and compare the all-in rates from USPS, UPS and FedEx, and from DHL on international lanes, against what that label costs you today.

No card required. No monthly fee on Free, up to 50 shipments a month.

Updated