Selling Overseas From India on Shopify Without Duty Surprises
Selling internationally from India looks straightforward on Shopify. Turn on a market, add a currency, start shipping. The part that decides whether it works is what happens when the parcel reaches customs, and that is determined by product data most Indian catalogs do not have. Get it wrong and your customer gets an unexpected bill at the door, refuses delivery, and you pay return freight on an international shipment.
What Shopify Markets gives you
Markets is how you manage different customer experiences based on location. Shopify's documentation describes managing "how different customers experience your store based on their location, customer group, retail location, or sales channel," with control over currency, language, domains, theme content, product availability, taxes and shipping per market.
That covers presentation and pricing. It does not automatically solve the customs question, which is where most cross-border problems actually originate.
DDP versus DAP, the decision that shapes everything
Two ways to handle import charges, and the choice affects your conversion rate more than your pricing does.
DAP, delivered at place. The customer pays duties when the parcel arrives. Cheaper for you and worse for them, because the total they agreed to at checkout was not the total they pay. Shopify's documentation notes this "may result in additional surprise charges."
DDP, delivered duty paid. You collect duties and import taxes at checkout, the carrier invoices you later, and the customer sees one final number. Shopify supports DDP labels through a specific carrier list: Canada Post for the US only, DHL Express, DHL Express Canada, and DHL eCommerce.
Read that carrier list carefully before planning around DDP, because if your India outbound logistics partner is not on it, your DDP options are narrower than the feature page suggests.
If you use Managed Markets, this choice may be narrowing
One update worth checking before you plan around DAP. On 11 August 2026 Shopify announced that Managed Markets "will stop supporting Delivered Duty Unpaid in all countries and regions where it supports Delivered Duty Paid," and that affected markets "will switch to duties collected at checkout."
Two caveats, both important. This applies to Managed Markets specifically rather than to every cross-border setup, so if you are not using it you are not affected. And Shopify's changelog entry does not state an effective date. Secondary coverage has pointed at late August, but that is reporting rather than Shopify's own word, so confirm the timing in your admin rather than planning around a date you read somewhere.
If it does apply to you, the practical effect is that the DAP option goes away and duties get collected at checkout by default. That is a better customer experience, but it changes your pricing, because a duty amount that used to be the customer's problem on delivery now appears in the total they see before they buy.
The US change that Indian exporters should know about
This one catches brands that started selling to the US years ago and never revisited the assumption. Shopify's documentation records that as of 29 August 2025, de minimis no longer applies and duties apply to all US imports regardless of value.
For an Indian brand shipping jewellery, apparel or home goods at 30 to 80 dollar order values, that removes the low-value exemption a lot of cross-border businesses were quietly built on. If your US pricing was set before that date and has not been reviewed, your margin per order is not what your spreadsheet says.
Other regions have their own thresholds. Shopify lists low-value goods taxes applying in Australia, New Zealand, Switzerland, Norway, the EU and the UK. It also identifies Canada, the US, Australia, New Zealand and South Africa as countries where duty calculations exclude shipping and insurance.
HS codes are the prerequisite nobody budgets for
Here is the mechanism that decides whether duty collection works at all. Shopify states that HS codes are required for all international orders, and that "If a product is missing an HS code, then calculations are based on the product's description and product category instead," with the description capped at 125 characters. Without an HS code, a description or a category, duties are not calculated.
Sit with that for a moment. If your catalog has no HS codes, Shopify falls back to guessing from a truncated description. A guess produces a duty estimate that may not match what customs actually charges, and the difference lands on somebody. Either your customer is surprised at the door, or you absorb the gap on a DDP shipment.
So the honest sequence for going cross-border is not turn on Markets, add currency, launch. It is assign HS codes and country of origin across your catalog, then turn on Markets. For a few hundred SKUs this is a real piece of work, and it belongs in the project plan rather than being discovered in week three.
Shipping configuration is moving
Worth knowing if anything custom manages your shipping rates. Shopify deprecated the merchant-owned delivery profile APIs effective 1 August 2026, including deliveryProfileCreate and deliveryProfileUpdate, directing developers to Contextual Product Feeds, app-owned delivery profiles, or Markets APIs.
Most merchants will not notice, since this is a developer surface. If you have a custom app or an agency-built integration that sets shipping rates programmatically, ask whoever maintains it whether it uses these APIs.
One practical note on assigning HS codes. You do not need to classify your whole catalog to start. Classify the products you will actually ship to that market first, which for most Indian brands is a few dozen SKUs rather than the full range, and get those right rather than getting everything approximately right. An incorrect HS code is worse than a missing one, because it produces a confident duty figure that customs then disagrees with.
What to get right before launching a market
- HS codes and country of origin on every product you will ship abroad. The prerequisite for everything else.
- A DDP or DAP decision per market, made deliberately. Not left as whatever the default was.
- Carrier confirmation. Verify your actual outbound partner supports what you are planning.
- Pricing that accounts for duty. Particularly for the US after the de minimis change.
- Returns policy for international orders. Decide in advance who pays, because international return freight can exceed the item value.
- Product data that survives translation. Materials, dimensions and care instructions matter more to a customs form than to a domestic shopper.
The unit economics nobody models before launching
Cross-border fails on arithmetic more often than on configuration. Before enabling a market, build the full cost of one order rather than comparing product margin.
Take a representative order and stack everything on it: product cost, international freight, duty and import tax, payment processing which is usually higher on cross-border transactions, packaging that survives a longer journey, and an allowance for returns and refused deliveries. Then compare that against the price a customer in that market will actually pay, which is set by local competitors rather than by your domestic pricing plus a markup.
Two things usually surface. Freight and duty are close to fixed per parcel, so low order values struggle and high order values are comfortable. And the refused delivery rate on DAP shipments is a real line item, not an edge case, because a customer hit with an unexpected customs bill frequently declines the parcel and you pay both directions.
This is the same discipline that separates profitable domestic COD from unprofitable COD, and Indian brands who have already done that work on RTO costs tend to get cross-border right faster, because they are used to costing the failure cases rather than the happy path.
Does Shopify Markets collect duties at checkout?
It can, if you are set up for DDP with a supported carrier and your products carry HS codes. Without HS codes, Shopify falls back to calculating from the product description or category, and if none of those exist duties are not calculated at all.
Do I need HS codes to sell internationally on Shopify?
Yes. Shopify's documentation states HS codes are required for all international orders. You can technically ship without them because the system falls back to descriptions, but the resulting duty estimates are less reliable, which shifts cost and customer experience risk onto you.
What is the difference between DDP and DAP?
Under DDP you collect duties and import taxes at checkout and the carrier bills you afterwards, so the customer pays one total. Under DAP the customer pays on delivery, which is cheaper for you and produces the surprise charges that drive refused deliveries.
Is cross-border selling worth it for a small Indian brand?
It depends far more on your average order value than on your size. Duty, international freight and return costs are largely fixed per parcel, so a Rs 1,500 order struggles to absorb them while a Rs 8,000 order absorbs them comfortably. Test with one market and honest unit economics before building a multi-market setup.
How does GST work on export orders from India?
Exports are treated differently from domestic sales for GST purposes and the paperwork route you choose affects your working capital, so this is a question for your CA rather than your agency. What we handle is making sure your store records the data your accountant needs. Our notes on GST setup on Shopify cover the domestic side.
Get your cross-border setup reviewed
Free readiness check. Email hello@exactwhy.com with subject "Cross border" and your store URL plus the markets you are targeting. We tell you what proportion of your catalog has HS codes, whether your DDP plan matches your carrier, and where your pricing is exposed. We respond within 4 hours.
Paid setup, Rs 50,000 to Rs 2 lakh. We assign HS codes and country of origin, configure markets, currencies and shipping, set up duty collection where it applies, and test the full path with real orders before you announce anything.
Ongoing Shopify development, Rs 20,000 to Rs 50,000 a month. Including keeping duty and tax configuration current as thresholds change, which they do.
The brands that do well selling abroad from India are not the ones with the most markets enabled. They are the ones who priced one market correctly, got the customs data right, and only then opened a second.