v1.0.0-alpha.44 — Automations: read-only REST API + signed webhook
Automations: read-only REST API + signed outbound webhook
External systems (Zapier / Make / n8n / a CRM / a helpdesk) can now read withdrawal requests and be notified the instant one is confirmed — PII-first: the raw consumer IP is never exposed (only a row_hash for integrity verification).
Read-only REST API (wwu-wb/v1)
Authenticated with a WordPress Application Password + the plugin admin capability, rate-limited, all GET:
GET /requests— paginated confirmed requests (lean rows, no email/IP). Filters:platform,status,after/before.GET /requests/{request_uid}— one request (+consumer_email, partialproducts, evidencerow_hash).GET /orders/{platform}/{order_ref}/withdrawal— per-order withdrawal status.
There is no endpoint to create a withdrawal by design — it is the consumer's own legal declaration.
Outbound webhook
Opt-in under Settings → Integrations: an async, HMAC-SHA256-signed POST on a confirmed withdrawal (X-WWU-WB-Signature / -Event / -Delivery), the endpoint URL validated through the SSRF guard at save time and send time. Filter wwu_wb_webhook_payload, action wwu_wb_webhook_delivered.
Quality
- Dedicated security audit on the PII surface → SHIP (0 critical / high / medium).
- New REST API reference + hooks reference (now 33 hooks). PHPStan L2 + class-scan clean. 6 locales at 100% (IT/EN/DE/FR/ES/SV).
Also merged in this cycle: a professional Crowdin localization pipeline (development infrastructure) for native translation review.
Install: download wwu-withdrawal-button.zip below → WordPress → Plugins → Add New → Upload Plugin → Activate.
Applies to distance contracts concluded on/after 19 June 2026. A technical aid to compliance — not legal advice.
Full changelog: docs/changelog/wwu-wb-CHANGELOG.md