Owner: Engineering Team | Last Updated: 2026-01-30 | Status: Current
Scope: This page covers the cross-platform payment architecture. For backend Stripe implementation, see Backend - Payments & Billing.
WWAI uses Stripe for payment processing and Churnkey for subscription management. The payment system supports multiple plan tiers, currencies, and billing cycles.
User selects plan ──► POST /api/payments/new-chekout/ ──► Stripe Checkout
(creates session) │
▼
User pays
│
▼
Stripe webhook ◄── Stripe sends payment event ──► Backend updates subscription
│
▼
User redirected to thank-you page
| Component | Purpose |
|---|---|
| Stripe | Payment processing, checkout sessions, webhooks |
| Churnkey | Customer subscription portal, retention tools |
| Backend | Subscription state management, webhook handling |
| Frontend | Plan selection UI, checkout redirect, billing portal |
GET /api/payments/pricing/ - Fetch plan pricingPOST /api/payments/new-chekout/ - Create Stripe checkout sessionGET /api/payments/transaction/ - Get transaction detailsGET /api/user/billing-portal-redirect/ - Redirect to Stripe billing portalSTRIPE_KEY - Stripe secret key (backend)NEXT_PUBLIC_STRIPE_KEY - Stripe publishable key (frontend)CHURNKEY_LIVE_KEY / CHURNKEY_TEST_KEY - Churnkey API keysNEXT_PUBLIC_CHURNKEY_APP_ID - Churnkey app identifierNEXT_PUBLIC_WALTER_*_PRICE - Plan price env varsNEXT_PUBLIC_WALTER_*_M/Y - Plan ID env vars (monthly/yearly)| Date | Author | Change |
|---|---|---|
| 2026-01-30 | Admin | Initial creation |
Prev: OAuth Providers | Next: Subscription Model | Up: WalterWrites