Skip to content

EU Right of Withdrawal

The EU right-of-withdrawal endpoints let a shopper formally declare that they are exercising their statutory right to withdraw from a purchase (the EU "cooling-off" right). Filing a declaration records the withdrawal against an order and triggers a durable-medium confirmation email back to the shopper — the legally required acknowledgement that the store received their notice.

Both authenticated customers (filing against one of their own orders) and guests (proving ownership with an order increment id + email) can file a declaration.

Authentication

The list, view and authenticated-file operations require an authenticated customer — provide the storefront key and a customer Bearer token. See the Authentication page for how to obtain and send them.

The guest file operation requires only the storefront key — no customer token. Ownership of the order is proved by supplying the matching order increment id and email.

Filing is idempotent

Filing a withdrawal is idempotent per order. If a declaration already exists for the given order, a second createEuWithdrawal / createGuestEuWithdrawal call returns the existing declaration unchanged instead of creating a duplicate or raising an error. A confirmation email is sent when the declaration is first created.

Confirmation on a durable medium

When a declaration is first recorded, the store sends a confirmation email to the shopper — the durable-medium acknowledgement the withdrawal right requires. The confirmationSentAt timestamp reflects when that email was dispatched.

Guest vs authenticated

FlowWhoHow ownership is provedFields returned
AuthenticatedLogged-in customerThe order belongs to the authenticated customerFull set (includes decline / refund fields)
GuestAnyone with the order detailsOrder increment id + email must match a guest orderReduced set (no decline / refund fields)

Declaration lifecycle

A withdrawal declaration moves through these statuses:

StatusMeaning
receivedThe declaration was received and acknowledged.
declinedThe store reviewed and declined the withdrawal.
refundedThe withdrawal was accepted and the order refunded.

Endpoints

OperationGraphQL fieldDescription
List own declarationseuWithdrawalsPaginated list of the authenticated customer's own declarations.
View one declarationeuWithdrawalA single declaration the customer owns.
File (authenticated)createEuWithdrawalFile a declaration against one of the customer's own orders.
File (guest)createGuestEuWithdrawalFile a declaration for a guest order using order id + email.

Released under the MIT License.