Implementing the Right of Withdrawal Button

About this article

As of June 19, 2026, Swedish and EU law (Proposition 2025/26:84, amending the Distance Contracts Act) mandates that all e-commerce businesses provide an easily accessible digital function - a withdrawal button - allowing consumers to exercise their statutory 14-day right of withdrawal directly on a website or app.

Merchants can fully achieve compliance today by leveraging Centra's existing core infrastructure, flexible frontend architecture, and standard API capabilities. This guide provides the technical and operational blueprints your frontend (FE) development partners and Customer Success teams need to implement this feature smoothly.

Frontend placement of the Right of Withdrawal Button and the withdrawal form

The law states that a user must be able to cancel a contract as easily as they entered it, without navigating hurdles or dealing with hidden links.

Placement strategy

  • For logged-In shoppers: a dedicated "Exercise Right of Withdrawal" button should be placed directly within the order history view in the My Account section.
  • For guest shoppers: a permanent link should be visible in the global site footer, routing users to a dedicated, unauthenticated page (e.g., /withdraw-purchase).

The request form

When clicked, both locations must present a structured form. For guests, the form requires manual entry of their email address and order number. For logged-in users, these details should be fetched from the Storefront or Checkout API depending on your build and pre-populated automatically.

Compliance nuances

To satisfy the technical definitions of compliance, remind your frontend implementation agencies of these core rules:

  • Immediate acknowledgment required: The moment a user submits a withdrawal request, the system must trigger an immediate automated email confirmation. An on-screen confirmation notice alone does not satisfy the legal framework . Ensure your email automation engine or CRM is configured to dispatch a receipt containing the exact timestamp and a copy of the cancelled item names.
  • Clear confirmation text: The button itself must be clearly labeled to avoid ambiguity. Generic labels like "Submit" or "Continue" are not legally sound. Use definitive actions such as "Confirm Withdrawal" or "Check and Cancel Order"

Technical data flows for capturing requests

When a shopper fills out the form and clicks the final confirmation button, you can process and store the transaction using one of two primary architectural setups:

Path A: helpdesk / support / other software routing (asynchronous)

How it works: The frontend form captures the submission and maps the payloads directly into your existing external support desk tool (e.g., Zendesk, Gorgias, or Gladly) via a standard webhook. Operational execution:

  • Option A1 (fully manual): A Customer Success representative reviews the incoming helpdesk ticket. They open Centra AMS manually, search for the corresponding Order ID, and execute the native cancel action.
  • Option B2 (Semiautomatic): If your customer support software has an established API integration with Centra, the agent processes and cancels the request inside the helpdesk interface. This action programmatically fires a backend request to Centra's Integration API to execute the cancellation.

Path B: Direct platform integration (real-time)

How it works: The frontend acts as a collector of the customer's intent to withdraw. When the shopper triggers the button, the frontend safely hands the request over to a secure merchant backend or middleware layer. The frontend must never call Centra’s Integration API directly, as this would expose your master API token to the browser client and compromise your security credentials. Instead, the secure backend middleware acts as a proxy. It first checks Centra to verify if the order state is valid for a cancellation (ensuring it hasn't already been captured, allocated, or shipped by the warehouse). If the check passes and respects internal processing rules, the middleware securely executes the cancellation mutation via Centra's Integration API.

Operational execution:

  • If the middleware's validation check succeeds, it programmatically triggers the cancellation in Centra, instantly changing the order's status to Cancelled without requiring manual human handling from your Customer Success team.
  • If the order status is already too far along in fulfillment (e.g., shipped or locked), the middleware securely stops the automated cancellation flow. You can then choose to divert the customer smoothly to the refund/return path.

Handling different stages of order processing

A primary challenge of this law is matching the customer's legal right to cancel with physical warehouse operations.

  • Scenario A: Order placed, not yet shipped The order has been created and may be auto-confirmed in Centra, but the warehouse has not yet dispatched the physical items. Proposed handling flow:

    • The system calls Centra’s APIs to confirm the order’s current status.
    • If it reads as pending or unfulfilled, the request can safely be executed as a hard cancellation via the Integration API or manually by an agent in Centra AMS.
  • Scenario B: Order is picked, packed, or shipped Once an order has entered picking lines or has been handed over to a carrier, it can no longer be systematically aborted. Legally, the customer can still use the "withdraw button" on your site for up to 14 days post-delivery. However, operationally, this must be handled as a refund/return flow. Merchants can handle Scenario 2 using one of two distinct frontend approaches:

    • Approach Ba: real-time dynamic block (Recommended) When the customer enters their details, the frontend queries Integration API to inspect the shipment data. If it sees that a tracking number or a shipment has already been generated, the form stops the hard cancellation path and dynamically shows an informational alert. Example Interface Message: > Automatic cancellation is not possible. Your order is already being processed at our warehouse or has left our facilities. We have successfully registered your intent to withdraw. Your statutory 14-day window is secure. Please utilize our [Online Return Request Link] to print your shipping slip, or use the return label included in your physical parcel. Your refund will be safely returned to your original payment method within 14 days of us receiving the return.

    • Approach Bb: Seamless catch-all submission The frontend interface does not perform real-time verification against the order state. It accepts every withdrawal request uniformly, displaying a successful confirmation message on screen regardless of fulfillment progress.

The backend handling

  • Behind the scenes, the payload is directed to your support platform or middleware.
  • If the support desk or middleware checks Centra and discovers the items are already shipped, your Customer Success platform handles the submission as a regular return case file.
  • Your CS staff or automation handles tracking the incoming package and coordinating the manual or API-driven return workflow inside Centra once the items arrive safely back at your warehouse dock.

Previous article: Fraud prevention
Next article: Customers in DTC