Guide

How to choose a duty calculation API for cross-border ecommerce

Honest provider comparison across Zonos, Shopify Markets DDP, Easyship, Passport, Avalara, and Tandom. Pricing, integration, accuracy, AD/CVD coverage.

Updated 13 min readSkip to the comparison table
Share:

TL;DR

  • Six options in the cross-border duty calculation market today: Zonos, Shopify Markets DDP, Easyship, Passport, Avalara CrossBorder, and Tandom. Pricing entry points range from a free tier (Easyship, Tandom) to $2,500/yr minimums (Zonos's Shopify app). The right choice depends on volume, platform, AD/CVD coverage needs, and whether you want DDP carrier remittance or just the duty math.
  • Below 500 monthly cross-border orders, no API is justified. Manual MSRP markup based on your most-shipped HTS bracket works fine. The integration time you'd spend wiring up a checkout extension is better spent elsewhere.
  • Between 500 and 5,000 monthly orders, API at checkout usually wins on unit economics. Pick the provider that integrates with your stack and covers your AD/CVD exposure.
  • Above 5,000 monthly orders, mixed strategies work: an API for the long tail, DDP carrier for high-value lanes where the discrepancy guarantee buys you out of chargeback risk.
  • Vendor-published accuracy claims are unreliable. Build a hand-classified gold set of 100 to 200 SKUs from your catalog and run a pilot against each finalist provider before committing.

Criteria that actually matter

Most provider websites lead with logos and customer counts. Those don't predict whether a provider will work for your catalog. The criteria below do.

Pricing transparency

Whether the provider publishes its pricing without a sales call. Shopify Markets DDP (0.5% per international transaction), Zonos's Shopify app ($2,500/yr + $2/order + 10% of duties), and Passport (5% deferment fee on duty + tax) publish numbers. Easyship publishes tier names with quotas; specific overage rates require a quote. Avalara CrossBorder is fully opaque, which is a friction signal regardless of the underlying quality.

Integration breadth

Shopify-only (Shopify Markets DDP, Zonos's Shopify app), or multi-platform with REST API access (Easyship, Passport, Avalara, Tandom). If you're on Shopify Plus and committed, native integrations save engineering time. If you're headless or run multiple storefronts, API-first providers reduce long-term lock-in.

AD/CVD coverage

Antidumping and countervailing duty rates can run 25% to 200%+ on top of the regular duty stack. Most cross-border duty APIs designed for apparel and consumer goods skip AD/CVD entirely because their target catalogs don't trigger it. If your catalog includes steel hardware (7318.x), fasteners, aluminum extrusions (7610.x), hardwood plywood (4412.x), ceramic tile (6907.x), solar panels (8541.x), ball bearings (8482.x), or wooden cabinets (9403.40), the AD/CVD risk is real and the provider's coverage matters.

Section 122 stacking correctness

The 10% Section 122 surcharge effective February 24, 2026 stacks on MFN, Section 301, and AD/CVD; does NOT stack on Section 232; and is zeroed out for USMCA-originating goods under 9903.03.07/.08. Test each provider's behavior on a USMCA-originating SKU and a Section 232 derivative SKU before committing. Wrong stacking logic appears as systematic over-quote (collects Section 122 on USMCA goods that should be zeroed) or under-quote (misses S122 entirely).

DDP carrier handoff

A duty calculation API returns the landed cost; the merchant displays it and remits via their own broker or relies on carrier-collected at delivery. A DDP carrier program (Zonos, Passport, Shopify Markets, DHL Express) handles remittance through the carrier's import operation. DDP shifts the customer-experience risk (refused packages, chargebacks) to the carrier; pure-API approaches keep that risk on the merchant. Most operators run a hybrid: API for the long tail, DDP for high-value lanes.

Free tier or pilot

Whether you can test against your own catalog before paying. Easyship and Tandom carry public free tiers. Zonos, Shopify Markets, Passport, and Avalara expect a paid commit. Most will run a pilot of 50 to 100 SKUs against a gold set on request; ask explicitly for the pilot before committing to annual pricing.

Provider comparison

Six providers, side by side, sourced from each provider's own pricing pages where published. Verified 2026-05-07.

ProviderPricing entryFree tierIntegrationAD/CVDDDP guarantee
Zonos (Shopify app)$2,500/yr Standard + $2/order + 10% of dutiesNoShopify Custom Storefront, DHL/FedEx/UPS/USPSLimitedYes (Standard+)
Shopify Markets DDP0.5% per international transactionNoShopify-only, nativeNoneImplicit
EasyshipFree → Plus → Premier → Scale (quotas + overage)Yes (limited)REST API, 550+ carrier services, multi-platformNoneNo (estimate only)
Passport5% deferment fee on duty + tax (rest custom)No100+ platforms, DDP carrier modelLimitedYes (carrier model)
Avalara CrossBorderCustom annual contract (opaque)NoWooCommerce, ERP, marketplacesYes (full)No
TandomFree tier; paid tiers per callYesREST API on any cart, MCP serverYes (full)No (calculator, not DDP carrier)

Pricing data current as of 2026-05-07; vendor pricing pages change frequently, verify directly with the vendor before committing.

Decision by use case

Four common ops profiles, with the provider that typically fits each.

Shopify-only DTC, small to mid volume

For a Shopify Plus brand under 5,000 monthly cross-border orders with apparel or consumer goods (no AD/CVD exposure): Shopify Markets DDP. The 0.5% per-transaction fee is the lowest overhead, native integration is zero engineering cost, the implicit DDP guarantee covers the customer-experience risk. Skip the third-party apps until the catalog grows beyond Shopify Markets's coverage.

Multi-platform mid-volume

For a brand on BigCommerce, WooCommerce, or headless (multiple storefronts) at 1,000 to 10,000 monthly orders: Easyship or Tandom. Easyship's REST API plus 550+ carrier services covers the full label-and-rate stack; Tandom's API is duty-only (no carrier integration) and is cheaper per call but doesn't ship labels. Pick Easyship if you want the carrier integration; pick Tandom if you already have shipping handled and just need accurate duty math including AD/CVD.

API-first, build-your-own-checkout

For technical teams running custom checkout (Next.js, custom React, etc.) who want full control: Tandom for the duty math, Passport if you want a DDP carrier program layered on top. Tandom's API is REST plus an MCP server for AI-agent integration; Passport's API plus carrier model handles the actual remittance.

Enterprise compliance, full AD/CVD coverage

For brands importing AD/CVD-adjacent SKUs at scale (steel hardware, fasteners, aluminum extrusions, plywood, ceramic tile): Avalara CrossBorder or Tandom. Both carry full AD/CVD coverage; Avalara has deeper enterprise integration history (ERP, marketplace plugins) but opaque pricing; Tandom is more API-first with published rates. Run a pilot on a 100-SKU gold set for both before committing.

We don't recommend this if:

You ship under 500 monthly cross-border orders. No duty calculation API is justified at that volume. Pick a per-SKU markup that covers the worst-case duty plus fees in your most-shipped HTS bracket, bake it into MSRP, and skip the integration. The engineering time you'd spend wiring up a checkout extension is better spent on conversion optimization, customer support, or anything else. Revisit when monthly volume crosses 500 or when duty variance starts showing up materially in the P&L.

Common pitfalls

The mistakes that cost the most when picking among providers.

Letting the sales cycle drag past 30 days

Enterprise vendors (Avalara, Passport at scale) have sales cycles measured in weeks. A 90-day evaluation costs you the duty exposure in the meantime, which on a 1,000-order/month Shopify catalog runs $30,000+ in absorbed duty per quarter while you wait. Real cost: $30,000+ per quarter in absorbed margin while procurement deliberates. Set a 30-day deadline at evaluation start; if procurement isn't done by then, default to the fastest-to-integrate option (Shopify Markets DDP for Shopify-only, Tandom or Easyship for multi-platform).

Missing the per-order overage

Easyship's free tier and Tandom's free tier both carry monthly call quotas. Above the quota, the per-call overage rate is higher than the next paid tier's per-call rate. Brands that drift past the quota mid-month wake up to surprise invoices. Real cost: $400 to $2,000 in surprise per-month overage on a brand that crossed quota by 20%.Audit your projected call count (each cart-page render that touches duty plus each cart update is a call) before committing to a tier.

Trusting vendor-published accuracy claims

Every vendor publishes a "98% accurate" or "90%+ top-1 accuracy" benchmark. Their test sets aren't standardized; the numbers aren't comparable across vendors and rarely reflect your specific catalog. Real cost: systematic mis-classification on your edge cases costs $X per mis-classified SKU per month, compounded by the volume that SKU ships. Build your own gold set (100 to 200 SKUs hand-classified by a broker) and benchmark each finalist against it.

Skipping the AD/CVD test on a catalog with steel or aluminum

A SKU at HTS 7318.15.50.90 (steel screws) might be subject to a 25% antidumping duty on top of the 5.7% MFN rate plus Section 232 plus Section 122. A duty API that ignores AD/CVD (Easyship, Shopify Markets) returns the MFN+S232+S122 total and misses the AD/CVD layer entirely. Real cost: customer is charged 33% at checkout, carrier collects an additional 25% on delivery, customer files chargeback. Test every provider on a known AD/CVD-flagged SKU during evaluation.

Treating DDP guarantee fine print as boilerplate

DDP guarantees (Zonos, Shopify Markets) cover the discrepancy between displayed and actual duty, but with carve-outs. Zonos's guarantee applies only to Zonos-classified orders shipped via DDP-eligible carriers; BYO HTS classifications break the guarantee. Real cost: a brand that classified its own SKUs and used Zonos only for the calc layer assumed the guarantee covered them; CBP collected a different amount; Zonos didn't cover the variance because the BYO classification voided the guarantee. Read the fine print of the guarantee before committing.

Wrong Section 122 stacking on USMCA goods

USMCA-originating goods from Canada and Mexico are zeroed out at Section 122 under HTSUS 9903.03.07 and 9903.03.08. A provider whose stacking logic applies Section 122 universally over-quotes USMCA origin SKUs by 10%. Real cost: your USMCA-originating apparel line is over-quoted at $5 per order; on 800 monthly USMCA orders that's $4,000/month in over-collection until the customer-service queue figures out why returns are spiking. Test each provider on a USMCA-originating SKU during evaluation; the calc must zero Section 122 for the USMCA case.

Not abstracting the duty call behind your own backend

Brands that wire a vendor's SDK directly into their checkout extension lock themselves into that vendor. Switching costs jump from "swap the provider integration behind a single backend endpoint" to "rewrite every cart-page interaction." Real cost: a 3-person eng team burning a 6-week sprint to migrate from Provider A to Provider B because the duty call was scattered across a dozen frontend components. Always abstract: your front-end calls your backend, your backend calls the vendor.

Ignoring rate-change feeds on Section 232 + 301

Trade-policy rates move on a CSMS message cadence. Section 232 and Section 301 lists shift; rates added or modified silently break duty calculations baked into MSRP markups or stale provider responses. Real cost: the April 6, 2026 Section 232 derivative-content reset moved rate logic for thousands of HTSUS codes. Brands without a rate-change feed under-collected for weeks. Subscribe to the relevant CSMS list at content.govdelivery.com or use a provider with rate-change webhook support.

Glossary

Duty calculation API
A REST or GraphQL endpoint that takes HTS code, country of origin, declared value, and entry date, and returns the layered duty amount (MFN, Section 232, Section 301, Section 122, AD/CVD, MPF, HMF). Cheaper than a DDP carrier program; the merchant handles remittance separately.
DDP (Delivered Duty Paid)
Incoterm under which the seller (or seller's carrier) handles duty remittance to CBP at entry. The customer pays once at checkout; no surprise at delivery. DDP shifts customer-experience risk to the carrier in exchange for a service fee.
Deferment fee
The fee a DDP carrier or aggregator (Passport, Zonos) charges on top of the actual duty for handling remittance. Passport publishes 5% deferment on duty + tax; Zonos charges 10% of duties collected.
DDP guarantee
A vendor commitment to cover the discrepancy between displayed landed cost at checkout and the actual duty CBP collects. Carries fine-print carve-outs (carrier eligibility, vendor-classified vs BYO HTS, jurisdictional limits).
Free tier quota
The monthly call count included in a provider's free tier. Above the quota, overage rates apply at higher per-call cost than the next paid tier. Easyship and Tandom both offer free tiers with quotas; Easyship publishes call limits per tier, Tandom's quota varies by use case.
Section 122
10% temporary import surcharge under 19 USC 2132 effective February 24, 2026. Capped at 15% ad valorem and at 150 days absent legislation, so it terminates 12:01 a.m. EDT July 24, 2026 unless extended. Stacks on MFN, Section 301, and AD/CVD; does not stack on Section 232. Zeroed out for USMCA-originating goods under 9903.03.07/.08.
AD/CVD coverage
Whether a duty API includes antidumping and countervailing duty rates in its returned total. Most cross-border DTC APIs ignore AD/CVD entirely; Avalara CrossBorder and Tandom carry full coverage.
Gold set
A hand-classified set of 100 to 200 SKUs from a brand's catalog used to evaluate provider accuracy. Run each finalist provider against the gold set and measure top-1 HTS accuracy plus duty-amount accuracy.
Pilot
A free or low-cost evaluation period (typically 50 to 100 SKUs) most providers will run on request before signing. Always ask for the pilot before committing to annual pricing.
Stacking logic
How a duty calculator combines layers (MFN + S301 + S122 + AD/CVD). Wrong stacking logic appears as systematic over- or under-quote on specific SKUs. Test each provider on edge cases (USMCA-originating, S232-derivative, AD/CVD-flagged) during evaluation.

FAQ

High-intent questions DTC ops, technical leads, and finance teams ask most often when picking a provider.

What's the cheapest duty API option for a Shopify store?
Easyship's free tier is the cheapest entry point with quotas; Shopify Markets's native DDP at 0.5% per international transaction is the cheapest at small per-transaction count if you're already on Shopify Plus. Below ~500 monthly cross-border orders neither overhead is justified; absorb duty into MSRP and skip the API. Above ~5,000 monthly cross-border orders the per-transaction fees compound and a flat-rate or self-built integration starts to win.
Does Zonos guarantee landed cost?
Yes, on the Standard and Premium tiers of their Shopify app. The guarantee covers the discrepancy between the displayed landed cost at checkout and the actual duty CBP collects at entry, paid by Zonos out of their 10% of-duty fee. Read the fine print: the guarantee applies only to orders shipped via DDP-eligible carriers (DHL Express, FedEx, UPS, USPS) and only when the HTS classification was generated by Zonos itself (not BYO classifications). Self-classified orders do not carry the guarantee.
What about AD/CVD on the duty API?
Most cross-border duty APIs ignore antidumping and countervailing duty entirely. Their pricing model assumes apparel and consumer-goods catalogs where AD/CVD scope is rare. If your catalog includes steel hardware, fasteners, aluminum extrusions, plywood, ceramic tile, solar panels, ball bearings, or wooden cabinets (any of the high-volume AD/CVD-adjacent HTS families), pick a provider with full AD/CVD coverage. Avalara CrossBorder and Tandom carry it; Zonos and Passport carry it partially; Shopify Markets DDP and Easyship don't.
How do I evaluate accuracy across providers?
Build a hand-classified gold set of 100 to 200 SKUs from your catalog. Run each provider against the same gold set; measure top-1 HTS accuracy, duty-amount accuracy (does the layered duty match what CBP would collect), and edge-case behavior (Section 232 derivatives, Section 301 lists, AD/CVD-flagged HTS). Most providers will run a free pilot for 50 to 100 SKUs; ask for it. Vendor-published accuracy claims are unreliable because the test sets aren't standardized.
What's the difference between a duty calculation API and a DDP carrier program?
A duty calculation API returns the landed cost (duty, fees, taxes) for a given HTS plus origin plus value plus date; the merchant displays it at checkout and remits separately or relies on the customer to pay carrier-collected duty at delivery. A DDP carrier program (DHL Express Worldwide, FedEx Cross Border, UPS Worldwide, Passport, Zonos's DDP layer) handles the actual remittance to CBP via the carrier's import operation, charging the merchant a service fee plus the duty. APIs are cheaper and more flexible; DDP programs shift the customer-experience risk to the carrier in exchange for a premium.
Can I switch providers mid-year without breaking my checkout?
Yes, with planning. The cleanest pattern is to abstract the duty call behind a single backend endpoint that your checkout extension calls, and swap the provider integration behind that endpoint. Most providers' response shapes differ in field names but carry the same fundamentals (HTS, MFN rate, surcharges, MPF, HMF, total). Map them to a common internal shape so the front-end doesn't care which vendor is in flight. Plan for the gold-set re-test on the new provider before cutting traffic; vendor accuracy can shift by single-digit points across the same SKU mix.
Do these providers handle the Section 122 surcharge correctly?
Most started carrying it within a few weeks of the February 24, 2026 effective date, but some lagged. The 10% Section 122 surcharge stacks on MFN, Section 301, and AD/CVD; it does NOT stack on Section 232, and several Section 122 carve-out codes (9903.03.02 through 9903.03.11, including USMCA Canada/Mexico under 9903.03.07/.08) zero out the surcharge for specific scopes. Test each provider's behavior on a USMCA-originating SKU and a non-USMCA-originating SKU; if the USMCA case isn't zeroed out at Section 122, the provider's stacking logic is wrong.
How does pricing work for free-tier APIs at scale?
Free tiers carry monthly call quotas (Easyship's free tier is in the low thousands of calls). Above the quota you pay overage rates that can be substantially higher than a paid tier. The economics flip around 5,000 to 10,000 monthly calls depending on the vendor; above that count, the paid tier's lower per-call rate beats the overage. Look at the actual call count your checkout produces (each cart-page render that touches duty plus each cart update is a call) before committing.
Share: