К основному содержанию
скилл CX Codex

convex-billing — скилл для Claude Code: что делает и как установить

Подключает подписки Stripe к приложению на Convex через компонент @convex-dev/stripe: настраивает сессии оплаты, вебхуки и серверную проверку статуса.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add convex/agent-skills --skill convex-billing -a claude-code
Открыть на GitHub

Что делает convex-billing

Скилл генерирует конфигурацию и код для интеграции со Stripe. Он добавляет компонент @convex-dev/stripe в файл convex/convex.config.ts. Также он настраивает маршрут вебхуков в convex/http.ts с автоматической верификацией подписей и создаёт функции чекаута в convex/billing.ts.

Состояние подписок проверяется через запрос isSubscribed прямо из таблиц компонента. Поэтому полагаться на непроверенные клиентские данные не придётся. Для работы понадобятся ключи STRIPE_SECRET_KEY и STRIPE_WEBHOOK_SECRET в переменных окружения Convex. В панели управления Stripe остаётся включить отправку событий вебхука.

Бандлер Convex требует импортировать конфигурацию строго из @convex-dev/stripe/convex.config.js с расширением .js. Из-за импорта с .ts сборка завершится с ошибкой.

Какие задачи решает

  • подключить оплату подписок Stripe в проект на Convex
  • настроить обработку вебхуков Stripe без ручной верификации подписи
  • заблокировать доступ к платным функциям через серверную проверку подписки
  • связать пользователей Convex с клиентами Stripe

Примеры запросов агенту

  • Подключи Stripe к моему проекту на Convex для продажи подписок
  • Добавь проверку подписки через convex-billing и настрой вебхуки
  • Создай действие чекаута Stripe с помощью convex-billing

Как установить convex-billing

1Через Skills CLI (Vercel)

npx skills add convex/agent-skills --skill convex-billing -a claude-code

2Вручную: положить файлы

~/.claude/skills/convex-billing/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/convex-billing/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о convex-billing

Как установить convex-billing в Claude Code?

Выполните команду npx skills add convex/agent-skills --skill convex-billing -a claude-code.

Что делает convex-billing?

Скилл подключает библиотеку @convex-dev/stripe, регистрирует вебхук с проверкой подписей и добавляет функции чекаута вместе с запросом проверки подписки.

Какие переменные окружения нужны для работы?

В окружении Convex необходимо задать секретные ключи STRIPE_SECRET_KEY и STRIPE_WEBHOOK_SECRET.

Исходный текст

SKILL.md · Apache-2.0
---
name: convex-billing
description: "Add Stripe billing/payments to the Convex app via @convex-dev/stripe (checkout + webhook + gating)."
---

<!-- GENERATED from convex-agents content/capabilities/billing.json — do not edit by hand. -->

# Add billing / payments

Wire Stripe to Convex using @convex-dev/stripe: a checkout action, an httpAction webhook registered by the component (signature-verified automatically), subscription state stored in the component's tables, and server-side gating via a query.

## Workflow

1. Install the component: `npm install @convex-dev/stripe`.
2. Create `convex/convex.config.ts`:
   ```ts
   import { defineApp } from 'convex/server';
   import stripe from '@convex-dev/stripe/convex.config.js';
   const app = defineApp();
   app.use(stripe);
   export default app;
   ```
3. Store Stripe keys in Convex env (use the `env` micro power): `STRIPE_SECRET_KEY` (sk_test_… / sk_live_…) and `STRIPE_WEBHOOK_SECRET` (whsec_…).
4. Create `convex/http.ts` to register the webhook route (the component handles signature verification automatically):
   ```ts
   import { httpRouter } from 'convex/server';
   import { components } from './_generated/api';
   import { registerRoutes } from '@convex-dev/stripe';
   const http = httpRouter();
   registerRoutes(http, components.stripe, { webhookPath: '/stripe/webhook' });
   export default http;
   ```
