Skills Agentes

Convex Billing

Añade billing/pagos con Stripe a la app Convex vía @convex-dev/stripe (checkout + webhook + gating).

Oficial

Reemplaza a: Escribir manualmente un webhook con constructEvent

Estrellas
59

en todo el repo

Actividad
55

0–100, la ruta de este skill

Actualizado
el mes pasado

último commit aquí

Commits
1

últimos 90 días

Contexto
1k tok

25 tok en reposo

Paquete
1 archivo

4 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add get-convex/agent-skills --skill convex-billing --agent claude-code

Se instala solo en este repositorio.

Este skill reads environment config.

Qué hace

  • Instala y configura el componente @convex-dev/stripe en convex.config.ts
  • Crea una ruta httpAction que registra el webhook de Stripe con verificación de firma automática
  • Genera una acción createSubscriptionCheckout para iniciar el checkout de Stripe
  • Genera una query isSubscribed que consulta el estado de suscripción guardado en las tablas del componente

Úsalo cuando

  • Cuando hay que añadir pagos o suscripciones de Stripe a una app Convex
  • Cuando se necesita gating server-side de funciones según el estado de suscripción del usuario

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • “Añade Stripe billing a mi app Convex”
    • “Quiero cobrar suscripciones con Stripe en Convex”
    • “Configura el checkout y el webhook de Stripe con @convex-dev/stripe”

    SKILL.md

    En inglés

    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:
      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):
      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:
      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.

    Reproducido de get-convex/agent-skills bajo licencia Apache-2.0. Leer esta página en markdown.

    Archivos

    1 archivo en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere claves STRIPE_SECRET_KEY y STRIPE_WEBHOOK_SECRET configuradas en las variables de entorno de Convex.

    Variables de entorno:SITE_URL

    Detalles

    Creador
    get-convex
    Licencia
    Apache-2.0
    Recursos incluidos
    Solo SKILL.md
    Código fuente
    Ver SKILL.md

    Más de get-convex/agent-skills

    Este repo incluye 33 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack agent-skills entero y su comando de instalación

    Audita y refuerza la autorización de una app Convex: impersonación por identity-from-arg, checks de ownership por documento faltantes, queries públicas que filtran datos por un id del cliente y escrituras en un contenedor ajeno.

    Costo de contexto al activarse
    2.3k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 22 días
    Oficialseguridad

    Diseña y construye backends reactivos y type-safe de nivel producción en Convex: schema, queries/mutations/actions, índices, auth, storage, scheduling, multiplayer en tiempo real y workflows LLM/agentes.

    Costo de contexto al activarse
    972 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 22 días
    Oficialdesarrollo apis

    Levanta un template Next.js + Convex barebones a partir de una idea en una frase.

    Costo de contexto al activarse
    1.1k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 22 días
    Oficialdesarrollo apis

    Especialista en el backend de Convex: código dentro de convex/ (funciones, schemas, índices, queries, mutations, actions, endpoints HTTP, cron jobs, storage, auth y componentes).

    Costo de contexto al activarse
    1.1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 22 días
    Oficialbases de datos

    Añade un backend de agente de IA / RAG (@convex-dev/agent) a la app Convex.

    Costo de contexto al activarse
    430 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 29 días
    Oficialdesarrollo apis

    Construye componentes Convex reutilizables con tablas aisladas y APIs de cara a la app. Útil para nuevos componentes, módulos de backend reutilizables, integraciones o límites de componentes.

    Costo de contexto al activarse
    2.6k tok
    Tamaño del paquete
    7 archivos
    Última actualización
    el mes pasado
    Oficialherramientas desarrollo

    Skills relacionados

    Referencia para la API de Claude / SDK de Anthropic — IDs de modelo, precios, parámetros, streaming, tool use, MCP, agentes, caching, conteo de tokens y migración de modelos.

    Costo de contexto al activarse
    21.4k tok
    Tamaño del paquete
    70 archivos
    Última actualización
    hace 24 días
    Oficialdesarrollo apis

    Guía para crear servidores MCP de calidad que permitan a los LLMs interactuar con servicios externos. Úsalo al construir servidores MCP en Python (FastMCP) o Node/TypeScript (MCP SDK).

    Costo de contexto al activarse
    2.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    hace 5 meses
    Oficialdesarrollo apis

    Guía completa para integrar servidores Model Context Protocol en plugins de Claude Code, para conectar herramientas y servicios externos.

    Costo de contexto al activarse
    3.1k tok
    Tamaño del paquete
    7 archivos
    Última actualización
    hace 10 meses
    Oficialdesarrollo apis