Documentation
Public endpoints (no auth)
- GET /api/v1/pulse/plans Live JSON catalogue of Pulse tiers and Stripe prices. Cached 5 min server-side; safe to call from a marketing site.
- GET /health Backend liveness probe. Returns 200 if the FastAPI app is reachable.
- /.well-known/security.txt RFC 9116 vulnerability-disclosure contact (security@qenex.ai).
Authenticated endpoints
Pulse customer endpoints (POST /api/v1/pulse/checkout/{plan}, vendor management, audit history) require a Bearer token issued at pulse.qenex.ai/pulse/signup. See the Swagger UI above for the full reference.
Webhooks
Stripe webhooks land at POST /billing/stripe-webhook (storefront orders) and
POST /api/v1/pulse/webhook/stripe (Pulse subscriptions). Signatures verified via
STRIPE_WEBHOOK_SECRET. To deliver to a test endpoint, use
stripe listen --forward-to https://qenex.ai/billing/stripe-webhook.