7 min read

The De Minimis Exemption Is Suspended: What Checkout Developers Need to Change

Parcels on a conveyor belt each being inspected under a lamp at a customs checkpoint
Low-value parcels that used to pass through duty-free now go through a formal duty calculation.

Who is affected and why it matters

If you build checkout, cart, or landed-cost features for anyone shipping goods into the United States, this one is yours. For years a lot of cross-border ecommerce code carried a quiet assumption: if the order is small enough, US duty is zero. That assumption came from the de minimis exemption in 19 U.S.C. 1321, and it no longer holds.

The exemption is suspended for every mode of transport, including mail. Any code path that skips the duty lookup for low-value orders is now producing wrong quotes. Your customer either gets a surprise bill at the door, or your merchant eats a cost they never priced in.

Importers and customs brokers feel it too. Shipments that once moved with minimal paperwork now need an entry type that carries duty, and the postal channel has a new process of its own.

What the de minimis exemption was

The de minimis rule let a single person import goods, up to a statutory value threshold per day, without paying duty or taxes and with simplified entry. Most people knew it as “Section 321.” Marketplaces and direct-to-consumer brands built whole fulfillment models around it: ship each order separately from abroad, stay under the threshold, skip duty.

For developers, the rule usually showed up as one if statement near the top of the duty function.

# The line that is now wrong
return 0 if order.customs_value < DE_MINIMIS_THRESHOLD

What changed, with the official sources

Here is the sequence, in plain terms. Each step links to the primary document.

The suspension now covers every mode

On June 24, 2026, CBP published two interim final rules in the Federal Register that suspend the exemption under 19 U.S.C. 1321(a)(2)(C) indefinitely:

  • Non-postal shipments: express couriers, freight, and every mode other than mail.
  • Mail shipments: this rule also creates a new postal informal entry process for mail shipments valued at or below $2,500.

The suspension was not tied to the IEEPA tariffs. The Supreme Court held in February 2026 that IEEPA does not authorize tariffs, and IEEPA duties were ended by executive order, but a separate order kept the de minimis suspension in place. If you are cleaning up old IEEPA logic, do not take the de minimis check out along with it. Our IEEPA page covers that history.

Some postal compliance dates moved

On October 22, 2026, CBP extended a compliance date in the postal rule to January 20, 2027. It applies to mail shipments that need formal entry because they involve partner government agency requirements, Chapter 98 or 99 provisions, or free trade agreement claims. Nothing changes for whether duty is owed. Only the entry mechanics for those postal shipments move.

The statutory repeal is scheduled

Apart from the suspension, Congress repealed the legal basis for the exemption in the One Big Beautiful Bill Act, effective July 1, 2027. From that date the change rests on the statute itself, not on an executive order or CBP rules. Plan as if the exemption is gone for good.

What still exists

The suspension targets commercial low-value shipments. The separate exemptions for bona fide gifts and traveler personal exemptions are not affected. If your platform handles gift shipments, keep them as their own case with their own validation. Do not let “it’s a gift” become a free-text field that turns off duty.

Two lanes for parcels, one closed with a barrier and one passing through a scanner and paperwork desk
The old duty-free lane is closed. Low-value shipments now go through the same duty logic as everything else.

What to change in your checkout

1. Delete the threshold shortcut

Every order needs a duty lookup, whatever its value. If your code skips the lookup below a threshold, remove that branch. If the shortcut lives in a third-party plugin’s settings, check them.

2. Classify at the SKU level

Duty depends on the HTS code and country of origin, and so does any Chapter 99 additional duty. A low-value catalog of t-shirts, toys, and backpacks covers very different HTS lines, for example 6109.10.00.12, 9503.00.00.90, and 4202.92.31. Store the 10-digit HTS code and origin on each SKU, not on the order.

3. Resolve duty with a real data source

Here is a minimal request to the Tariffs API resolve endpoint for a cotton t-shirt made in Vietnam:

curl -s "https://tariffsapi.com/api/v1/tariffs/resolve?hts=6109.10.00.12&origin=VN&resolve_chapter_99=true" \
  -H "Authorization: Bearer $TARIFFS_API_KEY"

The resolve_chapter_99=true flag tells the API to resolve reference-only Chapter 99 measures (for example “See 9903.xx.xx”) to numeric rates. The response includes the base rate, every applicable additional measure (with its Chapter 99 code and program), and a summary block. For a duty estimate on an ad valorem line:

const res = await fetch(
  `https://tariffsapi.com/api/v1/tariffs/resolve?hts=${sku.hts}&origin=${sku.origin}&resolve_chapter_99=true`,
  { headers: { Authorization: `Bearer ${process.env.TARIFFS_API_KEY}` } }
);
const body = await res.json();

const rate = body.summary.total_resolved_ad_valorem_rate; // percent
if (rate == null) {
  // No single total (e.g. a tariff rate quota, or a product attribute only you know)
  console.warn(body.summary.total_declined_reason, body.warnings);
} else {
  const dutyEstimate = lineValue * (rate / 100);
}

Two habits worth building in from day one:

  • Respect null. When the total can’t be resolved, the API returns null with a reason instead of a guess. The total_declined_reason field says why, for example a tariff rate quota, a rate that depends on a product attribute, or a heading whose ten-digit lines carry different measures. Fall back to a conservative estimate or a “duties calculated at delivery” message, not to zero.
  • Log request_id and data_source.hts_revision. When a customer disputes a quote, you can show exactly which tariff revision produced it.

For carts with many lines, the batch endpoint (POST /api/v1/tariffs/resolve_batch) resolves up to 200 items in one call on the Developer plan. See the API documentation for the full schema.

4. Add fees and taxes separately

Duty is not the whole landed cost. Formal and informal entries can carry CBP processing fees, and carriers charge their own brokerage or clearance fees. The resolve endpoint returns duty rates. It does not compute CBP fees, carrier charges, or AD/CVD amounts, so model those as separate line items.

5. Decide who pays: DDP or DAP

Now that every order owes duty, you have to choose: collect it at checkout and ship delivered duty paid, or let the carrier collect it from the buyer on delivery. Many merchants prefer collecting up front to avoid refused deliveries, but it is a business decision. Either way, your quote has to be right.

A laptop with a shopping cart and a floating receipt made of abstract lines
Show duties as their own line at checkout so buyers know what they are paying for.

A quick sanity check before you ship

  • Search the codebase for de_minimis, 321, 800, and threshold.
  • Test a low-value order with a SKU that carries a Chapter 99 additional duty and confirm a non-zero estimate.
  • Confirm gift and return flows have their own explicit handling.
  • Run a few SKUs through the tariff calculator and compare the results with your integration.

FAQ

Is the de minimis exemption still available for US imports?

No, not for commercial shipments. CBP suspended it indefinitely for all modes, including mail, through interim final rules published in the Federal Register on June 24, 2026. A statutory repeal of its legal basis takes effect July 1, 2027.

Does the suspension affect gifts or goods travelers bring with them?

No. The separate exemptions for bona fide gifts and for travelers’ personal exemptions are not affected by the de minimis suspension.

Is the de minimis suspension connected to the IEEPA tariffs?

Not anymore. IEEPA tariffs ended after the Supreme Court’s February 2026 ruling, but the de minimis suspension was continued under a separate order and is now in CBP regulations. Removing IEEPA logic should not remove duty calculation for low-value orders.

What is postal informal entry?

It is a new entry process CBP created for mail shipments valued at or below $2,500, so duties can be collected on postal parcels now that de minimis no longer applies. Certain postal shipments that need formal entry have a compliance date of January 20, 2027.

How do I calculate duty on a low-value order?

The same way as on any other order: classify each item to its HTS code, identify the country of origin, resolve the base rate and any additional duties, and apply them to the customs value. An API like Tariffs API returns the resolved rates per HTS code and origin, so your checkout can compute the estimate per line.

Does Tariffs API calculate CBP fees or taxes?

No. The resolve endpoint returns duty rates, including Chapter 99 additional duties, plus an explanation. CBP processing fees, carrier fees, and AD/CVD amounts need to be modeled separately. Tariffs API is a data service, not a customs broker.


Ready to replace the threshold shortcut? Start a 14-day trial on the pricing page, or read how we source our tariff data.

This article is general information, not legal or customs advice. Check the linked primary sources or a licensed customs broker for decisions about specific shipments.

Explore the data

Related news