File an EU Withdrawal
About
The createEuWithdrawal mutation records an EU right-of-withdrawal declaration against one of the authenticated customer's own orders and triggers the durable-medium confirmation email. The declaration is created with status received.
Filing is idempotent — a second call for the same order returns the existing declaration instead of creating a duplicate.
Authentication
This mutation requires an authenticated customer — send the storefront key and a customer Bearer token. See the Authentication page.
The channel must have withdrawal enabled
Filing only works when EU right of withdrawal is switched on for the channel the order belongs to. The setting is off by default. When it is off the mutation fails with the same not-found message an unknown order produces, so check the configuration before assuming the identifiers are wrong — see the overview.
Input Fields
| Field | Type | Required | Description |
|---|---|---|---|
orderId | Int! | ✅ Yes | The numeric ID of one of the customer's own orders. |
reasonText | String | ❌ No | An optional reason for withdrawing. |
Possible Returns
| Field | Type | Description |
|---|---|---|
euWithdrawal._id | Int! | Numeric declaration ID. |
euWithdrawal.uuid | String! | Stable public identifier for the declaration. |
euWithdrawal.orderId | Int! | Numeric ID of the order the withdrawal applies to. |
euWithdrawal.orderIncrementId | String! | Human-readable order number. |
euWithdrawal.isGuest | Boolean! | Whether the declaration was filed on a guest order. |
euWithdrawal.customerEmail | String! | Email address tied to the declaration. |
euWithdrawal.status | String! | Declaration status: received, declined, refunded. |
euWithdrawal.reasonText | String | The reason the shopper supplied, or null. |
euWithdrawal.receivedAt | DateTime | Timestamp when the declaration was received. |
euWithdrawal.confirmationSentAt | DateTime | Timestamp when the confirmation email was sent, or null. |
euWithdrawal.declinedAt | DateTime | Timestamp when the withdrawal was declined, or null. |
euWithdrawal.declinedReason | String | Reason the store declined the withdrawal, or null. |
euWithdrawal.refundedAt | DateTime | Timestamp when the order was refunded, or null. |
euWithdrawal.refundNote | String | Note attached to the refund, or null. |
euWithdrawal.createdAt | DateTime! | Declaration creation timestamp. |
euWithdrawal.updatedAt | DateTime! | Declaration last update timestamp. |

