Inbound: WooCommerce posts the order JSON to a Webivio URL. On a paid status (processing or completed), Webivio registers the buyer for the next upcoming session — same as the signup form (confirmation email, room access, CRM).
This is not the same as:
- Registration API (Make/Zapier) — that requires an explicit
selectedDate - Outbound webhooks — Webivio → your URL
- Purchase tracking — reporting a purchase for an existing participant
Where to get the URL
Webinar creator → Finish step → Store webhook (WooCommerce) → copy the URL.
https://webivio.com/api/public/order-registration-webhook?webinarId={uuid}&token={secret}
Optional product filter (panel field or add manually):
…&productId=123
Same token as the Make/Zapier registration webhook (registrationWebhookToken).
Setup in WooCommerce
- WordPress → WooCommerce → Settings → Advanced → Webhooks.
- Add webhook.
- Delivery URL — paste the Webivio URL.
- Topic —
Order updated. - Status: Active.
- Save and place a paid test order.
What Webivio does
| Case | Response |
|---|---|
Status processing / completed | Register for the next schedule slot |
Other status (e.g. pending, failed) | HTTP 200, skipped: true, reason: ORDER_NOT_PAID |
productId filter and product missing | HTTP 200, skipped: true, reason: PRODUCT_FILTER |
| Email already on that session | HTTP 200, alreadyRegistered: true |
| No upcoming sessions | HTTP 422 |
Fields from Woo order: billing.email, billing.first_name, billing.last_name, billing.phone, line_items[].product_id, status, id.
Test without Woo (curl)
curl -X POST \
"https://webivio.com/api/public/order-registration-webhook?webinarId=YOUR_ID&token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"email":"john@example.com","name":"John","surname":"Smith","status":"processing"}'
See also
- Registration API (Make / Zapier)
- Panel: Finish step in the webinar creator