> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://seedgrow.crisp.help/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How does the Widerruf Button work?

### How Widerruf Button works:
The app embeds a legally compliant withdrawal button into your storefront. When customers click the button, they are guided through a simple **2-step withdrawal flow**:
1. Enter order details (order number + email required)
2. Confirm and submit the withdrawal request
After submission:
* A confirmation email is automatically sent
* A PDF copy is generated for the customer
* The request is saved in your admin logs (UTC time)

### Where can I place the Widerruf Button?
The app supports:
* **Theme App Block** – Embed the withdrawal button anywhere in your storefront (footer, legal page, contact page, etc.)
* **Customer Account Order Block** – Add the withdrawal option directly inside customer order pages
You can control visibility and positioning via your theme customizer.

### Does the button require customers to log in?
No.
The withdrawal process works **without login**, including for guest orders, ensuring compliance with upcoming EU requirements.

### What happens after a customer submits a withdrawal?
Immediately after submission:
* A **confirmation email** is sent to the customer
* A **PDF document** of the withdrawal request is generated
* The request is stored in the admin dashboard
* A timestamp is recorded in **UTC time**
This ensures proper documentation and traceability.

### How does the app prevent abuse or spam?
The app includes built-in verification and rate limiting mechanisms.
###### IP-Based Rate Limiting
If an IP address submits:**&#160;10 failed requests within 1 hour**
→ The IP will be blocked progressively for: 15 minutes, 1 hour, 24 hours
###### Order-Based Rate Limiting
If there are:**&#160;3 failed requests for the same order within 1 hour**
→ The system applies progressive blocking: 15 minutes, 1 hour, 24 hours
This protects your store from automated abuse and malicious attempts.

### How does the app verify a withdrawal request?
Before accepting a request, the system checks:
1. **Does the order ID exist?**
2. **Is the order within the 14-day withdrawal period?**
3. **Does the provided email match the store’s order records?**
4. **Has the IP or order exceeded rate limits?**
Only valid requests are accepted and processed.

### What happens if verification fails?
* The failed attempt is logged
* Rate-limiting rules may apply if multiple failed attempts occur

### Is the app compliant with the upcoming 2026 EU requirement?
The app is built to support merchants in complying with the upcoming EU digital withdrawal requirement by providing:
* An always-accessible withdrawal option
* No login barrier
* Confirmation on a durable medium (email & PDF)
* Complete documentation and traceability
We recommend reviewing your full legal setup with a qualified legal advisor to ensure complete compliance for your specific business model.

