Package Held at Customs: Reply Templates for Sellers
When a customer emails about a package held at customs, reply fast, tell them what the tracking says, tell them what you can’t control, and don’t promise a date. Customs timing is the part of the trip that you and your print-on-demand supplier control least.
Below are four templates for the four situations I see most: a plain hold, a duties request, a document request, and a package returned after a refusal. After them is a short list of what you control and what you don’t.
What to check before you reply
Open the Shopify order and the tracking page first. You want three things:
- The latest scan and its date.
- Whether the status mentions duties, payment, or documents.
- The destination country and the shipping address on the order.
The status decides which template fits. A vague “held” scan is template 1. A scan asking for payment is template 2. A scan asking for information or paperwork is template 3. A “returned” or “refused” scan is template 4.
If the customer is just asking where the order is and nothing mentions customs, use the where is my order templates instead.
Template 1: the package is held at customs
Use this when tracking shows the parcel is in customs and nothing is being asked of the customer.
Subject: Your order [Order Number] is with customs
Hi [First Name],
Thanks for checking in. Your order [Order Number] is currently held at customs in [Country]. The latest tracking update is “[Exact Tracking Status]” on [Date].
Customs clearance is handled by the authorities in your country, so we can’t control how long it takes. Many parcels clear without any action from the customer, but if the carrier asks you for something, replying quickly can help.
Here is your tracking link: [Tracking Link]. If the status asks you for anything (a payment, a document, or a phone number), please reply and let me know right away so I can help.
If there is no movement by [Date, e.g. 7 days from now], reply to this email and I’ll contact the carrier for you.
[Your Name]
The last paragraph matters. It gives the customer a date to come back on, and it’s a date you chose, not a promise about clearance.
Template 2: the customer is asked to pay duties
Use this when tracking or a carrier notice says duties or import taxes are due.
Shopify’s own help page says duties charged at checkout are estimates: “Charges for duties and import taxes are estimates based on the available information” (Shopify Help Center). It also says inaccurate information “might result in additional duties being charged to the customer upon delivery.” So even a store that collected duties at checkout can have a customer asked for more.
If you collect an estimate at checkout, ask your supplier whether your orders ship on DDP labels. If they don’t, a customer who already paid an estimate may be asked to pay again on delivery, and that’s the email you’ll get.
Subject: Import charges on order [Order Number]
Hi [First Name],
The carrier has asked for import duties or taxes on your order [Order Number] before it can be delivered. These charges are set by customs in [Country], not by our store.
[If duties were not collected at checkout:] Import charges are not included in the price you paid at checkout, and they are billed by the carrier or customs office in your country.
[If duties were collected at checkout:] We included an estimate of import charges at checkout. Customs can calculate a different final amount, so the carrier may still ask for a payment.
The carrier’s payment instructions are here: [Tracking or Carrier Link]. Please pay through the carrier’s official site or the notice that came with your delivery, then reply here so I can keep an eye on the tracking.
If the amount looks wrong to you, send me a screenshot of the notice and I’ll look into it.
[Your Name]
Pick one of the two bracketed paragraphs and delete the other. Do not tell the customer an amount unless the carrier notice says it.
Template 3: customs needs documents or details
Use this when the status says customs needs information, an ID number, a phone number, or a corrected address.
Subject: Action needed on order [Order Number]
Hi [First Name],
The carrier has flagged your order [Order Number] because customs in [Country] needs more information: “[Exact Wording From the Tracking Status]”.
Could you please check the carrier’s notice or tracking page and send the requested details to the carrier directly: [Carrier Contact Link]. If you’re not sure what they need, forward me the notice and I’ll help work out what to send.
I’ve also checked the delivery address on your order: [Address on Order]. If anything there is wrong or missing (apartment number, postal code, phone number), tell me now and I’ll pass it on.
Please reply once you’ve sent the details so I know to follow up with the carrier.
[Your Name]
Check the address yourself, because a wrong or incomplete address can cause a failed delivery. If the order has not shipped yet, you can still fix it (see how to change a Shopify shipping address before it ships).
Template 4: the package was returned after a customs refusal
Use this when the parcel was refused or left unclaimed at customs and is heading back, or has come back. First decide what you’re willing to do, because the money question is yours.
One customs-specific point: if the original duties went unpaid, a reship may trigger the same import charges again. Say so in your reship terms so the customer isn’t surprised twice.
Subject: Your order [Order Number] was returned
Hi [First Name],
Your order [Order Number] was not delivered. The carrier reports that it was [refused / not collected / returned after a customs issue] on [Date], and it is being sent back.
Here are your options:
- Reship: [Describe your terms, e.g. “I can send it again if you confirm the address and agree to cover import charges on delivery. The same charges may apply again on the new parcel.”]
- Refund: [Describe your terms, e.g. “I can refund the order minus the original shipping cost.”]
Reply with the option you prefer and the delivery address you want to use, and I’ll take care of it.
[Your Name]
Decide your terms before you send this. Your supplier’s reshipment rules may not match what you promise a customer. Printify’s terms put reshipment and cancellation costs on the merchant when delivery is incomplete because of an invalid or incorrect address (Printify terms of service). That clause covers addresses. The terms I read don’t mention customs, import duties, or refused parcels at all, so ask your supplier directly before assuming a refused parcel is treated the same way.
For the full flow after a return, see package returned to sender: what to reply and reship. If you issue a refund, handling refund requests on Shopify covers how to do it without losing more than you need to.
What you control and what you don’t
| You control | You don’t control |
|---|---|
| Whether you try to collect duties at checkout | How long customs holds a parcel |
| Product data such as HS codes | The final duty amount |
| Which shipping method you choose (or, for POD, which supplier shipping option) | Whether the customer pays or refuses |
| What you tell customers on the product page | Customs requests for information |
| Your reship and refund terms | The carrier’s handling of a refused parcel |
A few of these deserve detail.
Collecting duties at checkout. Shopify lists requirements a store must meet before it can collect duties and import taxes at checkout (Shopify Help Center). Three apply to most stores:
- If your store uses shipping labels, “then you must use a shipping carrier that supports DDP labels.”
- You can’t use Shopify Fulfillment Network.
- Your products need HS codes.
Most POD stores don’t buy labels in Shopify, so the label condition may not apply to you, but the check is still worth making. Shopify tells sellers to “Confirm that your shipping carriers and third-party integrations support delivered duty paid (DDP).”
Stores that can’t collect duties. Shopify says such a store “can use a third-party app to calculate duties and import taxes” (Shopify Help Center).
Fees. Shopify says “A transaction fee applies to orders that have duties and import taxes calculated.” When I checked in October 2026, the page described the fee as temporarily 0.5% for all merchants from February 2, 2025, with standard rates of 0.85% (Shopify Payments) and 1.5% (other gateways). Confirm the current rate on the same page before you price it in.
Supplier terms. Printify’s terms say users “are responsible for paying any and all applicable taxes” (Printify terms of service). Read what your own supplier says about taxes, and don’t tell customers it’s covered unless it is.
What to put on your product pages
Many customs emails can be avoided with one clear line before checkout. If you ship internationally and don’t collect duties, say so:
International orders may be charged import duties or taxes by the destination country. These are not included in our prices and are paid by the buyer to the carrier or customs.
If you do collect an estimate at checkout, add a sentence that the final amount can differ. That matches Shopify’s own wording about estimates and saves you the angry email later. For wider ideas on cutting these emails, see how to reduce WISMO tickets on your Shopify store.
When to escalate to the carrier
Reply to the customer first, then contact the carrier when:
- The tracking has not changed by the date you gave the customer.
- The status asks for something the customer says they already sent.
- The parcel is marked returned and the customer never refused it.
When you contact the carrier, send the tracking number, the order date, the destination address, and the exact status wording. If the parcel is clearly gone, move to the lost package templates. For general supplier delays, POD shipping delays: 4 email scripts has the wording.
Handling the volume
In my stores, customs holds tend to arrive in clusters: one carrier issue, then a dozen anxious emails. Every one needs the order and tracking lookup, then the right template, written in your voice.
LzyReply handles that part. You forward your support address, it looks up the customer’s Shopify order and tracking, and it drafts a reply in your store’s brand voice for you to approve or edit. It reads Shopify order data only. It doesn’t connect to suppliers like Printful or Printify, and it can’t change or cancel a supplier order or issue refunds. Those stay with you.
If your stores are mostly POD, customer support for print-on-demand stores covers the wider setup.
Frequently asked questions
Should I refund an order that is held at customs?
Not at first. A hold is not a loss, and many customers just want an update. Send the hold template, set a follow-up date, and talk refund or reship only if the parcel is returned or clearly lost.
Who pays import duties on an international order?
It depends on how your store is set up. If you don't collect duties at checkout, the customer may be asked to pay on delivery. Tell customers on the product page so a request doesn't surprise them.
What should I do if a customer refuses to pay duties?
Explain that the charges come from customs in their country, not your store. If they still refuse, the parcel may be returned, so offer a reship on terms you set or a refund minus shipping.
When should I contact the carrier about a customs hold?
Contact the carrier when tracking hasn't moved by the date you promised the customer, when it asks for something the customer already sent, or when it shows returned and the customer never refused it.
Customs-hold emails, drafted for you
LzyReply pulls the Shopify order and tracking for each forwarded email and drafts a brand-voice reply. You approve it with one click before it sends.
Start your free trial on Shopify7-day free trial, $29/month after. Not on Shopify? Start here.