EU Right of Withdrawal: Manual Configuration (legacy / non-Shopify)
Note: Loop's native EU Withdrawal flow is strongly recommended. Use this manual configuration only if the native flow isn't available to you — for example, non-Shopify merchants, or stores where the native flow hasn't been enabled yet. If the native flow is enabled, follow the native setup in the main EU Right of Withdrawal article instead; you don't need these steps.
This approach satisfies the Loop-side requirements through configuration and points you to options for the withdrawal button, without replacing your existing returns portal.
Use the menu on the left to quickly navigate this article.
Step 1: Set your return window to 14 days or more, measured from delivery
Navigate to Returns management > Policy settings > Return policies.
Find the return policy that applies to your EU/EFTA shoppers (for example, an International policy) and click Edit. If you don't have a dedicated EU policy, edit your default policy or create a new one.
In the policy editor, select Return outcomes in the left sidebar.
In the Shopper return window card, set the Start event dropdown to Delivery date (it defaults to Fulfillment date). This starts the 14-day clock when the package arrives, as the directive requires.
Optionally, enable Keep items unreturnable until marked delivered to prevent shoppers from initiating a return before the package is confirmed delivered. If you enable this, set a Fallback days value (minimum 1) as a safety net.
Set the return window for the Refund outcome to 14 or more days. Each outcome (Refund, Exchange, Store Credit) has its own window — make sure Refund is at minimum 14.
Click Save.
Important: If you have items marked Final Sale or otherwise ineligible, review those exclusions. Blocking returns on standard eligible goods within the 14-day window may put you out of compliance. The cooling period does not apply to personalised goods, perishable items, sealed audio/video software that has been unsealed, or digital content already downloaded — Final Sale restrictions on those item types remain valid.
Tip: Shopify tracking must be enabled for Loop to receive delivery confirmation. Without tracking, Loop cannot determine the delivery date and falls back to the fulfillment date as the window start.
Step 2: Enable Refund as a resolution type
Still on Return outcomes, toggle Refund on as an available outcome.
Ensure refunds process to the original payment method. Under EU law, refunds must be issued via the same payment method used at checkout unless the shopper explicitly agrees to an alternative.
Click Save.
Tip: You can still offer exchanges and store credit alongside refunds — even incentivise them with bonus credit. Just never remove or hide the full refund option from EU shoppers within the 14-day window.
Step 3: Refund original outbound shipping costs
Under the directive, you must refund the standard outbound delivery charge when a return falls within the 14-day window. In Loop, this is a Workflow action.
Navigate to Returns management > Policy settings > Workflows.
Click Create workflow, select Returns & Exchanges, then Start from scratch.
Set your condition. To scope this to EU and EFTA orders, use the Order location condition and select the relevant countries.
Under "True", add the action: Refund original shipping cost.
Click Save and set the workflow to Active.
Note: United Kingdom is listed in Order location but is not an EU/EFTA market. Please consult a legal advisor on how to handle this directive for UK customers.
Important: For defective product returns, EU law shifts return shipping costs to the merchant. Loop recommends a separate Workflow that waives the handling fee when the return reason is a product defect. Note this waive applies to all shoppers matching that condition — not only Checkout+ purchasers. The Checkout+ coverage fee itself cannot be refunded automatically through Loop and must be refunded manually in Shopify.
Step 4: Provide the model withdrawal form and a withdrawal button
This step happens outside Loop, on your storefront and return policy page.
Part A — Publish the model withdrawal form (Directive 2011/83/EU). Make the standardized model withdrawal form (Annex I(B)) available so shoppers can formally exercise their right.
Add a dedicated section to your return policy page explaining the right of withdrawal and the 14-day window.
Include the EU model withdrawal form in full — the European Commission publishes the standard template; paste it in or link to it.
Provide a dedicated email address (e.g., returns@yourdomain.com) shoppers can use to submit the completed form.
Part B — Provide a compliant withdrawal button (Directive 2023/2673, effective 19 June 2026). Posting the form and an email address is no longer sufficient on its own. The law requires an online withdrawal function that is clearly labeled, remains accessible throughout the 14-day window, leads to a two-step confirmation, and triggers an automatic confirmation email.
Important: A PDF form in your terms, or an instruction to email a returns address, will not by itself meet the 19 June 2026 withdrawal button requirement. You still publish the model form (Part A), but you must also provide the button-driven function in Part B.
How this works without the native flow. If you can't use Loop's native EU Withdrawal Flow, the withdrawal button must be built outside Loop. Common options:
A dedicated Shopify app that provides a compliant withdrawal button (examples merchants have used include Revoq and EU Withdrawal Button)
A custom storefront form (e.g., built using Shopify Flows) that collects the two-step confirmation and sends the automatic confirmation email
Once a withdrawal request is logged, your team actions the return in Loop as a standard refund. Your existing Loop returns portal stays in place; the two paths coexist.
Tip: Loop's native EU Withdrawal Flow provides this withdrawal function for you on Shopify, removing the need for a third-party app or custom form. Use this manual approach only if the native flow isn't available to you.
Step 5: Refund import duties and taxes
For cross-border EU and EFTA orders, refund import duties and taxes on returns within the cooling period. Loop can do this automatically per return policy.
Before you start: Shopify's duties calculator must be enabled (Shopify admin > Settings > Taxes and duties). Loop reads duty data from Shopify and does not calculate duties itself. If you don't see the option in your policy, contact your Merchant Success Manager or Loop Support to enable it.
Navigate to Returns management > Policy settings > Return policies and open your EU policy.
Go to the Advanced settings tab and turn on Enable Duties and import taxes.
Click Save.
Important: Duty amounts come from Shopify. If duties refund as $0, confirm Shopify's duties calculator is enabled and that the order actually carries duty data.
Step 6: Add an "EU Withdrawal" return reason
To keep a clean, auditable record of cooling-period withdrawals and separate them from standard returns, add a dedicated return reason — for example, "EU Withdrawal (cooling period)." When your team processes a withdrawal request, selecting this reason makes withdrawals easy to report on.
Navigate to Returns management > Shopper experience > Return reasons.
Add a new return reason named EU Withdrawal (cooling period) (optionally nested under a parent reason).
Click Save.
Optional: only show this reason for qualifying orders
If you'd rather not display the withdrawal reason to every shopper, surface it only on EU/EFTA orders using reason groups and a Workflow.
In Return reasons, create a separate reason group that includes the EU Withdrawal (cooling period) reason alongside your standard reasons.
Go to Returns management > Policy settings > Workflows, click Create workflow, select Returns & Exchanges, then Start from scratch.
Set the condition: Order location is your EU/EFTA countries. To limit it to the cooling period, you can also add Days since return window began is 14 or fewer.
Under "True", add the action: Set return reason group, and select the EU group you created.
Click Save and set the workflow to Active.
Step 7: Adjust your policy after 14 days (optional)
The EU cooling period only governs the first 14 days after delivery. Once that window closes, you have full flexibility to apply your standard return policy.
If you want to offer a longer window (e.g., 30 or 60 days) with different terms after day 14, use a Workflow with a Days since return window began condition to create two branches.
Navigate to Returns management > Policy settings > Workflows, click Create workflow, select Returns & Exchanges, then Start from scratch.
Set a condition using Days since return window began greater than 14.
Add the action(s) to apply after day 14 — for example, Exclude return outcomes > Refund (exchange or store credit only), or Set handling fee.
Click Save and Publish the workflow.
Important: If you need to extend or lock a specific return window duration with a workflow, use an Order Tag condition rather than a date-based condition. Loop's Return Window action only evaluates reliably with Order Tag conditions, because it runs before most order data is available. (Restricting outcomes after day 14, as above, works as expected with the date-based condition.)
Important: The 14-day base policy must always allow a full refund. Your post-14-day workflow can apply different terms but must not retroactively remove the rights shoppers had within the statutory window.
Please reach out to support@loopreturns.com with any additional questions.
