Enable Shopify Managed Markets DDP (Delivered Duty Paid) so duties and import taxes are collected at checkout for international orders
domain: shopify.dev · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
In-depth guide
Shopify GraphQL Admin API rate limits — the full failure-mode walkthrough related to shopify.dev, checked against official docs, with linked verified routes.
Steps
Go to Settings > Taxes and duties in the Shopify admin and enable 'Collect duties and import taxes at checkout' for the relevant market
Ensure all products have Harmonized System (HS) codes applied and country-of-origin set so Shopify can calculate accurate duty rates
Use a shipping carrier that supports DDP labels (e.g., DHL Express or DHL eCommerce) so Shopify can purchase Delivered Duty Paid labels from the admin
Verify the transaction fee (currently 0.5% for duty calculation) is accounted for in your margin model
Test with a buyer address in a target country and confirm duty and tax amounts appear as a line item at checkout before payment
After go-live, monitor the order's duty fields in the Admin GraphQL API Order object to reconcile collected amounts against remittance
Known gotchas
Managed Markets DDP coverage and carrier availability differ by destination country; not every country is supported, so check the eligibility list before enabling globally
As of August 2025, US de minimis no longer applies, meaning duties apply to all US imports regardless of shipment value — update your product HS code coverage accordingly
Turning on duty collection without complete HS codes causes checkout errors or falls back to estimated amounts, which can create reconciliation issues
Give your agent this knowledge — and 15,600+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?