File a Guest EU Withdrawal
Record an EU right-of-withdrawal declaration for a guest order. Ownership is proved by supplying the order increment id together with the email used on the order. The declaration is created with status received and the durable-medium confirmation email is triggered.
Filing is idempotent — a second call for the same order returns the existing declaration instead of creating a duplicate.
Endpoint
POST /api/shop/eu-withdrawals/guestAuthentication
This endpoint requires only the storefront key — no customer token. See the Authentication page.
Request Headers
| Header | Required | Description |
|---|---|---|
Content-Type | Yes | application/json |
X-STOREFRONT-KEY | Yes | Your storefront API key |
Request Body
json
{
"order_increment_id": "1000123",
"email": "[email protected]",
"reason_text": "Changed my mind."
}Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
order_increment_id | string | Yes | The human-readable order number of the guest order. |
email | string | Yes | The email address used on the guest order. |
reason_text | string | No | An optional reason for withdrawing. |
Response Fields (201 Created)
| Field | Type | Description |
|---|---|---|
id | integer | Declaration ID. |
uuid | string | Stable public identifier for the declaration. |
orderId | integer | Numeric ID of the order the withdrawal applies to. |
orderIncrementId | string | Human-readable order number. |
isGuest | boolean | Whether the declaration was filed on a guest order. |
customerEmail | string | Email address tied to the declaration. |
status | string | Declaration status: received, declined, refunded. |
reasonText | string | The reason the shopper supplied, or null. |
receivedAt | string | ISO 8601 timestamp when the declaration was received. |
confirmationSentAt | string | ISO 8601 timestamp when the confirmation email was sent, or null. |
createdAt | string | ISO 8601 creation timestamp. |
Status Codes
| Status | Meaning |
|---|---|
201 Created | Declaration filed (or the existing one returned); status is received. |
400 Bad Request | order_increment_id or email is missing. |
403 Forbidden | Missing or invalid storefront key. |
404 Not Found | The order increment id and email do not match a guest order on an EU-withdrawal-enabled channel. |