5. Create `convex/billing.ts` with a checkout action and a subscription-gate query:
   ```ts
   import { action, query } from './_generated/server';
   import { components } from './_generated/api';
   import { StripeSubscriptions } from '@convex-dev/stripe';
   import { v } from 'convex/values';
   const stripeClient = new StripeSubscriptions(components.stripe, {});
   export const createSubscriptionCheckout = action({
     args: { priceId: v.string() },
     returns: v.object({ sessionId: v.string(), url: v.union(v.string(), v.null()) }),
     handler: async (ctx, args) => {
       const identity = await ctx.auth.getUserIdentity();
       if (!identity) throw new Error('Not authenticated');
       const customer = await stripeClient.getOrCreateCustomer(ctx, { userId: identity.subject, email: identity.email, name: identity.name });
       return await stripeClient.createCheckoutSession(ctx, { priceId: args.priceId, customerId: customer.customerId, mode: 'subscription', successUrl: `${process.env.SITE_URL ?? 'http://localhost:3000'}/?success=true`, cancelUrl: `${process.env.SITE_URL ?? 'http://localhost:3000'}/?canceled=true`, subscriptionMetadata: { userId: identity.subject } });
     },
   });
   export const isSubscribed = query({
     args: {},
     returns: v.boolean(),
     handler: async (ctx) => {
       const identity = await ctx.auth.getUserIdentity();
       if (!identity) return false;
       const subscriptions = await ctx.runQuery(components.stripe.public.listSubscriptionsByUserId, { userId: identity.subject });
       return subscriptions.some((sub) => sub.status === 'active' || sub.status === 'trialing');
     },
   });
   ```
6. Run `npx convex dev --once` — it will install the component and push the functions. Verify output shows `✔ Installed component stripe.`
7. In Stripe Dashboard → Webhooks: add endpoint `https://<deployment>.convex.site/stripe/webhook`, subscribe to `checkout.session.completed`, `customer.subscription.*`, `invoice.*`, `payment_intent.*`. Copy the signing secret as `STRIPE_WEBHOOK_SECRET`.

## Rules

- Use @convex-dev/stripe (npm: @convex-dev/stripe@^0.1.4) — it handles webhook signature verification internally via registerRoutes; do NOT write a manual constructEvent webhook.
- Stripe keys live in Convex env (use the `env` micro power): STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET.
- Gate on server-stored subscription state via isSubscribed query (reads component tables), not client claims.
- convex/convex.config.ts must import from '@convex-dev/stripe/convex.config.js' (not .ts) — the .js extension is required by the Convex bundler.

© convex · Apache-2.0 · convex/agent-skills

Похожие скиллы

Всё по теме «Бэкенд и API» →
clerk-billing clerk Скилл для работы с Clerk Billing: тарифы, чекаут, ограничение функций по плану и вебхуки подписок. CX Codex +1 16 900установок cmux-billing manaflow-ai Справочник по архитектуре биллинга cmux: настройка Stripe Checkout, подписок, хуков и прав доступа к тарифам Pro и Max при доработке серверного кода. CX Codex +1 3 700установок Stripe Payments Claude Office Skills Скилл для работы с платежами Stripe: проводит оплату, ведёт подписки, выставляет счета и считает выручку прямо из чата с агентом. CX Codex +1 4 900установок billing-automation Seth Hobson Скилл помогает проектировать подписочный биллинг, счета и возврат неуспешных платежей. Подойдёт для SaaS и сервисов с регулярными списаниями. CX Codex 11 245установок saas-platforms miles990 Скилл для ИИ-кодинга, который подсказывает, как устроить мультитенантность, биллинг подписок и учёт потребления в SaaS-приложении. CX Codex +1 362установок stripe-integration-expert Alireza Rezvani Скилл помогает подключать Stripe: подписки, разовые платежи, usage-based billing и вебхуки. Подойдёт для нового биллинга и отладки событий. 612установок

Из того же набора32

convex-env Скилл настраивает переменные окружения и секреты Convex для приложения. Пригодится, когда значения нужно передавать в deployment и читать в actions. CX Codex +1 36 000установок convex-seed Заполняет таблицы базы данных Convex тестовыми строками или импортирует внешние данные. Помогает настроить окружение для разработки без ручного ввода. CX Codex +1 35 800установок convex-verify Скилл проверяет Convex-функции через реальные сценарии: создаёт данные, меняет пользователей и ловит ошибки авторизации. Нужен для проверки конкретной готовой функции. CX Codex +1 35 800установок convex-monitor Скилл блокируется на следующем событии в приложении Convex — ошибке разработки, ошибке прода или запросе фичи — и передаёт его агенту. CX Codex +1 35 800установок convex-domains Ведёт агента по шагам: DNS-записи у вашего регистратора, привязка домена к приложению Convex и перепривязка auth-origin. CX Codex +1 35 800установок convex-launch-readiness Собирает четыре аудита Convex в один отчёт со счётом готовности и очередью правок. Пригодится, когда бэкенд пора выпускать, а непонятно, что чинить первым. CX Codex +1 35 900установок convex-explain-app Скилл строит понятную карту бэкенда Convex по схеме данных и функциям. Помогает быстро разобраться в незнакомом проекте перед правками или аудитом. CX Codex +1 35 900установок convex-backup Настраивает регулярные снапшоты базы Convex и прогоняет учебное восстановление в одноразовый preview, чтобы проверить, что данные действительно возвращаются. CX Codex +1 35 900установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой