Checkout Optimisation

Duty-Inclusive Checkout: The Single Change That Cuts EU Parcel Refusals by Half

Shoppers in Germany and the Netherlands are twice as likely to refuse a parcel if a surprise duty bill arrives. A DDP checkout quotes duties at cart so customers know the final price and the carrier collects nothing extra at the door.

Brice Mba
Brice Mba
CEO, REasy
Shopify checkout mockup showing a duty-inclusive total with a green shield badge

The Refusal Problem Starts at Checkout, Not at the Door

A parcel refusal is the downstream symptom of an upstream information failure. The customer who declines the DPD delivery driver in Hamburg is not making an irrational decision — they are responding correctly to a surprise: a €12 duty invoice for an order they believed was fully paid. The failure happened weeks earlier, at the moment your Shopify checkout showed a total that didn't include duty.

Carrier-published refusal rate data for DAP cross-border shipments to Germany and the Netherlands shows baseline refusal rates in the 5–15% range for B2C parcels where the consignment triggers a duty or VAT collection event. For lower-AOV products — under €40 — refusals cluster toward the higher end of that range because the duty amount as a percentage of the order value feels disproportionate. A €9 duty invoice on a €35 candle represents a 26% surcharge on what the customer thought they were paying. Many decline.

In contrast, industry-observed refusal rates on DDP-shipped parcels — where duties are collected at checkout and nothing is owed at the door — run 1–3%. The residual refusals are buyer-preference changes (they changed their mind, wrong size, not what they expected from the photos) not duty-surprise refusals. The 1–3% floor is essentially irreducible without addressing other fulfilment quality factors.

The Total Landed Cost Equation at Checkout

A DDP checkout that works correctly assembles a total landed cost calculation for every order before the customer confirms payment. The components are:

  1. Product price: your Shopify list price in the selling currency
  2. Shipping cost: carrier rate for the destination, parcel weight, and service level
  3. Import duty: the applicable EU MFN duty rate (or preferential rate under a trade agreement) applied to the customs value of the goods, calculated using the correct HS code for each product in the order
  4. Import VAT: the destination country's standard VAT rate applied to the customs value plus duty plus CIF (cost, insurance, freight) where applicable — collected under the IOSS mechanism for sub-€150 shipments from non-EU origin
  5. REasy service fee: the per-shipment fee that covers the DDP guarantee, customs declaration filing, and duty remittance

The sum of these five components is the total shown in checkout. The customer pays it once. The carrier receives nothing at delivery. Article 23 of the EU VAT Directive confirms that where VAT has been collected under the IOSS facility (for sub-€150 consignments from non-EU origin), import VAT is not collected again at customs clearance — the IOSS number on the declaration is the signal to the customs system that VAT has already been accounted for.

What DPD SafetyNet Flags and Why It Matters

DPD Germany operates an internal routing flag called SafetyNet that identifies parcels where a duty or VAT invoice will need to be presented to the recipient. When a parcel enters the DPD DE network as a DAP shipment with outstanding customs obligations, SafetyNet activates: the recipient receives a pre-notification asking them to confirm receipt of the parcel and acknowledge the pending duty amount. Recipients who do not respond, or who decline via the DPD app, trigger a return to sender process.

The SafetyNet flag is DPD's risk management tool — they are trying to avoid delivering a parcel to a customer who will refuse it, because a refused delivery costs DPD the return leg. From the merchant's perspective, the flag itself is informative: it tells you exactly which parcels in your dispatch queue are at refusal risk. Under DDP shipping, SafetyNet has nothing to flag because there is no outstanding duty obligation. DPD's system sees a pre-paid DDP label and routes the parcel through normal delivery without the recipient pre-notification step.

Colissimo, the La Poste parcel carrier used heavily on FR–DE and FR–IT corridors, takes a different approach: on DAP shipments with outstanding VAT, the parcel is typically held at a relay point (Pickup station) and the customer is required to pay the VAT before collection. Many customers at this point simply abandon the parcel — particularly for lower-value orders — which results in a return to the French depot and an additional handling charge.

A Practical Example: Ceramic Tableware, Paris to Munich

Consider a French DTC tableware brand — call them Atelier Céramique Renault, shipping approximately 150 units per month from a Paris-region fulfilment centre to DACH customers. Average order value is €78. Products are ceramic tableware, CN code 69120010 (porcelain or china tableware), MFN duty rate 11.9%. The store currently ships DAP via DPD DE.

Under DAP, for an order shipped from a UK warehouse (post-Brexit goods origin), the duty calculation on a €78 order looks like: duty at 11.9% = €9.28; import VAT (Germany, 19%) on (€78 + €9.28 + €8 shipping) = €18.13. Total customs charge to the customer at delivery: €27.41. DPD's handling fee for this collection: €8–€12. Total surprise bill: €35–€40 on a €78 order. Refusal rate on this product profile in the merchant data we see: 12–18%.

Under DDP with IOSS (assuming goods originate outside EU): the same amounts — €9.28 duty, €18.13 VAT, REasy fee — are collected at checkout before the order is placed. The customer sees a total of approximately €113 at checkout and pays it once. DPD receives the DDP label, delivers without collecting anything, records zero refusals for this product profile. The €0.85–€0.62 REasy per-shipment fee is offset by the elimination of return shipping costs at €12–€18 per refused parcel.

The Conversion Trade-Off: Does Showing Duty Upfront Hurt Sales?

This is the legitimate concern that merchants raise before switching to DDP checkout, and it deserves a direct answer. Showing a higher total at checkout — because duty and VAT are now visible line items — can reduce conversion among price-sensitive buyers who abandon at the payment step when they see the duty component. This is a real effect and we are not going to dismiss it.

We are not saying duty-inclusive checkout eliminates all conversion friction — it trades late-stage friction (refusal, return) for early-stage friction (higher visible checkout total). The question is which friction costs more. The economics of a refused delivery include: return shipping (€12–€18), restocking or disposal cost, customer service time, and the permanent loss of a customer who received a bad post-purchase experience. The economics of a duty-visible checkout abandonment include: no fulfilment cost incurred, no return shipping, no customer service load. Checkout abandonment is lower-cost friction than delivery refusal for almost every product category.

In the merchant data we work with, stores that switch from DAP to DDP checkout and present duty as a line item see a modest 2–5% increase in checkout abandonment on first-time purchases, offset by a significant decrease in return-related costs and a measurable improvement in repeat purchase rates — because customers who complete the DDP checkout have no negative delivery experience to deter a second order.

Markets Where DDP Has the Highest Return on Implementation

Not every EU market has the same refusal profile. The DACH corridor (Germany, Austria, Switzerland) is consistently the highest-refusal market for French DTC merchants shipping from outside the EU. German consumers are accustomed to price certainty — the Preisangabenverordnung (PAngV) requires that prices shown to consumers must include all taxes and fees. A consumer presented with an unexpected €20 duty bill at the door experiences this not just as inconvenience but as a breach of the implicit pricing contract they expected. Refusal rates are highest here.

The Netherlands shows similar patterns, particularly for parcels arriving via PostNL from non-EU origin where import VAT was not collected at checkout. Italy and Spain show lower refusal rates — not because the duty situation is different, but because last-mile carriers in those markets handle duty collection differently (often via cash-on-delivery mechanisms that some consumers accept).

For stores with significant DACH revenue — even if DACH represents only 20–30% of total EU sales — the ROI on DDP checkout implementation is typically positive within the first month, primarily through refusal reduction on the Germany corridor alone.

What Needs to Be in Place Before You Flip the DDP Switch

A DDP checkout integration that calculates accurately requires three data dependencies to be stable:

Accurate HS codes for every product: the duty rate is derived from the HS code. An incorrect code produces an incorrect duty estimate, which means you either under-collect (and absorb the shortfall as the DDP guarantor) or over-collect (and face a VAT reconciliation issue). Product catalogue HS code accuracy is not a one-time setup task — it requires maintenance as product lines change.

Live duty rate data by destination country: EU MFN rates change with the annual CN revision. Trade agreements (EU-UK TCA, EU-Vietnam, EU-Japan) can reduce rates to zero for qualifying goods with valid proof of origin. A DDP calculator that uses static duty rates without trade-agreement awareness will over-collect duty on qualifying goods.

IOSS number or customs deferment account for DDP guarantee: for the DDP guarantee to hold, the pre-paid duty must be backed by an actual payment mechanism. For IOSS-eligible shipments (sub-€150, non-EU origin), the IOSS collection mechanism handles the import VAT. For higher-value shipments or non-IOSS scenarios, the DDP guarantee requires either a duty deferment account with the customs authority or a carrier-backed DDP agreement.

These three dependencies are the reason DDP checkout can't be implemented with a simple price markup. It requires live data integration between the checkout, the tariff database, and the carrier — the kind of integration that Shopify app-layer tools like REasy handle per order, per destination, per product, at the moment the customer enters their shipping address.

REasy integrates with your Shopify checkout to quote duties in real time so every parcel ships DDP and refusals become a thing of the past.

Book a Demo

Related guides