Availability. The withdrawal flow is live. The Withdrawal button in Tracking, the withdrawal-window countdown, and the outbound webhook are all in production. The Withdrawal button is enabled per site — talk to your Ingrid contact to have it switched on for yours.
What is it?
In the EU, consumers have a legal right of withdrawal — the ability to cancel an online purchase within a set window without giving a reason. Until now, merchants have implemented this on their own — typically with custom forms, custom emails, and a custom way of marking the order as withdrawn in their systems.
Ingrid's Withdrawal feature brings this flow into the products merchants already use — Tracking and Returns — so the experience for the shopper, the data flow for the merchant, and the integration with downstream systems all work the same way as the rest of the Ingrid platform.
The result: one customer-facing withdrawal flow, one consistent data model in the Back-office, and one stable API surface — replacing per-merchant custom builds.
Why it works this way
Merchants come to Ingrid with different combinations of products — some use Tracking, some use Returns, some both, some neither. Withdrawal is designed to fit into what you already have. The button can live where you already have Ingrid surfaces, and the flow behind it adapts to whether you have Ingrid Returns or not.
How it works (high level)
Eligibility check — Ingrid's backend determines whether withdrawal is available for a given order (based on delivery state, merchant configuration, and withdrawal window)
Entry point — if eligible, a Withdrawal button appears in a customer-facing surface (Tracking Widget, Tracking Portal, or the Returns Widget). A tracking notification can link the customer to one of these surfaces, where the button is shown.
Form — the customer continues to a withdrawal form. If you have Ingrid Returns, the form is hosted in the Ingrid Returns Widget. Otherwise, the customer is redirected to your own withdrawal form.
Submission — after the form is submitted, an asynchronous event records the withdrawal in Ingrid's backend
Communication — a confirmation email is sent to the customer (by Ingrid if you use the Returns Widget; by you in the redirect setup)
Data surfaces — the order or return is flagged as a withdrawal across Ingrid's API, webhooks, and Back-office
💡 Withdrawal and return are mutually exclusive. An order is either withdrawn or available for returns — once an order has gone through the withdrawal flow, its items can no longer go through the return flow. You can keep both flows active at the same time; a customer simply cannot put the same item through both.
Where the Withdrawal button can live
The Withdrawal button can be placed in any of the following surfaces, depending on which Ingrid products you have:
Tracking Widget — embedded in your storefront or order confirmation page
Tracking Portal — Ingrid's hosted tracking page
Returns Widget — Ingrid's hosted returns flow
The button only appears when Ingrid's backend confirms the order is eligible for withdrawal.
💡 About tracking notifications: Ingrid's tracking emails and SMS don't embed the Withdrawal button itself — they include a link to your Tracking Widget or Portal, where the customer sees the button.
Configuration patterns
Withdrawal supports two end-to-end configuration patterns. The right one depends on whether you have Ingrid Returns.
Pattern A — Redirect (for Tracking-only merchants)
Step | Owner |
Withdrawal button in Tracking surface | Ingrid |
Withdrawal form | Merchant (your own system) |
Confirmation email to customer | Merchant |
Use when you have Ingrid Tracking but not Ingrid Returns. Ingrid handles the entry point — the Withdrawal button in your Tracking surface — and redirects the customer to your existing withdrawal form. You stay in control of the rest of the flow.
Pattern B — Full Ingrid flow (requires Ingrid Returns)
Step | Owner |
Withdrawal entry point | Ingrid Tracking surface (if you also have Tracking) or your own customer UI |
Withdrawal flow | Ingrid Returns Widget (in withdrawal mode) |
Confirmation email to customer | Ingrid |
Use when you have Ingrid Returns. Ingrid handles the entire customer-facing flow — form, confirmation, and email — using the Returns Widget in withdrawal mode. If you also have Ingrid Tracking, the Tracking surface can host the entry point.
💡 An Ingrid-hosted withdrawal form for Tracking-only merchants is not in scope for this iteration. It may be added later if there's enough merchant interest — talk to your Ingrid contact if this would be valuable for you.
Which pattern fits you?
You have today | Suggested pattern |
Ingrid Tracking only | Pattern A — redirect to your own withdrawal form |
Ingrid Returns | Pattern B — full Ingrid flow via Returns Widget |
Ingrid Tracking + Returns | Pattern B — use the Returns Widget; the Tracking surface hosts the entry point |
Ingrid Checkout only | Adding Tracking or Returns unlocks withdrawal — talk to your Ingrid contact |
Enabling withdrawal — two separate steps
Turning withdrawal on takes two pieces of configuration, and they are independent of each other. Doing only one is the most common reason the feature appears not to work.
The Returns side — the Withdrawals tab in the Returns Back-office. You do this yourself.
The Tracking side — the Withdrawal button in the Tracking Widget and Portal. Ingrid does this, per site.
Both are described below.
Configuring withdrawal in the Returns Back-office
All withdrawal settings live on one tab: Settings → Shop → Withdrawals. In the left navigation, open Shop under Settings. The page header reads Shop settings, and Withdrawals is the third tab.
If you don't see the Withdrawals tab, it hasn't been enabled for your shop — talk to your Ingrid contact.
Turning it on
Enable withdrawal widget is the switch for the whole feature. Until it is ticked, the withdrawal flow is not available and none of the settings below it apply. The remaining settings appear once it is enabled.
Your Price Setups apply on top of these settings. An option enabled on the Withdrawals tab only takes effect if the relevant Price Setup also permits it — available shipment methods, exchanges, and complaints are ultimately governed by your Price Setup configuration. If you have enabled something here and it is not showing up, check your Price Setup first.
Settings on the Withdrawals tab
Setting | What it does | Default |
| Turns the withdrawal flow on and activates every setting below it | Off |
| How much of the order the customer can select: Items individually selectable, All items pre-selected, or Whole order, locked | Set per shop |
| Offer return shipping or Acknowledgment only. This also determines how the refund is handled — see below | Set per shop |
| Whether exchanges are offered inside the withdrawal flow | Off |
| Whether complaints are offered inside the withdrawal flow | Off |
| Whether orders that have not shipped yet can be withdrawn | Off |
| Length of the withdrawal window. Used when Ingrid Tracking is not connected; when it is, Tracking determines the remaining time | 14 |
How Shipment handling affects the refund
This is the setting most worth getting right, because its effect shows up on a different tab.
Setting | What happens | Refund |
Offer return shipping | A shipment is booked, and the withdrawal behaves much like a regular return | Follows your normal refund handling |
Acknowledgment only | No shipment is booked — the withdrawal is recorded as an acknowledgment | Always handled externally, regardless of the "Refunds are handled externally" setting on the Refunds tab. Ingrid calculates the amount; you issue the payout |
Sending customers straight to the withdrawal flow
Withdrawals are normally reached from the Ingrid Tracking widget. The Withdrawals tab also shows a direct withdrawal URL you can use in an email or on your own pages. Fill in the customer's email and order ID, and adjust the language code if needed.
Copy the link from the Withdrawals tab rather than writing it out by hand — it already carries your shop's details.
Enabling the Withdrawal button in Tracking
The Withdrawals tab covers the Returns side only. The Withdrawal button in the Tracking Widget and Tracking Portal is switched on separately, by Ingrid, per site — and it is configured for each surface independently, so the widget and the portal can behave differently for the same order.
There is no self-service setting for this. To have it enabled, give your Ingrid contact:
the site or sites it should be active on
the destination countries that should offer withdrawal — normally every EU country you ship to
for Pattern A, the URL of the page that presents the withdrawal option — the withdrawal page itself, not your home page or a general support page
If you have enabled the Withdrawals tab and the button still doesn't appear, the Tracking side is the first thing to check — the two are enabled independently. Also remember the button only shows once the order has been delivered.
What you'll see in your systems
In Tracking
Withdrawal button in the Tracking Widget and Tracking Portal, shown only when the order is eligible. Enabled per site — ask your Ingrid contact to switch it on.
Withdrawal-window countdown, showing how many days remain to withdraw.
Destination-country eligibility is set per site and managed by Ingrid. Tell your Ingrid contact which markets should offer withdrawal.
Returns API
The withdrawal flag is a top-level boolean on the return object. It's exposed on:
The legacy Merchant API
All outbound return webhooks
Filtering
GET /returns accepts a filter parameter so integrators can fetch only withdrawals (or exclude them) without scanning the full list.
Returns Back-office
A WITHDRAWAL chip appears on the return detail page and in the returns list
Filters in the returns table and statistics dashboards let merchants include, exclude, or isolate withdrawals
Withdrawals can be processed like ordinary returns when needed
Returns Widget plumbing
The Returns Widget accepts withdrawal=true as a URL query parameter — when set, the session is flagged as a withdrawal and the flag flows through to the return object.
Withdrawal confirmation email
A Withdrawal registered email template is available in Returns Back-office under Settings → Email Templates, in the Withdrawal group. It is sent when a return is registered with the withdrawal flag set, and tells the customer the withdrawal was recorded and that return instructions may follow depending on the status of the order. You can edit its subject, preheader, and body, per language, and it carries the order ID and the time the withdrawal was submitted. See Email templates in Ingrid Returns.
Limitations
Withdrawal is offered after delivery. Requesting a withdrawal before the goods are delivered is not supported in Tracking. Where local law allows a consumer to withdraw before receiving the goods, handle those cases in your own process.
Orders that have not shipped are not found in the flow unless
Allow withdrawals without original shipmentis enabled on the Withdrawals tab.The withdrawal window is set per site. It is not configurable per market within a site.
Exchanges, complaints, and withdrawals of items without an original shipment are off by default. Each has its own setting on the Withdrawals tab, and your Price Setup still governs what is ultimately available.
An Ingrid-hosted withdrawal form is not available for Tracking-only merchants. Pattern A redirects to your own form.
Integrator notes
This section is for developers wiring withdrawal into merchant systems.
Return object
The withdrawal flag lives at the return level — not the line-item level.
State semantics
Withdrawal state transitions are monotonic — once a withdrawal is recorded, it cannot be undone. Ingrid's backend processes these events asynchronously, so a short delay between the customer's action and the visible state change in the UI is expected.
Surface-level eligibility
Eligibility is evaluated per surface. The Tracking Widget and the Tracking Portal are configured independently, so the same order can return a withdrawal action on one and nothing on the other. When a merchant reports the button appearing in one place but not another, this is usually why.
Idempotency
If you're sending withdrawal events to Ingrid (Pattern A redirect with Ingrid-handled confirmation, or Pattern B entry from your own UI), follow these principles:
Duplicate event IDs are treated as no-ops
Older events do not overwrite newer state (Ingrid uses
occurred_attimestamps and event IDs to enforce ordering)Required event payload includes a mandatory
occurred_attimestamp; an optional list of items can be included
Outbound webhook
Tracking publishes order.withdrawal_submitted.v1 when a withdrawal is submitted. Use it for CRM, analytics, and compliance pipelines where you want a system-of-record signal.
See the order events reference for the payload.
💡 A note on wording: the event is submitted, not confirmed. It records that the customer submitted a withdrawal request. The Withdrawal registered email uses the same meaning.
FAQ
Q: Can my customers use this today?
A: Yes. The Withdrawal button in Tracking, the countdown, the Returns API flag, the Back-office indicators, the confirmation email, and the outbound webhook are all live. The Withdrawal button is enabled per site, so ask your Ingrid contact to switch it on for yours.
Q: Where do I turn withdrawal on?
A: In two places, and both are needed. The Returns side is yours — Returns Back-office, Settings → Shop → Withdrawals: tick Enable withdrawal widget and review the settings on that tab. The Tracking side, which controls the Withdrawal button itself, is switched on by Ingrid per site. See Configuring withdrawal in the Returns Back-office and Enabling the Withdrawal button in Tracking.
Q: I enabled the Withdrawals tab but nothing appears in Tracking. Why?
A: Most likely the Tracking side has not been enabled for your site — it is a separate step that Ingrid does. Check that first, then check that the order has been delivered, since the button only appears afterwards.
Q: How will my customers know they can withdraw an order?
A: An eligible order shows a Withdrawal button in the surface(s) you've configured — Tracking Widget, Tracking Portal, or Returns Widget. A tracking notification can link the customer to one of these surfaces. The button appears only when Ingrid's backend confirms the order is eligible.
Q: Can a customer withdraw before the order arrives?
A: Not through Tracking. Withdrawal is offered after delivery. Where your market's law allows a consumer to withdraw earlier, handle those requests through your own process.
Q: What about exchanges and complaints during a withdrawal flow?
A: Both are off by default — withdrawal is a clean "cancel this purchase" intent, not a returns or exchanges decision. If you want either available inside the withdrawal flow, each has its own setting on the Withdrawals tab (Allow exchanges, Allow complaints), and your Price Setup still governs what is ultimately offered.
Q: A customer filed a withdrawal by mistake. Can I convert it into a normal return?
A: Not directly. Cancel the withdrawal, then create a new return order for the customer.
Q: Can I customize the withdrawal confirmation email?
A: Yes. The Withdrawal registered template is in Returns Back-office under Settings → Email Templates, and you can edit its subject, preheader, and body per language. Note that complete default templates currently exist in English, Swedish, Norwegian, German, Spanish, French, and Danish for this email. See Email templates in Ingrid Returns.
Q: Can I customize the withdrawal form?
A: In Pattern A (redirect), you host the form yourself and have full control. In Pattern B, Ingrid hosts the form via the Returns Widget — with the same customization options as the rest of the Returns Widget. An Ingrid-hosted form for Tracking-only merchants is not planned in this iteration.
Q: What happens after the withdrawal window expires?
A: The button no longer appears. Internally, Ingrid moves the state to "withdrawal window expired" — customer-facing surfaces show appropriate copy ("Withdrawal is no longer available").
Q: Will Ingrid handle the refund for a withdrawal?
A: It depends on Shipment handling. With Acknowledgment only, the refund is always handled externally — Ingrid calculates the amount and you issue the payout. With Offer return shipping, refunds follow your normal refund handling. In both cases the payment itself is processed in your e-commerce or payment system.
Q: Does adding withdrawal change anything in my checkout flow?
A: No. Withdrawal is post-purchase. Your Ingrid Checkout integration is unaffected.
Related documentation
Ingrid Returns — how returns work in Ingrid, end to end
Email templates in Ingrid Returns — the full set of return emails, including the withdrawal confirmation
Ingrid Returns Partner API reference — for developers building custom returns flows
Setting up returns on your platform — Centra: refunds, exchanges & payments
