Créer des flux de facturation SaaS IA agentique
Automatisez les flux de facturation récurrente grâce à l'API Stripe et à des agents pilotés par l'IA.
Vous pouvez permettre à vos agents d’IA de créer et de gérer des programmes de facturation SaaS établis par abonnement avec Stripe. Dans ce guide, vous apprendrez à :
- Provisionner un nouveau client et son abonnement
- Répondre aux événements du cycle de vie des abonnements grâce aux webhooks
- Invoquez des actions de facturation d’un agent d’IA à l’aide du kit d’outils de l’agent
Avant de commencer
Dans ce guide, nous partons du principe que vous disposez d’une configuration de kit d’outils pour les agents de travail et d’un compte Stripe. Vous trouverez un Link vers ces ressources tout au long de :
- Boîte à outils des agents
- Ajout de paiements à vos workflows d’agents
- Élaboration d’abonnements
- Subscriptions
- Webhooks
- Tester votre intégration
En outre, assurez-vous que vous disposez des éléments suivants :
- Node.js 14 ou une version ultérieure et un projet de kit d’outils d’agent existant
- Un compte test Stripe avec les clés API
- Serveur Stripe Agent Toolkit installé ou Model Context Protocol (MCP) configuré pour communiquer avec votre compte Stripe
Provisionner les clients et les abonnements
Pour provisionner des clients et des abonnements, votre agent doit créer un nouveau client et associer un abonnement. Voici un exemple d’utilisation du SDK Node.js de Stripe :
import Stripe from 'stripe'; const stripe = new Stripe(process.env.STRIPE_SECRET_KEY); // Create a customer and subscription async function createSubscription(customerInfo, priceId) { // 1. Create or fetch the customer const customer = await stripe.customers.create({ email: customerInfo.email, name: customerInfo.name, }); // 2. Create the subscription const subscription = await stripe.subscriptions.create({ customer: customer.id, items: [{ price: priceId }], expand: ['latest_invoice.payment_intent'], }); }
Voir Créer des abonnements pour les tarifs et les options d’essai.
Gérer les événements de facturation avec les webhooks
Les abonnements dans votre formulaire d’inscription déclenchent divers événements, tels que des renouvellements, des échecs de paiements et des annulations. Certains événements de facturation sont asynchrones et vous devez demander à votre agent d’y répondre. Par exemple, si un abonnement est annulé, demandez à votre agent de contacter le client ou de lui faire une offre pour le fidéliser.
Pour gérer ces événements, utilisez des webhooks pour écouter ces déclencheurs et y répondre.
L’exemple de code ci-dessous montre comment configurer un serveur Express qui écoute les événements webhook Stripe, valide les requêtes entrantes et gère des types d’événements spécifiques, tels que les paiements réussis, les paiements échoués et les annulations d’abonnement. Après avoir capturé ces événements, appelez un agent pour réagir en conséquence.
import express from 'express'; import Stripe from 'stripe'; const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, { apiVersion: '2022-11-15' }); const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET; const app = express(); app.post('/webhooks', express.raw({ type: 'application/json' }), (req, res) => { let event; try { event = stripe.webhooks.constructEvent(req.body, req.headers['stripe-signature'], endpointSecret); } catch (err) { return res.status(400).send(`Webhook Error: ${err.message}`); } switch (event.type) { case 'invoice.payment_succeeded': // Handle successful payment break; case 'invoice.payment_failed': // Call agent to retry or gather information to communicate with the buyer break; case 'customer.subscription.deleted': // Clean up access break; default: // Unexpected event } res.status(200).json({ received: true }); }); app.listen(4242, () => console.log('Webhook listener running on port 4242'));
Gérer la facturation avec le kit d'outils de l'agent
Vous pouvez utiliser le kit d’outils pour agents pour permettre aux agents d’IA de lancer automatiquement des flux de facturation.
Vous pouvez implémenter cela directement dans le code ou dans une application telle que Claude ou un serveur MCP.
Voici un exemple d’utilisation du SDK IA de Vercel :
import { StripeAgentToolkit } from '@stripe/agent-toolkit/ai-sdk'; import { openai } from '@ai-sdk/openai'; import { generateText } from 'ai'; const stripeAgentToolkit = new StripeAgentToolkit({ secretKey: process.env.STRIPE_SECRET_KEY!, configuration: { actions: { prices: { read: true, }, customers: { create: true, }, subscriptions: { create: true, }, }, }, }); const result = await generateText({ model: openai('gpt-4o'), tools: { ...stripeAgentToolkit.getTools(), }, maxSteps: 5, prompt: 'Sign up jenny.rosen@example.com to the Premium plan', });
Voici un exemple d’utilisation du serveur MCP de Stripe avec l’API Responses d’OpenAI :
curl https://api.openai.com/v1/responses -i \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "gpt-5", "tools": [ { "type": "mcp", "server_label": "Stripe", "server_url": "https://mcp.stripe.com", "require_approval": "never" } ], "input": "Sign up jenny.rosen@example.com to the Premium plan" }'
Pour afficher l’intégralité des actions, consultez la page Ajouter Stripe à vos workflows d’agents. En savoir plus sur l’ajout de paiements à vos workflows d’agents LLM.
Test
Vous pouvez tester votre intégration avec des environnements de test. Cela vous permet de simuler le traitement des paiements et d’autres fonctionnalités sans affecter votre compte ou données en mode production.