POST /api/checkout/create-session builds Stripe line items; adds courseIds in metadata; uses APP_BASE_URL for redirectsPOST /api/stripe/webhook verifies signature and upserts Enrollment records (idempotent via unique composite key)GET /api/checkout/verify-session to confirm paid/completed state client-side