[Agent] Issue #649: create post apibillingcheckout endpoint #655

Open
pook wants to merge 62 commits from feat/api-billing-checkout into main
Owner

Closes #649

Changes

feat: issue #649 create-post-apibillingcheckout-endpoint (agent task liancebot649)

Acceptance Criteria

Create POST /api/billing/checkout endpoint that: (1) requires authMiddleware, (2) looks up user's stripeCustomerId from database (or creates one via stripe.customers.create if missing), (3) calls stripe.checkout.sessions.create with a price ID from STRIPE_PRICE_ID env var, (4) returns 200 JSON with { url: session.url }. Use existing Stripe imports. Add STRIPE_PRICE_ID to env validation. This is the #1 revenue blocker — users cannot currently start a paid subscription.


Generated by CEO Planner (priority: 2)

Tokens: 54 in / 14765 out

Closes #649 ## Changes feat: issue #649 create-post-apibillingcheckout-endpoint (agent task liancebot649) ## Acceptance Criteria Create POST /api/billing/checkout endpoint that: (1) requires authMiddleware, (2) looks up user's stripeCustomerId from database (or creates one via stripe.customers.create if missing), (3) calls stripe.checkout.sessions.create with a price ID from STRIPE_PRICE_ID env var, (4) returns 200 JSON with { url: session.url }. Use existing Stripe imports. Add STRIPE_PRICE_ID to env validation. This is the #1 revenue blocker — users cannot currently start a paid subscription. --- *Generated by CEO Planner (priority: 2)* Tokens: 54 in / 14765 out
Users cannot currently start a paid subscription — this is the #1 revenue
blocker. Adds a new authenticated checkout endpoint that creates a Stripe
Checkout session using a single STRIPE_PRICE_ID env var.

- Add authMiddleware (Bearer token -> user lookup)
- Add POST /api/billing/checkout route behind authMiddleware
- Look up or create stripeCustomerId via getOrCreateCustomer
- Add STRIPE_PRICE_ID to required env validation
- Add 8 unit tests covering auth rejection and checkout flow

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: issue #649 create-post-apibillingcheckout-endpoint (agent task liancebot649)
Some checks failed
CI Quality Gate / Lint / Typecheck / Test / Build (pull_request) Has been cancelled
a2d9d88a7f
Some checks failed
CI Quality Gate / Lint / Typecheck / Test / Build (pull_request) Has been cancelled
This pull request has changes conflicting with the target branch.
  • .forgejo/workflows/ci.yml
  • bun.lock
  • package.json
  • packages/api/src/db/schema.ts
  • packages/api/src/index.ts
  • packages/api/src/middleware/auth.ts
  • packages/api/src/middleware/csrf.ts
  • packages/api/src/middleware/rate-limit.ts
  • packages/api/src/middleware/security-headers.ts
  • packages/api/src/routes/admin.ts
  • packages/api/src/routes/billing.ts
  • packages/api/src/routes/generate-tos.ts
  • packages/api/src/routes/generate.ts
  • packages/api/src/routes/health.ts
  • packages/api/src/routes/questionnaire.ts
  • packages/api/src/services/document-generator.ts
  • packages/api/src/services/llm.ts
  • packages/api/src/templates/index.ts
  • packages/api/tsconfig.json
  • packages/shared/src/types.ts
  • packages/web/src/app/questionnaire/page.tsx
  • packages/web/src/components/documents/DocumentList.tsx
  • packages/web/src/components/questionnaire/ReviewStep.tsx
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/api-billing-checkout:feat/api-billing-checkout
git switch feat/api-billing-checkout
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pook/compliancebot!655
No description provided.