Webhook & daily report setup
The server-side half of licensing: receiving domain-mismatch events on your own endpoint, and rolling up usage plus those events into one daily call to TsWorldTech. Five steps — credentials, the webhook receiver, the report route, a scheduler for your host, and testing the whole loop end to end.
- A FLUX_LICENSE_TOKEN already wired into createFlux() — see license/setup if not
- A project on the License tab with a webhook URL slot and report schedule available to configure
- A server-side route you control (Next.js Route Handler, Express, or equivalent)
Why this exists at all
Get your four credentials, plus one you generate
tsworldtechflux.dev/portal/projects/[id]/license) and reveal these values. CRON_SECRET is the one exception — you generate it yourself.Write the webhook receiver
navigator.sendBeacon can't attach custom headers, so requests here carry no signature. The payload is low-sensitivity by design — see below for the full reasoning.
Write the daily report route
Handle the 429 case explicitly
Pick your host and wire the scheduler
Every other host needs the verifyCronSecret() guard from Step 4 — Vercel is the only platform that signs its own cron requests internally.
Test it
What 'done' looks like
For the four base credentials referenced in Step 2, see license/setup. For what triggers the webhook beacon this page receives — and the client-side key-fetch behavior referenced in Step 8 — see license/domain-binding. For what the numbers in your daily report mean once they show up in the portal, see license/quotas.