---
title: "File an EU right-of-withdrawal declaration (guest)"
method: POST
path: "/eu-withdrawals/guest"
tags: ["EU Withdrawal"]
---

# File an EU right-of-withdrawal declaration (guest)

`POST /eu-withdrawals/guest`

## Request

- Base URL: `http://localhost:8000/api/shop`
- URL: `http://localhost:8000/api/shop/eu-withdrawals/guest`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bagisto/apis/bagisto-shop-api/docs/eu-withdrawals/guest/post.ts> (a function with typed inputs; its response is checked against the schema)

Step 2 of a guest withdrawal. Send the signed `link` emailed by `POST /api/shop/eu-withdrawals/guest/lookup`; it proves the guest owns the order email, as on the storefront. The link is valid for 24 hours. Idempotent: sending the same link again returns the existing declaration with its current status. Triggers the durable-medium confirmation email. Limited to 20 requests a minute per IP.

## Headers

- `X-STOREFRONT-KEY` string, required
- `X-Locale` string
- `X-Channel` string
- `X-Currency` string

## Request body

- object
  - `link` string, required
  - `reason_text` string

## Response `201`

The created (or existing, idempotent) guest withdrawal declaration.

## Other responses

- `400`: Invalid input
- `404`: The order is not a guest order, or EU withdrawal is off for its channel.
- `422`: The link is missing, invalid or expired.
- `429`: Too many requests from this IP.

## Changes

- **2026-10-28** `63e385bd5442`: 1 breaking, 2 warning, 2 info
  - added the new required request property `link`
  - removed the request property `email`
  - removed the request property `order_increment_id`
  - added the non-success response with the status `404`
  - …1 more

[Operation history](https://skmtc.dev/bagisto/apis/bagisto-shop-api/changes/eu-withdrawals/guest/post.md)

---

[API](https://skmtc.dev/bagisto/apis/bagisto-shop-api.md) - [All operations](https://skmtc.dev/bagisto/apis/bagisto-shop-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bagisto/apis/bagisto-shop-api/revisions/f619df36bf29?raw)
