Printify webhooks
Receive product and order events from Printify into the LVL factory. Endpoint is public under factory.lvlltd.com (Cloudflare). Signature uses PRINTIFY_WEBHOOK_SECRET.
API token
PRINTIFY_API_TOKEN
Shop id
PRINTIFY_SHOP_ID
Webhook secret
Optional / loose
Remote hooks
0 subscribed
Synced products
0 mirrored
Synced orders
0 mirrored
Receive URL
Point every Printify topic at this HTTPS URL
/api/printify/webhooks
Topics: shop:disconnected · product:deleted · product:created · product:updated · product:publish:started · order:created · order:updated · order:sent-to-production · order:shipment:created · order:shipment:delivered
Cloudflare WAF
Edge worker + zone rules protect /api/printify/*
- Worker rate limit: 60 POST/min/IP on webhooks
- Body cap 512KB · method allowlist · optional signature gate
- Zone rules: cloudflare/waf/printify-webhooks-rules.json
- Apply: node scripts/apply-cloudflare-waf.mjs
- Deploy proxy: wrangler deploy -c cloudflare/workers/lvl-factory-proxy/wrangler.toml
Webhook sync
Inbound Printify events mirror orders + products. Pull button uses the API when credentials are set.
- order:* → printify_orders_mirror (status, lines, totals)
- product:* → printify_products_mirror (enrich from API when thin)
- product:deleted → soft-delete in mirror
- Sync Printify → remote webhooks + full product pull
- API: GET/POST /api/printify/sync
No products mirrored yet — run Sync Printify or wait for product webhooks.
Remote subscriptions
Live list from Printify when token is configured
No remote webhooks yet. Set credentials and install all topics.
Event log
Last 0 deliveries (PGLite / Neon)
No events yet. Run local simulate to verify the pipeline.
